# 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, 0x01 .equ TYPE_POINTER, 0x02 .equ INFO_PARAMETER, 0x10 .equ INFO_LOCAL, 0x20