| |
| /* DO NOT EDIT - THIS FILE IS AUTOMATICALLY GENERATED FROM THE .syn FILE */ |
| |
| ".syntax source;\n" |
| ".emtcode ESCAPE_TOKEN 0\n" |
| ".emtcode TOKEN_END 0\n" |
| ".emtcode TOKEN_DEFINE 1\n" |
| ".emtcode TOKEN_UNDEF 2\n" |
| ".emtcode TOKEN_IF 3\n" |
| ".emtcode TOKEN_ELSE 4\n" |
| ".emtcode TOKEN_ELIF 5\n" |
| ".emtcode TOKEN_ENDIF 6\n" |
| ".emtcode TOKEN_ERROR 7\n" |
| ".emtcode TOKEN_PRAGMA 8\n" |
| ".emtcode TOKEN_EXTENSION 9\n" |
| ".emtcode TOKEN_LINE 10\n" |
| ".emtcode PARAM_END 0\n" |
| ".emtcode PARAM_PARAMETER 1\n" |
| ".emtcode BEHAVIOR_REQUIRE 1\n" |
| ".emtcode BEHAVIOR_ENABLE 2\n" |
| ".emtcode BEHAVIOR_WARN 3\n" |
| ".emtcode BEHAVIOR_DISABLE 4\n" |
| "source\n" |
| " optional_directive .and .loop source_element .and '\\0' .emit ESCAPE_TOKEN .emit TOKEN_END;\n" |
| "source_element\n" |
| " c_style_comment_block .or cpp_style_comment_block .or new_line_directive .or source_token;\n" |
| "c_style_comment_block\n" |
| " '/' .and '*' .and c_style_comment_rest .and .true .emit ' ';\n" |
| "c_style_comment_rest\n" |
| " .loop c_style_comment_body .and c_style_comment_end;\n" |
| "c_style_comment_body\n" |
| " c_style_comment_char_nostar .or c_style_comment_char_star_noslashstar;\n" |
| "c_style_comment_char_nostar\n" |
| " new_line .or '\\x2B'-'\\xFF' .or '\\x01'-'\\x29';\n" |
| "c_style_comment_char_star_noslashstar\n" |
| " '*' .and c_style_comment_char_star_noslashstar_1;\n" |
| "c_style_comment_char_star_noslashstar_1\n" |
| " c_style_comment_char_noslashstar .or c_style_comment_char_star_noslashstar;\n" |
| "c_style_comment_char_noslashstar\n" |
| " new_line .or '\\x30'-'\\xFF' .or '\\x01'-'\\x29' .or '\\x2B'-'\\x2E';\n" |
| "c_style_comment_end\n" |
| " '*' .and .loop c_style_comment_char_star .and '/';\n" |
| "c_style_comment_char_star\n" |
| " '*';\n" |
| "cpp_style_comment_block\n" |
| " '/' .and '/' .and cpp_style_comment_block_1;\n" |
| "cpp_style_comment_block_1\n" |
| " cpp_style_comment_block_2 .or cpp_style_comment_block_3;\n" |
| "cpp_style_comment_block_2\n" |
| " .loop cpp_style_comment_char .and new_line_directive;\n" |
| "cpp_style_comment_block_3\n" |
| " .loop cpp_style_comment_char;\n" |
| "cpp_style_comment_char\n" |
| " '\\x0E'-'\\xFF' .or '\\x01'-'\\x09' .or '\\x0B'-'\\x0C';\n" |
| "new_line_directive\n" |
| " new_line .and optional_directive;\n" |
| "new_line\n" |
| " generic_new_line .emit '\\n';\n" |
| "generic_new_line\n" |
| " carriage_return_line_feed .or line_feed_carriage_return .or '\\n' .or '\\r';\n" |
| "carriage_return_line_feed\n" |
| " '\\r' .and '\\n';\n" |
| "line_feed_carriage_return\n" |
| " '\\n' .and '\\r';\n" |
| "optional_directive\n" |
| " directive .emit ESCAPE_TOKEN .or .true;\n" |
| "directive\n" |
| " dir_define .emit TOKEN_DEFINE .or\n" |
| " dir_undef .emit TOKEN_UNDEF .or\n" |
| " dir_if .emit TOKEN_IF .or\n" |
| " dir_ifdef .emit TOKEN_IF .emit 'd' .emit 'e' .emit 'f' .emit 'i' .emit 'n' .emit 'e' .emit 'd'\n" |
| " .emit ' ' .or\n" |
| " dir_ifndef .emit TOKEN_IF .emit '!' .emit 'd' .emit 'e' .emit 'f' .emit 'i' .emit 'n' .emit 'e'\n" |
| " .emit 'd' .emit ' ' .or\n" |
| " dir_else .emit TOKEN_ELSE .or\n" |
| " dir_elif .emit TOKEN_ELIF .or\n" |
| " dir_endif .emit TOKEN_ENDIF .or\n" |
| " dir_ext .emit TOKEN_EXTENSION .or\n" |
| " dir_line .emit TOKEN_LINE;\n" |
| "dir_define\n" |
| " optional_space .and '#' .and optional_space .and \"define\" .and symbol .and opt_parameters .and\n" |
| " definition;\n" |
| "dir_undef\n" |
| " optional_space .and '#' .and optional_space .and \"undef\" .and symbol;\n" |
| "dir_if\n" |
| " optional_space .and '#' .and optional_space .and \"if\" .and expression;\n" |
| "dir_ifdef\n" |
| " optional_space .and '#' .and optional_space .and \"ifdef\" .and symbol;\n" |
| "dir_ifndef\n" |
| " optional_space .and '#' .and optional_space .and \"ifndef\" .and symbol;\n" |
| "dir_else\n" |
| " optional_space .and '#' .and optional_space .and \"else\";\n" |
| "dir_elif\n" |
| " optional_space .and '#' .and optional_space .and \"elif\" .and expression;\n" |
| "dir_endif\n" |
| " optional_space .and '#' .and optional_space .and \"endif\";\n" |
| "dir_ext\n" |
| " optional_space .and '#' .and optional_space .and \"extension\" .and space .and extension_name .and\n" |
| " optional_space .and ':' .and optional_space .and extension_behavior;\n" |
| "dir_line\n" |
| " optional_space .and '#' .and optional_space .and \"line\" .and expression;\n" |
| "symbol\n" |
| " space .and symbol_character .emit * .and .loop symbol_character2 .emit * .and .true .emit '\\0';\n" |
| "opt_parameters\n" |
| " parameters .or .true .emit PARAM_END;\n" |
| "parameters\n" |
| " '(' .and parameters_1 .and optional_space .and ')' .emit PARAM_END;\n" |
| "parameters_1\n" |
| " parameters_2 .or .true;\n" |
| "parameters_2\n" |
| " parameter .emit PARAM_PARAMETER .and .loop parameters_3;\n" |
| "parameters_3\n" |
| " optional_space .and ',' .and parameter .emit PARAM_PARAMETER;\n" |
| "parameter\n" |
| " optional_space .and symbol_character .emit * .and .loop symbol_character2 .emit * .and\n" |
| " .true .emit '\\0';\n" |
| "definition\n" |
| " .loop definition_character .emit * .and .true .emit '\\0';\n" |
| "definition_character\n" |
| " '\\x0E'-'\\xFF' .or '\\x01'-'\\x09' .or '\\x0B'-'\\x0C';\n" |
| "expression\n" |
| " expression_element .and .loop expression_element .and .true .emit '\\0';\n" |
| "expression_element\n" |
| " expression_character .emit *;\n" |
| "expression_character\n" |
| " '\\x0E'-'\\xFF' .or '\\x01'-'\\x09' .or '\\x0B'-'\\x0C';\n" |
| "extension_name\n" |
| " symbol_character .emit * .and .loop symbol_character2 .emit * .and .true .emit '\\0';\n" |
| "extension_behavior\n" |
| " \"require\" .emit BEHAVIOR_REQUIRE .or\n" |
| " \"enable\" .emit BEHAVIOR_ENABLE .or\n" |
| " \"warn\" .emit BEHAVIOR_WARN .or\n" |
| " \"disable\" .emit BEHAVIOR_DISABLE;\n" |
| "optional_space\n" |
| " .loop single_space;\n" |
| "space\n" |
| " single_space .and .loop single_space;\n" |
| "single_space\n" |
| " ' ' .or '\\t';\n" |
| "source_token\n" |
| " space .emit ' ' .or complex_token .or source_token_1;\n" |
| "source_token_1\n" |
| " simple_token .emit ' ' .and .true .emit ' ';\n" |
| "complex_token\n" |
| " identifier .or number;\n" |
| "simple_token\n" |
| " increment .or decrement .or lequal .or gequal .or equal .or nequal .or and .or xor .or or .or\n" |
| " addto .or subtractfrom .or multiplyto .or divideto .or other;\n" |
| "identifier\n" |
| " identifier_char1 .emit * .and .loop identifier_char2 .emit *;\n" |
| "identifier_char1\n" |
| " 'a'-'z' .or 'A'-'Z' .or '_';\n" |
| "identifier_char2\n" |
| " 'a'-'z' .or 'A'-'Z' .or '0'-'9' .or '_';\n" |
| "number\n" |
| " float .or integer;\n" |
| "digit_oct\n" |
| " '0'-'7';\n" |
| "digit_dec\n" |
| " '0'-'9';\n" |
| "digit_hex\n" |
| " '0'-'9' .or 'A'-'F' .or 'a'-'f';\n" |
| "float\n" |
| " float_1 .or float_2;\n" |
| "float_1\n" |
| " float_fractional_constant .and float_optional_exponent_part;\n" |
| "float_2\n" |
| " float_digit_sequence .and float_exponent_part;\n" |
| "float_fractional_constant\n" |
| " float_fractional_constant_1 .or float_fractional_constant_2 .or float_fractional_constant_3;\n" |
| "float_fractional_constant_1\n" |
| " float_digit_sequence .and '.' .emit '.' .and float_digit_sequence;\n" |
| "float_fractional_constant_2\n" |
| " float_digit_sequence .and '.' .emit '.';\n" |
| "float_fractional_constant_3\n" |
| " '.' .emit '.' .and float_digit_sequence;\n" |
| "float_optional_exponent_part\n" |
| " float_exponent_part .or .true;\n" |
| "float_digit_sequence\n" |
| " digit_dec .emit * .and .loop digit_dec .emit *;\n" |
| "float_exponent_part\n" |
| " float_exponent_part_1 .or float_exponent_part_2;\n" |
| "float_exponent_part_1\n" |
| " 'e' .emit 'e' .and float_optional_sign .and float_digit_sequence;\n" |
| "float_exponent_part_2\n" |
| " 'E' .emit 'E' .and float_optional_sign .and float_digit_sequence;\n" |
| "float_optional_sign\n" |
| " '+' .emit '+' .or '-' .emit '-' .or .true;\n" |
| "integer\n" |
| " integer_hex .or integer_oct .or integer_dec;\n" |
| "integer_hex\n" |
| " '0' .emit '0' .and integer_hex_1 .emit * .and digit_hex .emit * .and\n" |
| " .loop digit_hex .emit *;\n" |
| "integer_hex_1\n" |
| " 'x' .or 'X';\n" |
| "integer_oct\n" |
| " '0' .emit '0' .and .loop digit_oct .emit *;\n" |
| "integer_dec\n" |
| " digit_dec .emit * .and .loop digit_dec .emit *;\n" |
| "increment\n" |
| " '+' .emit * .and '+' .emit *;\n" |
| "decrement\n" |
| " '-' .emit * .and '-' .emit *;\n" |
| "lequal\n" |
| " '<' .emit * .and '=' .emit *;\n" |
| "gequal\n" |
| " '>' .emit * .and '=' .emit *;\n" |
| "equal\n" |
| " '=' .emit * .and '=' .emit *;\n" |
| "nequal\n" |
| " '!' .emit * .and '=' .emit *;\n" |
| "and\n" |
| " '&' .emit * .and '&' .emit *;\n" |
| "xor\n" |
| " '^' .emit * .and '^' .emit *;\n" |
| "or\n" |
| " '|' .emit * .and '|' .emit *;\n" |
| "addto\n" |
| " '+' .emit * .and '=' .emit *;\n" |
| "subtractfrom\n" |
| " '-' .emit * .and '=' .emit *;\n" |
| "multiplyto\n" |
| " '*' .emit * .and '=' .emit *;\n" |
| "divideto\n" |
| " '/' .emit * .and '=' .emit *;\n" |
| "other\n" |
| " '\\x24'-'\\xFF' .emit * .or '\\x01'-'\\x22' .emit *;\n" |
| "symbol_character\n" |
| " 'A'-'Z' .or 'a'-'z' .or '_';\n" |
| "symbol_character2\n" |
| " 'A'-'Z' .or 'a'-'z' .or '0'-'9' .or '_';\n" |
| ".string string_lexer;\n" |
| "string_lexer\n" |
| " lex_first_identifier_character .and .loop lex_next_identifier_character;\n" |
| "lex_first_identifier_character\n" |
| " 'a'-'z' .or 'A'-'Z' .or '_';\n" |
| "lex_next_identifier_character\n" |
| " 'a'-'z' .or 'A'-'Z' .or '0'-'9' .or '_';\n" |
| "" |