ソースコード Edit


次の3種類に限定。

ソースコード - SourceCode Edit


文字コードは次の3種類に限定。
形式BOM
ASCIIなし
UTF8EF BB BF
UTF160xFEFF
  • UTF16はランタイム環境のバイトオーダーのみ扱う。(PPCならUTF16BE、i386ならUTF16LE)
  • ASCII,UTF8は内部ではUTF16に変換して処理を行う。
  • ASCII,UTF8は内部ではUTF16に変換して処理を行う。
  • <検討中>最大行数はコンパイラの都合で制約を設けるかもしれない。

空白文字 Edit

行終端 Edit

コメント Edit

特殊トークン列 Edit

トークン Edit

ファイル終端 Edit

  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 Edit

  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 Edit

  0
  1
  2
  3
  4
  5
  6
  7
#spanend
#spanadd
EndOfLine:
#spanend
    0x000D
    0x000A
    0x000D 0x000A
    EndOfFile
#spanadd

ファイル終端 - EndOfFile Edit

  0
  1
  2
  3
  4
  5
  6
#spanend
#spanadd
EndOfFile:
#spanend
    physical end of the file
    0x0000
    0x001A
#spanadd

コメント - 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
 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 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
 51
 52
 53
#spanend
#spanadd
Token:
#spanend
    Identifier
    StringLiteral
    CharacterLiteral
    IntegerLiteral
    FloatLiteral
    Keyword
    "/"
    "/="
    "."
    "&"
    "&="
    "&&"
    "|"
    "|="
    "||"
    "-"
    "-="
    "--"
    "+"
    "+="
    "++"
    "<"
    "<="
    "<<"
    "<<="
    ">"
    ">="
    ">>="
    ">>"
    "!"
    "!="
    "("
    ")"
    "["
    "]"
    "{"
    "}"
    "?"
    ","
    ";"
    ":"
    "="
    "=="
    "*"
    "*="
    "%"
    "%="
    "^"
    "^="
    "~"
#spanadd

識別子 - 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
 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 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