ソースコード
次の3種類に限定。
ソースコード - SourceCode
文字コードは次の3種類に限定。
形式 | BOM | ASCII | なし | UTF8 | EF BB BF | UTF16 | 0xFEFF |
- 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
| #spanend
#spanadd
SourceCode:
#spanend
EndOfFile
CodeElements EndOfFile
#spanadd
CodeElements:
#spanend
WhiteSpace
EndOfLine
Comment
Token
#spanadd
#spanend
#spanadd
|
空白文字 - WhiteSpace
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| #spanend
#spanadd
WhiteSpace:
#spanend
Space
Space WhiteSpace
#spanadd
#spanend
#spanadd
Space:
#spanend
0x0020
0x0009
0x000B
0x000C
#spanadd
|
行終端 - EndOfLine
0
1
2
3
4
5
6
7
| #spanend
#spanadd
EndOfLine:
#spanend
0x000D
0x000A
0x000D 0x000A
EndOfFile
#spanadd
|
ファイル終端 - EndOfFile
0
1
2
3
4
5
6
| #spanend
#spanadd
EndOfFile:
#spanend
physical end of the file
0x0000
0x001A
#spanadd
|
コメント - Comment
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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
| #spanend
#spanadd
Comment:
#spanend
"/*" Characters "*/"
"//" Characters EndOfLine
NestingBlockComment
#spanadd
#spanend
#spanadd
Characters:
#spanend
Character
Character Characters
#spanadd
#spanend
#spanadd
NestingBlockComment:
#spanend
"/+" NestingBlockCommentCharacters "+/"
#spanadd
#spanend
#spanadd
NestingBlockCommentCharacters:
#spanend
NestingBlockCommentCharacter
NestingBlockCommentCharacter NestingBlockCommentCharacters
#spanadd
#spanend
#spanadd
NestingBlockCommentCharacter:
#spanend
Character
NestingBlockComment
#spanadd
#spanend
#spanadd
|
トークン - Token
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
| #spanend
#spanadd
Token:
#spanend
Identifier
StringLiteral
CharacterLiteral
IntegerLiteral
FloatLiteral
Keyword
"/"
"/="
"."
"&"
"&="
"&&"
"|"
"|="
"||"
"-"
"-="
"--"
"+"
"+="
"++"
"<"
"<="
"<<"
"<<="
">"
">="
">>="
">>"
"!"
"!="
"("
")"
"["
"]"
"{"
"}"
"?"
","
";"
":"
"="
"=="
"*"
"*="
"%"
"%="
"^"
"^="
"~"
#spanadd
|
識別子 - Identifier
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
| #spanend
#spanadd
Identifier:
#spanend
IdentiferStart
IdentiferStart IdentifierChars
#spanadd
#spanend
#spanadd
IdentifierChars:
#spanend
IdentiferChar
IdentiferChar IdentifierChars
#spanadd
#spanend
#spanadd
IdentifierStart:
#spanend
EnglishAlpha
UniversalAlpha
#spanadd
#spanend
#spanadd
IdentifierChar:
#spanend
IdentiferStart
Digit
"_"
#spanadd
#spanend
#spanadd
EnglishAlpha:
#spanend
a-zA-Z
#spanadd
#spanend
#spanadd
UniversalAlpha:
#spanend
あいうえお...
#spanadd
#spanend
#spanadd
Digit:
#spanend
0-9
#spanadd
#spanend
#spanadd
|
文字列リテラル - StringLiteral
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
整数リテラル - IntegerLiteral
浮動小数点数リテラル - FloatLiteral
予約語 - Keyword
|