ソースコード - SourceCode Edit


次の3種類に限定。

文字コードは次の3種類に限定。
形式BOM
ASCIIなし
UTF8EF BB BF
UTF160xFEFF
  • UTF16はランタイム環境のバイトオーダーのみ扱う。(PPCならUTF16BE、i386ならUTF16LE)
  • ASCII,UTF8は内部ではUTF16に変換して処理を行う。
  • ASCII,UTF8は内部ではUTF16に変換して処理を行う。
  • <検討中>最大行数はコンパイラの都合で制約を設けるかもしれない。
  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
#spanend
#spanadd
SourceCode:
#spanend
    EndOfFile
    CodeElements EndOfFile
#spanadd
 
#spanend
#spanadd
CodeElements:
#spanend
    WhiteSpace
    EndOfLine
    Comment
    Token
#spanadd
 
#spanend
#spanadd

空白文字 - WhiteSpace Edit

  0
  1
  2
  3
  4
  5
  6
  7
WhiteSpace:
    Space
    Space WhiteSpace
 
Space:
    0x0020
    0x0009
    0x000B
    0x000C

行終端 - EndOfLine Edit

  0
  1
  2
  3
EndOfLine:
    0x000D
    0x000A
    0x000D 0x000A
    EndOfFile

ファイル終端 - EndOfFile Edit

  0
  1
  2
EndOfFile:
    physical end of the file
    0x0000
    0x001A

コメント - Comment Edit

  • D言語と同様。
すべてを展開すべてを収束
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 
 
 
 
 
 
 
 
 
 
 
#spanend
#spanadd
/* ネストできないコメントブロック */
#spanend
#spanadd
// 行コメント
#spanend
#spanadd
/+ ネストできるコメントブロック /+ +/ +/
#spanend
#spanadd
  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
Comment:
    "/*" Characters "*/"
    "//" Characters EndOfLine
    NestingBlockComment
 
Characters:
    Character
    Character Characters
 
NestingBlockComment:
    "/+" NestingBlockCommentCharacters "+/"
 
NestingBlockCommentCharacters:
    NestingBlockCommentCharacter
    NestingBlockCommentCharacter NestingBlockCommentCharacters
 
NestingBlockCommentCharacter:
    Character
    NestingBlockComment

トークン - Token Edit

  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
Token:
    Identifier
    StringLiteral
    CharacterLiteral
    IntegerLiteral
    FloatLiteral
    Keyword
    "/"
    "/="
    "."
    "&"
    "&="
    "&&"
    "|"
    "|="
    "||"
    "-"
    "-="
    "--"
    "+"
    "+="
    "++"
    "<"
    "<="
    "<<"
    "<<="
    ">"
    ">="
    ">>="
    ">>"
    "!"
    "!="
    "("
    ")"
    "["
    "]"
    "{"
    "}"
    "?"
    ","
    ";"
    ":"
    "="
    "=="
    "*"
    "*="
    "%"
    "%="
    "^"
    "^="
    "~"
    "~="

識別子 - Identifier Edit

  • 頭文字に数値とアンダーバーは使えない
  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
Identifier:
    IdentiferStart
    IdentiferStart IdentifierChars
 
IdentifierChars:
    IdentiferChar
    IdentiferChar IdentifierChars
 
IdentifierStart:
    Letter
    EnglishAlpha
    UniversalAlpha
 
IdentifierChar:
    IdentiferStart
    NonZeroDigit
    "0"
    Digit
    "_"
 
#spandel
Letter:
#spanend
#spanadd
EnglishAlpha:
#spanend
    a-zA-Z
 
UniversalAlpha:
    あいうえお...
#spanadd
 
#spanend
#spanadd
Digit:
#spanend
    0-9
#spanadd
 
#spanend

文字列リテラル - StringLiteral Edit

  • Dとほぼ同じ。一部削除している。
  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
#spanend
#spanadd
StringLiteral:
#spanend
#spanadd
	WysiwygString
#spanend
#spanadd
	DoubleQuotedString
#spanend
#spanadd
 
#spanend
#spanadd
WysiwygString:
#spanend
#spanadd
	r" WysiwygCharacters " Postfix(opt)
#spanend
#spanadd
 
#spanend
#spanadd
WysiwygCharacters:
#spanend
#spanadd
	WysiwygCharacter
#spanend
#spanadd
	WysiwygCharacter WysiwygCharacters
#spanend
#spanadd
 
#spanend
#spanadd
WysiwygCharacter:
#spanend
#spanadd
	Character
#spanend
#spanadd
	EndOfLine
#spanend
#spanadd
 
#spanend
#spanadd
DoubleQuotedString:
#spanend
#spanadd
	" DoubleQuotedCharacters " Postfix(opt)
#spanend
#spanadd
 
#spanend
#spanadd
DoubleQuotedCharacters:
#spanend
#spanadd
	DoubleQuotedCharacter
#spanend
#spanadd
	DoubleQuotedCharacter DoubleQuotedCharacters
#spanend
#spanadd
 
#spanend
#spanadd
DoubleQuotedCharacter:
#spanend
#spanadd
	Character
#spanend
#spanadd
	EscapeSequence
#spanend
#spanadd
	EndOfLine
#spanend
#spanadd
 
#spanend
#spanadd
EscapeSequence:
#spanend
#spanadd
	\'
#spanend
#spanadd
	\"
#spanend
#spanadd
	\?
#spanend
#spanadd
	\\
#spanend
#spanadd
	\a  (0x07)
#spanend
#spanadd
	\b  (0x08)
#spanend
#spanadd
	\f  (0x0C)
#spanend
#spanadd
	\n  (0x0A)
#spanend
#spanadd
	\r  (0x0D)
#spanend
#spanadd
	\t  (0x09)
#spanend
#spanadd
	\v  (0x0B)
#spanend
#spanadd
 
#spanend
#spanadd
Postfix:
#spanend
#spanadd
	c
#spanend
#spanadd
	w
#spanend
#spanadd
	d
#spanend
#spanadd
 
#spanend
#spanadd

文字リテラル - CharacterLiteral Edit

整数リテラル - IntegerLiteral Edit

浮動小数点数リテラル - FloatLiteral Edit

予約語 - Keyword Edit


    ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS