! ! !++ ! ! ! TOKTYP.REQ ! ! ! This REQUIRE file contains all the definitions ! relating to the global block "token". ! ! ! REVISION HISTORY ! ! 12-Oct-81 TT Added s_empty to list of valid token types. ! This makes us look more like the 10/20. ! This will be used in the future for parsing ! empty lexical functions. ! ! 18-Jan-82 TT Added %require as s_p_require. Note that ! Bliss syntax says that %REQUIRE is not a ! declaration. ! ! END OF REVISION HISTORY !-- COMPILETIME _next_type_ = 0; MACRO next (a) = LITERAL a = _next_type_; %ASSIGN (_next_type_, _next_type_ + 1); %; ! ! Field definitions for token block. ! FIELD tokk = SET tok_len = [0, 0, %BPVAL, 0], tok_cp = [1, 0, %BPVAL, 0], tok_type = [2, 0, %BPVAL, 0] TES; MACRO tok_block = BLOCK [3] FIELD (tokk) %; ! next (s_end_of_file); !+ ! Delimiters and operators !- LITERAL first_delop = _next_type_; next (s_lparen); next (s_rparen); next (s_multiply); next (s_plus); next (s_minus); next (s_mod); next (s_comma); next (s_dot); next (s_divide); next (s_colon); next (s_semicolon); next (s_langle); next (s_equal); next (s_rangle); next (s_lbracket); next (s_rbracket); next (s_circumflex); next (s_percent); next (s_begin); next (s_end); next (s_from); next (s_to); next (s_by); next (s_set); next (s_tes); next (s_of); next (s_eqv); next (s_xor); next (s_or); next (s_and); next (s_not); next (s_eql); next (s_neq); next (s_lss); next (s_leq); next (s_gtr); next (s_geq); next (s_eqlu); next (s_nequ); next (s_lssu); next (s_lequ); next (s_gtru); next (s_gequ); next (s_eqla); next (s_neqa); next (s_lssa); next (s_leqa); next (s_gtra); next (s_geqa); next (s_plit); next (s_uplit); next (s_codecomment); LITERAL last_delop = _next_type_ - 1; !+ ! Comments !- LITERAL first_comment = _next_type_; next (remark); next (start_embedded); next (mid_embedded); next (end_embedded); next (start_block_com); next (mid_block_com); next (end_block_com); next (full_line_com); LITERAL last_comment = _next_type_ - 1; !+ ! Miscellany !- next (s_byte); next (s_word); next (s_long); next (s_name); next (s_string); next (s_numeric); next (s_percent_if); next (s_percent_then); next (s_percent_else); next (s_percent_fi); next (s_p_quote); next (s_empty); ! TT 12-Oct-81 next (s_p_compiler); next (s_p_require); next (s_p_subtitle); next (s_p_title); next (s_initial); !+ ! Declarators !- LITERAL first_decl = _next_type_; next (s_global); next (s_local); next (s_external); next (s_literal); next (s_stacklocal); next (s_register); next (s_map); next (s_forward); next (s_label); next (s_builtin); next (s_psect); next (s_own); next (s_linkage); next (s_structure); next (s_require); next (s_library); next (s_bind); next (s_routine); next (s_switches); next (s_macro); next (s_keywordmacro); next (s_enable); next (s_field); next (s_compiletime); next (s_undeclare); next (s_module); LITERAL last_decl = _next_type_ - 1; !+ ! Not quite declarations !- next (s_eludom); !+ ! Symbols which start control expressions !- LITERAL first_control = _next_type_; next (s_if); next (s_case); next (s_select); next (s_selectone); next (s_selectu); next (s_selectoneu); next (s_selecta); next (s_selectonea); next (s_incr); next (s_incra); next (s_incru); next (s_decr); next (s_decra); next (s_decru); next (s_while); next (s_until); next (s_do); next (s_leave); next (s_exitloop); next (s_return); LITERAL last_control = _next_type_ - 1; !+ ! More miscellany !- next (s_then); next (s_else); next (s_rep); next (s_with); next (s_newline); next (s_newpage); next (null_symbol); LITERAL max_sym = _next_type_ - 1; ! ! ! ... End of require file 'TOKTYP.REQ' ...