- 追加された行はこの色です。
- 削除された行はこの色です。
#contents
* ソースコード - SourceCode [#cfa31cf2]
次の3種類に限定。
文字コードは次の3種類に限定。
|形式|BOM|h
|ASCII|なし|
|UTF8|EF BB BF|
|UTF16|0xFEFF|
- UTF16はランタイム環境のバイトオーダーのみ扱う。(PPCならUTF16BE、i386ならUTF16LE)
- ASCII,UTF8は内部ではUTF16に変換して処理を行う。
- <検討中>最大行数はコンパイラの都合で制約を設けるかもしれない。
#code(){{
SourceCode:
EndOfFile
CodeElements EndOfFile
CodeElements:
WhiteSpace
EndOfLine
Comment
Token
}}
* 空白文字 - WhiteSpace [#nad02589]
#code(){{
WhiteSpace:
Space
Space WhiteSpace
Space:
0x0020
0x0009
0x000B
0x000C
}}
* 行終端 - EndOfLine [#r4d2738d]
#code(){{
EndOfLine:
0x000D
0x000A
0x000D 0x000A
EndOfFile
}}
* ファイル終端 - EndOfFile [#va7e837a]
#code(){{
EndOfFile:
physical end of the file
0x0000
0x001A
}}
* コメント - Comment [#qa54bd26]
#code(){{
Comment:
"/*" Characters "*/"
"//" Characters EndOfLine
NestingBlockComment
Characters:
Character
Character Characters
NestingBlockComment:
"/+" NestingBlockCommentCharacters "+/"
NestingBlockCommentCharacters:
NestingBlockCommentCharacter
NestingBlockCommentCharacter NestingBlockCommentCharacters
NestingBlockCommentCharacter:
Character
NestingBlockComment
}}
* トークン - Token [#v8f771eb]
#code(){{
Token:
Identifier
StringLiteral
CharacterLiteral
IntegerLiteral
FloatLiteral
Keyword
"/"
"/="
"."
"&"
"&="
"&&"
"|"
"|="
"||"
"-"
"-="
"--"
"+"
"+="
"++"
"<"
"<="
"<<"
"<<="
">"
">="
">>="
">>"
"!"
"!="
"("
")"
"["
"]"
"{"
"}"
"?"
","
";"
":"
"="
"=="
"*"
"*="
"%"
"%="
"^"
"^="
"~"
"~="
}}
** 識別子 - Identifier [#b861bbb3]
#code(){{
Identifier:
IdentiferStart
IdentiferStart IdentifierChars
IdentifierChars:
IdentiferChar
IdentiferChar IdentifierChars
IdentifierStart:
Letter
EnglishAlpha
UniversalAlpha
IdentifierChar:
IdentiferStart
NonZeroDigit
"0"
Digit
"_"
Letter:
EnglishAlpha:
a-zA-Z
UniversalAlpha:
あいうえお...
Digit:
0-9
}}
** 文字列リテラル - StringLiteral [#h73c4447]
** 文字リテラル - CharacterLiteral [#a8af45e6]
** 整数リテラル - IntegerLiteral [#s6dcb4a0]
** 浮動小数点数リテラル - FloatLiteral [#te85f937]
** 予約語 - Keyword [#m8527744]