{++ VTL.PAT {-- } TERMINAL GOALSY = 00 ; { tokens } COMMENT, t_comment = 01 ; LOCAL_NAME, t_local_name = 02 ; NAME, t_name = 03 ; NUMERIC, t_numeric = 04 ; STRING_LITERAL, t_string_literal = 05 ; { directive keywords } DEFINE, t_define = 06 ; INCLUDE, t_include = 07 ; CDD, t_cdd = 08 ; { data types } TYPEDEF, t_typedef = 46 ; BOOLEAN, t_boolean = 25 ; BYTE, t_byte = 26 ; DECIMAL, t_decimal = 28 ; D_FLOATING, t_d_floating = 29 ; F_FLOATING, t_f_floating = 30 ; G_FLOATING, t_g_floating = 31 ; H_FLOATING, t_h_floating = 32 ; LONGWORD, t_longword = 33 ; OCTAWORD, t_octaword = 34 ; QUADWORD, t_quadword = 35 ; BITFIELD, t_bitfield = 36 ; WORD, t_word = 37 ; STRUCTURE, t_structure = 38 ; UNION, t_union = 39 ; ASCICZ, t_ascicz = 27 ; ASCIC, t_ascic = 40 ; ASCICW, t_ascicw = 09 ; ASCID, t_ascicd = 10 ; { data type options } LENGTH, t_length = 41 ; PRECISION, t_precision = 43 ; UNSIGNED, t_unsigned = 44 ; { punctuation } '!', t_exclamation = 60; '&', t_ampersand = 61; '(', t_l_paren = 62; ')', t_r_paren = 63; '*', t_star = 64; '+', t_plus = 65; ',', t_comma = 66; '-', t_minus = 67; '.', t_dot = 68; '/', t_slash = 69; ':', t_colon = 70; ';', t_semicolon = 71; '=', t_equal = 72; '@', t_at = 73; '^', t_circumflex = 74; EOL, t_eol = 75; EOF, t_eof = 76; '<', t_l_angl = 77; '>', t_r_angl = 78; END; BEGIN ADDLE = program GOALSY; program = module /initialize ; module = module_header; module_header = include_clause | cdd_clause; include_clause = INCLUDE '<' STRING_LITERAL '>' EOL /__vtl_include | INCLUDE STRING_LITERAL EOL /__vtl_include; cdd_clause = CDD '<' STRING_LITERAL '>' EOL /__vtl_cdd | CDD STRING_LITERAL EOL /__vtl_cdd; END.