⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 grammar_syn.h

📁 Mesa is an open-source implementation of the OpenGL specification - a system for rendering interacti
💻 H
字号:
".syntax grammar;\n"".emtcode DECLARATION_END 0\n"".emtcode DECLARATION_EMITCODE 1\n"".emtcode DECLARATION_ERRORTEXT 2\n"".emtcode DECLARATION_REGBYTE 3\n"".emtcode DECLARATION_LEXER 4\n"".emtcode DECLARATION_RULE 5\n"".emtcode SPECIFIER_END 0\n"".emtcode SPECIFIER_AND_TAG 1\n"".emtcode SPECIFIER_OR_TAG 2\n"".emtcode SPECIFIER_CHARACTER_RANGE 3\n"".emtcode SPECIFIER_CHARACTER 4\n"".emtcode SPECIFIER_STRING 5\n"".emtcode SPECIFIER_IDENTIFIER 6\n"".emtcode SPECIFIER_TRUE 7\n"".emtcode SPECIFIER_FALSE 8\n"".emtcode SPECIFIER_DEBUG 9\n"".emtcode IDENTIFIER_SIMPLE 0\n"".emtcode IDENTIFIER_LOOP 1\n"".emtcode ERROR_NOT_PRESENT 0\n"".emtcode ERROR_PRESENT 1\n"".emtcode EMIT_NULL 0\n"".emtcode EMIT_INTEGER 1\n"".emtcode EMIT_IDENTIFIER 2\n"".emtcode EMIT_CHARACTER 3\n"".emtcode EMIT_LAST_CHARACTER 4\n"".emtcode EMIT_CURRENT_POSITION 5\n"".errtext INVALID_GRAMMAR \"internal error 2001: invalid grammar script\"\n"".errtext SYNTAX_EXPECTED \"internal error 2002: '.syntax' keyword expected\"\n"".errtext IDENTIFIER_EXPECTED \"internal error 2003: identifier expected\"\n"".errtext MISSING_SEMICOLON \"internal error 2004: missing ';'\"\n"".errtext INTEGER_EXPECTED \"internal error 2005: integer value expected\"\n"".errtext STRING_EXPECTED \"internal error 2006: string expected\"\n""grammar\n"" grammar_1 .error INVALID_GRAMMAR;\n""grammar_1\n"" optional_space .and \".syntax\" .error SYNTAX_EXPECTED .and space .and identifier .and\n"" semicolon .and declaration_list .and optional_space .and '\\0' .emit DECLARATION_END;\n""optional_space\n"" space .or .true;\n""space\n"" single_space .and .loop single_space;\n""single_space\n"" white_char .or comment_block;\n""white_char\n"" ' ' .or '\\t' .or '\\n' .or '\\r';\n""comment_block\n"" '/' .and '*' .and comment_rest;\n""comment_rest\n"" .loop comment_char_no_star .and comment_rest_1;\n""comment_rest_1\n"" comment_end .or comment_rest_2;\n""comment_rest_2\n"" '*' .and comment_rest;\n""comment_char_no_star\n"" '\\x2B'-'\\xFF' .or '\\x01'-'\\x29';\n""comment_end\n"" '*' .and '/';\n""identifier\n"" identifier_ne .error IDENTIFIER_EXPECTED;\n""identifier_ne\n"" first_idchar .emit * .and .loop follow_idchar .emit * .and .true .emit '\\0';\n""first_idchar\n"" 'a'-'z' .or 'A'-'Z' .or '_';\n""follow_idchar\n"" first_idchar .or digit_dec;\n""digit_dec\n"" '0'-'9';\n""semicolon\n"" optional_space .and ';' .error MISSING_SEMICOLON .and optional_space;\n""declaration_list\n"" declaration .and .loop declaration;\n""declaration\n"" emitcode_definition .emit DECLARATION_EMITCODE .or\n"" errortext_definition .emit DECLARATION_ERRORTEXT .or\n"" regbyte_definition .emit DECLARATION_REGBYTE .or\n"" lexer_definition .emit DECLARATION_LEXER .or\n"" rule_definition .emit DECLARATION_RULE;\n""emitcode_definition\n"" \".emtcode\" .and space .and identifier .and space .and integer .and space_or_null;\n""integer\n"" integer_ne .error INTEGER_EXPECTED;\n""integer_ne\n"" hex_integer .emit 0x10 .or dec_integer .emit 10;\n""hex_integer\n"" hex_prefix .and digit_hex .emit * .and .loop digit_hex .emit * .and .true .emit '\\0';\n""hex_prefix\n"" '0' .and hex_prefix_1;\n""hex_prefix_1\n"" 'x' .or 'X';\n""digit_hex\n"" '0'-'9' .or 'a'-'f' .or 'A'-'F';\n""dec_integer\n"" digit_dec .emit * .and .loop digit_dec .emit * .and .true .emit '\\0';\n""space_or_null\n"" space .or '\\0';\n""errortext_definition\n"" \".errtext\" .and space .and identifier .and space .and string .and space_or_null;\n""string\n"" string_ne .error STRING_EXPECTED;\n""string_ne\n"" '\"' .and .loop string_char_double_quotes .and '\"' .emit '\\0';\n""string_char_double_quotes\n"" escape_sequence .or string_char .emit * .or '\\'' .emit *;\n""string_char\n"" '\\x5D'-'\\xFF' .or '\\x28'-'\\x5B' .or '\\x23'-'\\x26' .or '\\x0E'-'\\x21' .or '\\x0B'-'\\x0C' .or\n"" '\\x01'-'\\x09';\n""escape_sequence\n"" '\\\\' .emit * .and escape_code;\n""escape_code\n"" simple_escape_code .emit * .or hex_escape_code .or oct_escape_code;\n""simple_escape_code\n"" '\\'' .or '\"' .or '?' .or '\\\\' .or 'a' .or 'b' .or 'f' .or 'n' .or 'r' .or 't' .or 'v';\n""hex_escape_code\n"" 'x' .emit * .and digit_hex .emit * .and .loop digit_hex .emit *;\n""oct_escape_code\n"" digit_oct .emit * .and optional_digit_oct .and optional_digit_oct;\n""digit_oct\n"" '0'-'7';\n""optional_digit_oct\n"" digit_oct .emit * .or .true;\n""regbyte_definition\n"" \".regbyte\" .and space .and identifier .and space .and integer .and space_or_null;\n""lexer_definition\n"" \".string\" .and space .and identifier .and semicolon;\n""rule_definition\n"" identifier_ne .and space .and definition;\n""definition\n"" specifier .and optional_specifiers_and_or .and semicolon .emit SPECIFIER_END;\n""optional_specifiers_and_or\n"" and_specifiers .emit SPECIFIER_AND_TAG .or or_specifiers .emit SPECIFIER_OR_TAG .or .true;\n""specifier\n"" specifier_condition .and optional_space .and specifier_rule;\n""specifier_condition\n"" specifier_condition_1 .or .true;\n""specifier_condition_1\n"" \".if\" .and optional_space .and '(' .and optional_space .and left_operand .and operator .and\n"" right_operand .and optional_space .and ')';\n""left_operand\n"" identifier;\n""operator\n"" operator_1 .or operator_2;\n""operator_1\n"" optional_space .and '!' .and '=' .and optional_space;\n""operator_2\n"" optional_space .and '=' .and '=' .and optional_space;\n""right_operand\n"" integer;\n""specifier_rule\n"" specifier_rule_1 .and optional_error .and .loop emit .and .true .emit EMIT_NULL;\n""specifier_rule_1\n"" character_range .emit SPECIFIER_CHARACTER_RANGE .or\n"" character .emit SPECIFIER_CHARACTER .or\n"" string_ne .emit SPECIFIER_STRING .or\n"" \".true\" .emit SPECIFIER_TRUE .or\n"" \".false\" .emit SPECIFIER_FALSE .or\n"" \".debug\" .emit SPECIFIER_DEBUG .or\n"" advanced_identifier .emit SPECIFIER_IDENTIFIER;\n""character\n"" '\\'' .and string_char_single_quotes .and '\\'' .emit '\\0';\n""string_char_single_quotes\n"" escape_sequence .or string_char .emit * .or '\"' .emit *;\n""character_range\n"" character .and optional_space .and '-' .and optional_space .and character;\n""advanced_identifier\n"" optional_loop .and identifier;\n""optional_loop\n"" optional_loop_1 .emit IDENTIFIER_LOOP .or .true .emit IDENTIFIER_SIMPLE;\n""optional_loop_1\n"" \".loop\" .and space;\n""optional_error\n"" error .emit ERROR_PRESENT .or .true .emit ERROR_NOT_PRESENT;\n""error\n"" space .and \".error\" .and space .and identifier;\n""emit\n"" emit_output .or emit_regbyte;\n""emit_output\n"" space .and \".emit\" .and space .and emit_param;\n""emit_param\n"" integer_ne .emit EMIT_INTEGER .or\n"" identifier_ne .emit EMIT_IDENTIFIER .or\n"" character .emit EMIT_CHARACTER .or\n"" '*' .emit EMIT_LAST_CHARACTER .or\n"" '$' .emit EMIT_CURRENT_POSITION;\n""emit_regbyte\n"" space .and \".load\" .and space .and identifier .and space .and emit_param;\n""and_specifiers\n"" and_specifier .and .loop and_specifier;\n""or_specifiers\n"" or_specifier .and .loop or_specifier;\n""and_specifier\n"" space .and \".and\" .and space .and specifier;\n""or_specifier\n"" space .and \".or\" .and space .and specifier;\n"".string __string_filter;\n""__string_filter\n"" __first_identifier_char .and .loop __next_identifier_char;\n""__first_identifier_char\n"" 'a'-'z' .or 'A'-'Z' .or '_' .or '.';\n""__next_identifier_char\n"" 'a'-'z' .or 'A'-'Z' .or '_' .or '0'-'9';\n"""

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -