Surface.Tokenstype token = | YEAR| XOR| WITH_V| WITH| WILDCARD| WE_HAVE| UNDER_CONDITION| UIDENT of string| TYPE| TRUE| TO| THEN| THAT| SUM| SUCH| STRUCT| STRING of string| STATE| SEMICOLON| SCOPE| RULE| RPAREN| RBRACKET| RBRACE| PLUSPLUS| PLUS of Ast.op_kind| PERCENT| OUTPUT| OR_IF_LIST_EMPTY| OR| OPTION| OF| NOT_EQUAL| NOT| MULT of Ast.op_kind| MONTH| MONEY_AMOUNT of bool * string * string| MODULE_USE| MODULE_EXTERNAL| MODULE_DEF| MODULE_ALIAS| MINUS of Ast.op_kind| MINIMUM| MAXIMUM| MATCH| MAP_EACH| LPAREN| LIST| LIDENT of string| LET| LESSER_EQUAL of Ast.op_kind| LESSER of Ast.op_kind| LBRACKET| LBRACE| LAW_TEXT of string| LAW_INCLUDE| LAW_HEADING of string * string option * bool * int| LABEL| IS| INT_LITERAL of string| INTERNAL| INPUT| INITIALLY| INCREASING| IN| IF| GREATER_EQUAL of Ast.op_kind| GREATER of Ast.op_kind| FOR| FILLED| FALSE| EXISTS| EXCEPTION| EQUAL| EOF| ENUM| END_DIRECTIVE| END_CODE of string| ELSE| DOT| DOCSTRING of string| DIV of Ast.op_kind| DIRECTIVE_ARG of string| DEPENDS| DEFINITION| DEFINED_AS| DECREASING| DECLARATION| DECIMAL_LITERAL of string * string| DAY| DATE_LITERAL of int * int * int| DATE| DATA| CONTEXT| CONTENT| CONTAINS| CONSEQUENCE| CONDITION| COMMA| COMBINE| COLON| BUT_REPLACE| BEGIN_METADATA| BEGIN_DIRECTIVE| BEGIN_CODE| AT_PAGE of int| ATTR_START| ASSERTION| AND| AMONG| ALT| ALL