64 lines
1.6 KiB
PHP
64 lines
1.6 KiB
PHP
# This Source Code Form is subject to the terms of the Mozilla Public License,
|
|
# v. 2.0. If a copy of the MPL was not distributed with this file, You can
|
|
# obtain one at https://mozilla.org/MPL/2.0/.
|
|
|
|
#
|
|
# Tokens.
|
|
#
|
|
|
|
# The constant should match the index in the keywords array in tokenizer.s.
|
|
|
|
.equ TOKEN_PROGRAM, 1
|
|
.equ TOKEN_IMPORT, 2
|
|
.equ TOKEN_CONST, 3
|
|
.equ TOKEN_VAR, 4
|
|
.equ TOKEN_IF, 5
|
|
.equ TOKEN_THEN, 6
|
|
.equ TOKEN_ELSIF, 7
|
|
.equ TOKEN_ELSE, 8
|
|
.equ TOKEN_WHILE, 9
|
|
.equ TOKEN_DO, 10
|
|
.equ TOKEN_PROC, 11
|
|
.equ TOKEN_BEGIN, 12
|
|
.equ TOKEN_END, 13
|
|
.equ TOKEN_TYPE, 14
|
|
.equ TOKEN_RECORD, 15
|
|
.equ TOKEN_UNION, 16
|
|
.equ TOKEN_TRUE, 17
|
|
.equ TOKEN_FALSE, 18
|
|
.equ TOKEN_NIL, 19
|
|
.equ TOKEN_XOR, 20
|
|
.equ TOKEN_OR, 21
|
|
.equ TOKEN_RETURN, 22
|
|
.equ TOKEN_CAST, 23
|
|
.equ TOKEN_GOTO, 24
|
|
.equ TOKEN_CASE, 25
|
|
.equ TOKEN_OF, 26
|
|
|
|
.equ TOKEN_IDENTIFIER, 27
|
|
# The constant should match the character index in the byte_keywords string.
|
|
|
|
.equ TOKEN_AND, TOKEN_IDENTIFIER + 1
|
|
.equ TOKEN_DOT, TOKEN_IDENTIFIER + 2
|
|
.equ TOKEN_COMMA, TOKEN_IDENTIFIER + 3
|
|
.equ TOKEN_COLON, TOKEN_IDENTIFIER + 4
|
|
.equ TOKEN_SEMICOLON, TOKEN_IDENTIFIER + 5
|
|
.equ TOKEN_LEFT_PAREN, TOKEN_IDENTIFIER + 6
|
|
.equ TOKEN_RIGHT_PAREN, TOKEN_IDENTIFIER + 7
|
|
.equ TOKEN_LEFT_BRACKET, TOKEN_IDENTIFIER + 8
|
|
.equ TOKEN_RIGHT_BRACKET, TOKEN_IDENTIFIER + 9
|
|
.equ TOKEN_HAT, TOKEN_IDENTIFIER + 10
|
|
.equ TOKEN_EQUALS, TOKEN_IDENTIFIER + 11
|
|
.equ TOKEN_PLUS, TOKEN_IDENTIFIER + 12
|
|
.equ TOKEN_MINUS, TOKEN_IDENTIFIER + 13
|
|
.equ TOKEN_ASTERISK, TOKEN_IDENTIFIER + 14
|
|
.equ TOKEN_AT, TOKEN_IDENTIFIER + 15
|
|
|
|
.equ TOKEN_ASSIGN, 43
|
|
.equ TOKEN_INTEGER, 44
|
|
|
|
#
|
|
# Symbols.
|
|
#
|
|
.equ TYPE_PRIMITIVE, 1
|