Compiler/lexical analyzer: Difference between revisions
Content added Content deleted
Line 6,998: | Line 6,998: | ||
} |
} |
||
default : { |
default : { |
||
if (ch[1] |
if any(&digits, ch[1]) then { |
||
ch @pushback |
ch @pushback |
||
return scan_integer_literal(inp, pushback) |
return scan_integer_literal(inp, pushback) |
||
} else if (ch[1] |
} else if any(ident_start, ch[1]) then { |
||
ch @pushback |
ch @pushback |
||
return scan_identifier_or_reserved_word (inp, pushback) |
return scan_identifier_or_reserved_word (inp, pushback) |
||
Line 7,020: | Line 7,020: | ||
line_no := ch[2] |
line_no := ch[2] |
||
column_no := ch[3] |
column_no := ch[3] |
||
while EOF ~=== ch[1] & (ch[1] |
while EOF ~=== ch[1] & any(ident_continuation, ch[1]) do { |
||
s ||:= ch[1] |
s ||:= ch[1] |
||
ch := @inp |
ch := @inp |
||
Line 7,037: | Line 7,037: | ||
line_no := ch[2] |
line_no := ch[2] |
||
column_no := ch[3] |
column_no := ch[3] |
||
while EOF ~=== ch[1] & (ch[1] |
while EOF ~=== ch[1] & any(ident_continuation, ch[1]) do { |
||
s ||:= ch[1] |
s ||:= ch[1] |
||
ch := @inp |
ch := @inp |
||
Line 7,134: | Line 7,134: | ||
ch := @inp |
ch := @inp |
||
(EOF === ch[1]) & { ch @pushback; return } |
(EOF === ch[1]) & { ch @pushback; return } |
||
if not (ch[1] |
if not any(whitespace, ch[1]) then { |
||
(ch[1] == "/") | { ch @pushback; return } |
(ch[1] == "/") | { ch @pushback; return } |
||
(ch1 := @inp) | { ch @pushback; return } |
(ch1 := @inp) | { ch @pushback; return } |