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

📄 slang_shader_syn.h

📁 这是一个开放源代码的与WINNT/WIN2K/WIN2003兼容的操作系统
💻 H
📖 第 1 页 / 共 3 页
字号:
" expression .and semicolon .emit OP_END;\n"
"selection_statement\n"
" \"if\" .emit OP_IF .and lparen .error LPAREN_EXPECTED .and expression .and\n"
" rparen .error RPAREN_EXPECTED .emit OP_END .and selection_rest_statement;\n"
"selection_rest_statement\n"
" statement .and selection_rest_statement_1;\n"
"selection_rest_statement_1\n"
" selection_rest_statement_2 .or .true .emit OP_EXPRESSION .emit OP_PUSH_VOID .emit OP_END;\n"
"selection_rest_statement_2\n"
" \"else\" .and optional_space .and statement;\n"
"condition\n"
" condition_1 .emit OP_DECLARE .emit DECLARATION_INIT_DECLARATOR_LIST .or\n"
" condition_3 .emit OP_EXPRESSION;\n"
"condition_1\n"
" condition_1_nospace .or condition_1_space;\n"
"condition_1_nospace\n"
" fully_specified_type_nospace .and condition_2;\n"
"condition_1_space\n"
" fully_specified_type_space .and space .and condition_2;\n"
"condition_2\n"
" identifier .emit VARIABLE_IDENTIFIER .and equals .emit VARIABLE_INITIALIZER .and\n"
" initializer .and .true .emit DECLARATOR_NONE;\n"
"condition_3\n"
" expression .and .true .emit OP_END;\n"
"iteration_statement\n"
" iteration_statement_1 .or iteration_statement_2 .or iteration_statement_3;\n"
"iteration_statement_1\n"
" \"while\" .emit OP_WHILE .and lparen .error LPAREN_EXPECTED .and condition .and\n"
" rparen .error RPAREN_EXPECTED .and statement_no_new_scope;\n"
"iteration_statement_2\n"
" \"do\" .emit OP_DO .and statement_space .and \"while\" .and lparen .error LPAREN_EXPECTED .and\n"
" expression .and rparen .error RPAREN_EXPECTED .emit OP_END .and semicolon;\n"
"iteration_statement_3\n"
" \"for\" .emit OP_FOR .and lparen .error LPAREN_EXPECTED .and for_init_statement .and\n"
" for_rest_statement .and rparen .error RPAREN_EXPECTED .and statement_no_new_scope;\n"
"for_init_statement\n"
" expression_statement .emit OP_EXPRESSION .or declaration_statement .emit OP_DECLARE;\n"
"conditionopt\n"
" condition .or\n"
" .true .emit OP_EXPRESSION .emit OP_PUSH_BOOL .emit 2 .emit '1' .emit '\\0' .emit OP_END;\n"
"for_rest_statement\n"
" conditionopt .and semicolon .and for_rest_statement_1;\n"
"for_rest_statement_1\n"
" for_rest_statement_2 .or .true .emit OP_PUSH_VOID .emit OP_END;\n"
"for_rest_statement_2\n"
" expression .and .true .emit OP_END;\n"
"jump_statement\n"
" jump_statement_1 .or jump_statement_2 .or jump_statement_3 .or jump_statement_4 .or\n"
" .if (shader_type == 1) jump_statement_5;\n"
"jump_statement_1\n"
" \"continue\" .and semicolon .emit OP_CONTINUE;\n"
"jump_statement_2\n"
" \"break\" .and semicolon .emit OP_BREAK;\n"
"jump_statement_3\n"
" \"return\" .emit OP_RETURN .and optional_space .and expression .and semicolon .emit OP_END;\n"
"jump_statement_4\n"
" \"return\" .emit OP_RETURN .and semicolon .emit OP_PUSH_VOID .emit OP_END;\n"
"jump_statement_5\n"
" \"discard\" .and semicolon .emit OP_DISCARD;\n"
"__asm_statement\n"
" \"__asm\" .and space .and identifier .and space .and asm_arguments .and semicolon .emit OP_END;\n"
"asm_arguments\n"
" variable_identifier .and .true .emit OP_END .and .loop asm_arguments_1;\n"
"asm_arguments_1\n"
" comma .and variable_identifier .and .true .emit OP_END;\n"
"translation_unit\n"
" optional_space .emit REVISION .and external_declaration .error INVALID_EXTERNAL_DECLARATION .and\n"
" .loop external_declaration .and optional_space .and\n"
" '\\0' .error INVALID_EXTERNAL_DECLARATION .emit EXTERNAL_NULL;\n"
"external_declaration\n"
" function_definition .emit EXTERNAL_FUNCTION_DEFINITION .or\n"
" declaration .emit EXTERNAL_DECLARATION;\n"
"function_definition\n"
" function_prototype .and compound_statement_no_new_scope;\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"
"id_character_first\n"
" 'a'-'z' .or 'A'-'Z' .or '_';\n"
"id_character_next\n"
" id_character_first .or digit_dec;\n"
"identifier\n"
" id_character_first .emit * .and .loop id_character_next .emit * .and .true .emit '\\0';\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 .true .emit '\\0' .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 '.' .and float_digit_sequence;\n"
"float_fractional_constant_2\n"
" float_digit_sequence .and '.' .and .true .emit '\\0';\n"
"float_fractional_constant_3\n"
" '.' .emit '\\0' .and float_digit_sequence;\n"
"float_optional_exponent_part\n"
" float_exponent_part .or .true .emit '\\0';\n"
"float_digit_sequence\n"
" digit_dec .emit * .and .loop digit_dec .emit * .and .true .emit '\\0';\n"
"float_exponent_part\n"
" float_exponent_part_1 .or float_exponent_part_2;\n"
"float_exponent_part_1\n"
" 'e' .and float_optional_sign .and float_digit_sequence;\n"
"float_exponent_part_2\n"
" 'E' .and float_optional_sign .and float_digit_sequence;\n"
"float_optional_sign\n"
" float_sign .or .true;\n"
"float_sign\n"
" '+' .or '-' .emit '-';\n"
"integer\n"
" integer_hex .or integer_oct .or integer_dec;\n"
"integer_hex\n"
" '0' .and integer_hex_1 .emit 0x10 .and digit_hex .emit * .and .loop digit_hex .emit * .and\n"
" .true .emit '\\0';\n"
"integer_hex_1\n"
" 'x' .or 'X';\n"
"integer_oct\n"
" '0' .emit 8 .emit * .and .loop digit_oct .emit * .and .true .emit '\\0';\n"
"integer_dec\n"
" digit_dec .emit 10 .emit * .and .loop digit_dec .emit * .and .true .emit '\\0';\n"
"boolean\n"
" \"true\" .emit 2 .emit '1' .emit '\\0' .or\n"
" \"false\" .emit 2 .emit '0' .emit '\\0';\n"
"type_name\n"
" identifier;\n"
"field_selection\n"
" identifier;\n"
"floatconstant\n"
" float .emit OP_PUSH_FLOAT;\n"
"intconstant\n"
" integer .emit OP_PUSH_INT;\n"
"boolconstant\n"
" boolean .emit OP_PUSH_BOOL;\n"
"optional_space\n"
" .loop single_space;\n"
"space\n"
" single_space .and .loop single_space;\n"
"single_space\n"
" white_char .or c_style_comment_block .or cpp_style_comment_block;\n"
"white_char\n"
" ' ' .or '\\t' .or new_line .or '\\v' .or '\\f';\n"
"new_line\n"
" cr_lf .or lf_cr .or '\\n' .or '\\r';\n"
"cr_lf\n"
" '\\r' .and '\\n';\n"
"lf_cr\n"
" '\\n' .and '\\r';\n"
"c_style_comment_block\n"
" '/' .and '*' .and c_style_comment_rest;\n"
"c_style_comment_rest\n"
" .loop c_style_comment_char_no_star .and c_style_comment_rest_1;\n"
"c_style_comment_rest_1\n"
" c_style_comment_end .or c_style_comment_rest_2;\n"
"c_style_comment_rest_2\n"
" '*' .and c_style_comment_rest;\n"
"c_style_comment_char_no_star\n"
" '\\x2B'-'\\xFF' .or '\\x01'-'\\x29';\n"
"c_style_comment_end\n"
" '*' .and '/';\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;\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"
"ampersandampersand\n"
" optional_space .and '&' .and '&' .and optional_space;\n"
"barbar\n"
" optional_space .and '|' .and '|' .and optional_space;\n"
"bang\n"
" optional_space .and '!' .and optional_space;\n"
"bangequals\n"
" optional_space .and '!' .and '=' .and optional_space;\n"
"caretcaret\n"
" optional_space .and '^' .and '^' .and optional_space;\n"
"colon\n"
" optional_space .and ':' .and optional_space;\n"
"comma\n"
" optional_space .and ',' .and optional_space;\n"
"dot\n"
" optional_space .and '.' .and optional_space;\n"
"equals\n"
" optional_space .and '=' .and optional_space;\n"
"equalsequals\n"
" optional_space .and '=' .and '=' .and optional_space;\n"
"greater\n"
" optional_space .and '>' .and optional_space;\n"
"greaterequals\n"
" optional_space .and '>' .and '=' .and optional_space;\n"
"lbrace\n"
" optional_space .and '{' .and optional_space;\n"
"lbracket\n"
" optional_space .and '[' .and optional_space;\n"
"less\n"
" optional_space .and '<' .and optional_space;\n"
"lessequals\n"
" optional_space .and '<' .and '=' .and optional_space;\n"
"lparen\n"
" optional_space .and '(' .and optional_space;\n"
"minus\n"
" optional_space .and '-' .and optional_space;\n"
"minusequals\n"
" optional_space .and '-' .and '=' .and optional_space;\n"
"minusminus\n"
" optional_space .and '-' .and '-' .and optional_space;\n"
"plus\n"
" optional_space .and '+' .and optional_space;\n"
"plusequals\n"
" optional_space .and '+' .and '=' .and optional_space;\n"
"plusplus\n"
" optional_space .and '+' .and '+' .and optional_space;\n"
"question\n"
" optional_space .and '?' .and optional_space;\n"
"rbrace\n"
" optional_space .and '}' .and optional_space;\n"
"rbracket\n"
" optional_space .and ']' .and optional_space;\n"
"rparen\n"
" optional_space .and ')' .and optional_space;\n"
"semicolon\n"
" optional_space .and ';' .and optional_space;\n"
"slash\n"
" optional_space .and '/' .and optional_space;\n"
"slashequals\n"
" optional_space .and '/' .and '=' .and optional_space;\n"
"star\n"
" optional_space .and '*' .and optional_space;\n"
"starequals\n"
" optional_space .and '*' .and '=' .and optional_space;\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"
"err_token\n"
" '~' .or '`' .or '!' .or '@' .or '#' .or '$' .or '%' .or '^' .or '&' .or '*' .or '(' .or ')' .or\n"
" '-' .or '+' .or '=' .or '|' .or '\\\\' .or '[' .or ']' .or '{' .or '}' .or ':' .or ';' .or '\"' .or\n"
" '\\'' .or '<' .or ',' .or '>' .or '.' .or '/' .or '?' .or err_identifier;\n"
"err_identifier\n"
" id_character_first .and .loop id_character_next;\n"
""

⌨️ 快捷键说明

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