Compiler/lexical analyzer: Difference between revisions
→{{header|ATS}}
Line 1,047:
#define RESERVED_WORD_HASHTAB_SIZE 9
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
typedef token_t =
[i : int |
int i
typedef tokentuple_t = (token_t, String, ullint, ullint)
Line 1,110:
column_no : ullint) : tokentuple_t =
if string_length s < 2 then
(
else
let
Line 1,120:
val token = toktab[hashval]
in
if token =
(
else
(token, s, line_no, column_no)
Line 1,386:
val _ = check_they_are_all_digits lst
in
((
end
Line 1,421:
val s = ichar2integer_literal (char2i '\n')
in
((
end
else if (ch2.ichar) = char2i '\\' then
Line 1,427:
val s = ichar2integer_literal (char2i '\\')
in
((
end
else
Line 1,437:
val s = ichar2integer_literal (ch1.ichar)
in
((
end
end
Line 1,527:
val s = reverse_list_to_string lst
in
((
end
Line 1,540:
in
case+ int2char0 (ch.ichar) of
| ',' => ((
| ';' => ((
| '\(' => ((
| ')' => ((
| '\{' => ((
| '}' => ((
| '*' => ((
| '/' => ((
| '%' => ((
| '+' => ((
| '-' => ((
| '<' =>
let
Line 1,556:
in
if (ch1.ichar) = char2i '=' then
((
else
let
val inp = push_back_ch (ch1, inp)
in
((
end
end
Line 1,569:
in
if (ch1.ichar) = char2i '=' then
((
else
let
val inp = push_back_ch (ch1, inp)
in
((
end
end
Line 1,582:
in
if (ch1.ichar) = char2i '=' then
((
else
let
val inp = push_back_ch (ch1, inp)
in
((
end
end
Line 1,595:
in
if (ch1.ichar) = char2i '=' then
((
else
let
val inp = push_back_ch (ch1, inp)
in
((
end
end
Line 1,608:
in
if (ch1.ichar) = char2i '&' then
((
else
$raise unexpected_character (ch.line_no, ch.column_no,
Line 1,618:
in
if (ch1.ichar) = char2i '|' then
((
else
$raise unexpected_character (ch.line_no, ch.column_no,
Line 1,684:
begin
case+ toktup.0 of
|
|
|
| _ => ()
end;
Line 1,708:
in
if (ch.ichar) < 0 then
print_token (outf, (
lookups)
else
Line 1,737:
var reserved_word_tokens =
@[token_t][RESERVED_WORD_HASHTAB_SIZE]
(
var token_names =
|