📄 slang_shader_syn.h
字号:
" \"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;\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"" asm_argument .and .true .emit OP_END .and .loop asm_arguments_1;\n""asm_arguments_1\n"" comma .and asm_argument .and .true .emit OP_END;\n""asm_argument\n"" var_with_field .or\n"" variable_identifier .or\n"" floatconstant;\n""var_with_field\n"" variable_identifier .and dot .and field_selection .emit OP_FIELD;\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"" precision_stmt .emit DEFAULT_PRECISION .or\n"" invariant_stmt .emit INVARIANT_STMT .or\n"" function_definition .emit EXTERNAL_FUNCTION_DEFINITION .or\n"" declaration .emit EXTERNAL_DECLARATION;\n""precision_stmt\n"" \"precision\" .and space .and precision .error INVALID_PRECISION .and space .and prectype .error INVALID_PRECISION_TYPE .and semicolon;\n""precision\n"" \"lowp\" .emit PRECISION_LOW .or\n"" \"mediump\" .emit PRECISION_MEDIUM .or\n"" \"highp\" .emit PRECISION_HIGH;\n""prectype\n"" \"int\" .emit TYPE_SPECIFIER_INT .or\n"" \"float\" .emit TYPE_SPECIFIER_FLOAT .or\n"" \"sampler1D\" .emit TYPE_SPECIFIER_SAMPLER1D .or\n"" \"sampler2D\" .emit TYPE_SPECIFIER_SAMPLER2D .or\n"" \"sampler3D\" .emit TYPE_SPECIFIER_SAMPLER3D .or\n"" \"samplerCube\" .emit TYPE_SPECIFIER_SAMPLERCUBE .or\n"" \"sampler1DShadow\" .emit TYPE_SPECIFIER_SAMPLER1DSHADOW .or\n"" \"sampler2DShadow\" .emit TYPE_SPECIFIER_SAMPLER2DSHADOW .or\n"" \"sampler2DRect\" .emit TYPE_SPECIFIER_SAMPLER2DRECT .or\n"" \"sampler2DRectShadow\" .emit TYPE_SPECIFIER_SAMPLER2DRECTSHADOW;\n""invariant_stmt\n"" \"invariant\" .and space .and identifier .and semicolon;\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 + -