📄 slang_shader_syn.h
字号:
" unary_expression .and slashequals .and assignment_expression .and .true .emit OP_DIVASSIGN;\n""assignment_expression_4\n"" unary_expression .and plusequals .and assignment_expression .and .true .emit OP_ADDASSIGN;\n""assignment_expression_5\n"" unary_expression .and minusequals .and assignment_expression .and .true .emit OP_SUBASSIGN;\n""expression\n"" assignment_expression .and .loop expression_1;\n""expression_1\n"" comma .and assignment_expression .and .true .emit OP_SEQUENCE;\n""constant_expression\n"" conditional_expression .and .true .emit OP_END;\n""declaration\n"" declaration_1 .or declaration_2;\n""declaration_1\n"" function_prototype .emit DECLARATION_FUNCTION_PROTOTYPE .and semicolon;\n""declaration_2\n"" init_declarator_list .emit DECLARATION_INIT_DECLARATOR_LIST .and semicolon;\n""function_prototype\n"" function_prototype_1 .or function_prototype_2;\n""function_prototype_1\n"" function_header .and \"void\" .and rparen .error RPAREN_EXPECTED .emit PARAMETER_NONE;\n""function_prototype_2\n"" function_declarator .and rparen .error RPAREN_EXPECTED .emit PARAMETER_NONE;\n""function_declarator\n"" function_header_with_parameters .or function_header;\n""function_header_with_parameters\n"" function_header .and parameter_declaration .and .loop function_header_with_parameters_1;\n""function_header_with_parameters_1\n"" comma .and parameter_declaration;\n""function_header\n"" function_header_nospace .or function_header_space;\n""function_header_space\n"" fully_specified_type_space .and space .and function_decl_identifier .and lparen;\n""function_header_nospace\n"" fully_specified_type_nospace .and function_decl_identifier .and lparen;\n""function_decl_identifier\n"" .if (parsing_builtin != 0) __operator .emit FUNCTION_OPERATOR .or\n"" .if (parsing_builtin != 0) \"__constructor\" .emit FUNCTION_CONSTRUCTOR .or\n"" identifier .emit FUNCTION_ORDINARY;\n""__operator\n"" \"__operator\" .and overriden_operator .error INVALID_OPERATOR_OVERRIDE;\n""overriden_operator\n"" plusplus .emit OPERATOR_INCREMENT .or\n"" plusequals .emit OPERATOR_ADDASSIGN .or\n"" plus .emit OPERATOR_PLUS .or\n"" minusminus .emit OPERATOR_DECREMENT .or\n"" minusequals .emit OPERATOR_SUBASSIGN .or\n"" minus .emit OPERATOR_MINUS .or\n"" bang .emit OPERATOR_NOT .or\n"" starequals .emit OPERATOR_MULASSIGN .or\n"" star .emit OPERATOR_MULTIPLY .or\n"" slashequals .emit OPERATOR_DIVASSIGN .or\n"" slash .emit OPERATOR_DIVIDE .or\n"" lessequals .emit OPERATOR_LESSEQUAL .or\n"" \n"" \n"" less .emit OPERATOR_LESS .or\n"" greaterequals .emit OPERATOR_GREATEREQUAL .or\n"" \n"" \n"" greater .emit OPERATOR_GREATER .or\n"" \n"" \n"" \n"" \n"" \n"" \n"" \n"" \n"" caretcaret .emit OPERATOR_LOGICALXOR ;\n""parameter_declarator\n"" parameter_declarator_nospace .or parameter_declarator_space;\n""parameter_declarator_nospace\n"" type_specifier_nospace .and identifier .and parameter_declarator_1;\n""parameter_declarator_space\n"" type_specifier_space .and space .and identifier .and parameter_declarator_1;\n""parameter_declarator_1\n"" parameter_declarator_2 .emit PARAMETER_ARRAY_PRESENT .or\n"" .true .emit PARAMETER_ARRAY_NOT_PRESENT;\n""parameter_declarator_2\n"" lbracket .and constant_expression .and rbracket;\n""parameter_declaration\n"" parameter_declaration_1 .emit PARAMETER_NEXT;\n""parameter_declaration_1\n"" parameter_declaration_2 .or parameter_declaration_3;\n""parameter_declaration_2\n"" type_qualifier .and space .and parameter_qualifier .and parameter_declaration_4;\n""parameter_declaration_3\n"" parameter_qualifier .emit TYPE_QUALIFIER_NONE .and parameter_declaration_4;\n""parameter_declaration_4\n"" parameter_declarator .or parameter_type_specifier;\n""parameter_qualifier\n"" parameter_qualifier_1 .or .true .emit PARAM_QUALIFIER_IN;\n""parameter_qualifier_1\n"" parameter_qualifier_2 .and space;\n""parameter_qualifier_2\n"" \"in\" .emit PARAM_QUALIFIER_IN .or\n"" \"out\" .emit PARAM_QUALIFIER_OUT .or\n"" \"inout\" .emit PARAM_QUALIFIER_INOUT;\n""parameter_type_specifier\n"" parameter_type_specifier_1 .and .true .emit '\\0' .and parameter_type_specifier_2;\n""parameter_type_specifier_1\n"" type_specifier_nospace .or type_specifier_space;\n""parameter_type_specifier_2\n"" parameter_type_specifier_3 .emit PARAMETER_ARRAY_PRESENT .or\n"" .true .emit PARAMETER_ARRAY_NOT_PRESENT;\n""parameter_type_specifier_3\n"" lbracket .and constant_expression .and rbracket;\n""init_declarator_list\n"" single_declaration .and .loop init_declarator_list_1 .emit DECLARATOR_NEXT .and\n"" .true .emit DECLARATOR_NONE;\n""init_declarator_list_1\n"" comma .and identifier .emit VARIABLE_IDENTIFIER .and init_declarator_list_2;\n""init_declarator_list_2\n"" init_declarator_list_3 .or init_declarator_list_4 .or .true .emit VARIABLE_NONE;\n""init_declarator_list_3\n"" equals .and initializer .emit VARIABLE_INITIALIZER;\n""init_declarator_list_4\n"" lbracket .and init_declarator_list_5 .and rbracket;\n""init_declarator_list_5\n"" constant_expression .emit VARIABLE_ARRAY_EXPLICIT .or .true .emit VARIABLE_ARRAY_UNKNOWN;\n""single_declaration\n"" single_declaration_nospace .or single_declaration_space;\n""single_declaration_space\n"" fully_specified_type_space .and single_declaration_space_1;\n""single_declaration_nospace\n"" fully_specified_type_nospace .and single_declaration_nospace_1;\n""single_declaration_space_1\n"" single_declaration_space_2 .emit VARIABLE_IDENTIFIER .or .true .emit VARIABLE_NONE;\n""single_declaration_nospace_1\n"" single_declaration_nospace_2 .emit VARIABLE_IDENTIFIER .or .true .emit VARIABLE_NONE;\n""single_declaration_space_2\n"" space .and identifier .and single_declaration_3;\n""single_declaration_nospace_2\n"" identifier .and single_declaration_3;\n""single_declaration_3\n"" single_declaration_4 .or single_declaration_5 .or .true .emit VARIABLE_NONE;\n""single_declaration_4\n"" equals .and initializer .emit VARIABLE_INITIALIZER;\n""single_declaration_5\n"" lbracket .and single_declaration_6 .and rbracket;\n""single_declaration_6\n"" constant_expression .emit VARIABLE_ARRAY_EXPLICIT .or .true .emit VARIABLE_ARRAY_UNKNOWN;\n""fully_specified_type_space\n"" fully_specified_type_optqual .and fully_specified_type_optprec .and type_specifier_space;\n""fully_specified_type_nospace\n"" fully_specified_type_optqual .and fully_specified_type_optprec .and type_specifier_nospace;\n""fully_specified_type_optqual\n"" fully_specified_type_qual .or .true .emit TYPE_QUALIFIER_NONE;\n""fully_specified_type_qual\n"" type_qualifier .and space;\n""fully_specified_type_optprec\n"" fully_specified_type_prec .or .true .emit PRECISION_DEFAULT;\n""fully_specified_type_prec\n"" precision .and space;\n""type_qualifier\n"" \"const\" .emit TYPE_QUALIFIER_CONST .or\n"" .if (shader_type == 2) \"attribute\" .emit TYPE_QUALIFIER_ATTRIBUTE .or\n"" \"varying\" .emit TYPE_QUALIFIER_VARYING .or\n"" \"uniform\" .emit TYPE_QUALIFIER_UNIFORM .or\n"" .if (parsing_builtin != 0) \"__fixed_output\" .emit TYPE_QUALIFIER_FIXEDOUTPUT .or\n"" .if (parsing_builtin != 0) \"__fixed_input\" .emit TYPE_QUALIFIER_FIXEDINPUT;\n""type_specifier_space\n"" \"void\" .emit TYPE_SPECIFIER_VOID .or\n"" \"float\" .emit TYPE_SPECIFIER_FLOAT .or\n"" \"int\" .emit TYPE_SPECIFIER_INT .or\n"" \"bool\" .emit TYPE_SPECIFIER_BOOL .or\n"" \"vec2\" .emit TYPE_SPECIFIER_VEC2 .or\n"" \"vec3\" .emit TYPE_SPECIFIER_VEC3 .or\n"" \"vec4\" .emit TYPE_SPECIFIER_VEC4 .or\n"" \"bvec2\" .emit TYPE_SPECIFIER_BVEC2 .or\n"" \"bvec3\" .emit TYPE_SPECIFIER_BVEC3 .or\n"" \"bvec4\" .emit TYPE_SPECIFIER_BVEC4 .or\n"" \"ivec2\" .emit TYPE_SPECIFIER_IVEC2 .or\n"" \"ivec3\" .emit TYPE_SPECIFIER_IVEC3 .or\n"" \"ivec4\" .emit TYPE_SPECIFIER_IVEC4 .or\n"" \"mat2\" .emit TYPE_SPECIFIER_MAT2 .or\n"" \"mat3\" .emit TYPE_SPECIFIER_MAT3 .or\n"" \"mat4\" .emit TYPE_SPECIFIER_MAT4 .or\n"" \"mat2x3\" .emit TYPE_SPECIFIER_MAT23 .or\n"" \"mat3x2\" .emit TYPE_SPECIFIER_MAT32 .or\n"" \"mat2x4\" .emit TYPE_SPECIFIER_MAT24 .or\n"" \"mat4x2\" .emit TYPE_SPECIFIER_MAT42 .or\n"" \"mat3x4\" .emit TYPE_SPECIFIER_MAT34 .or\n"" \"mat4x3\" .emit TYPE_SPECIFIER_MAT43 .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 .or\n"" type_name .emit TYPE_SPECIFIER_TYPENAME;\n""type_specifier_nospace\n"" struct_specifier .emit TYPE_SPECIFIER_STRUCT;\n""struct_specifier\n"" \"struct\" .and struct_specifier_1 .and optional_space .and lbrace .error LBRACE_EXPECTED .and\n"" struct_declaration_list .and rbrace .emit FIELD_NONE;\n""struct_specifier_1\n"" struct_specifier_2 .or .true .emit '\\0';\n""struct_specifier_2\n"" space .and identifier;\n""struct_declaration_list\n"" struct_declaration .and .loop struct_declaration .emit FIELD_NEXT;\n""struct_declaration\n"" struct_declaration_nospace .or struct_declaration_space;\n""struct_declaration_space\n"" type_specifier_space .and space .and struct_declarator_list .and semicolon .emit FIELD_NONE;\n""struct_declaration_nospace\n"" type_specifier_nospace .and struct_declarator_list .and semicolon .emit FIELD_NONE;\n""struct_declarator_list\n"" struct_declarator .and .loop struct_declarator_list_1 .emit FIELD_NEXT;\n""struct_declarator_list_1\n"" comma .and struct_declarator;\n""struct_declarator\n"" identifier .and struct_declarator_1;\n""struct_declarator_1\n"" struct_declarator_2 .emit FIELD_ARRAY .or .true .emit FIELD_NONE;\n""struct_declarator_2\n"" lbracket .and constant_expression .and rbracket;\n""initializer\n"" assignment_expression .and .true .emit OP_END;\n""declaration_statement\n"" declaration;\n""statement\n"" compound_statement .or simple_statement;\n""statement_space\n"" compound_statement .or statement_space_1;\n""statement_space_1\n"" space .and simple_statement;\n""simple_statement\n"" .if (parsing_builtin != 0) __asm_statement .emit OP_ASM .or\n"" selection_statement .or\n"" iteration_statement .or\n"" jump_statement .or\n"" expression_statement .emit OP_EXPRESSION .or\n"" declaration_statement .emit OP_DECLARE;\n""compound_statement\n"" compound_statement_1 .emit OP_BLOCK_BEGIN_NEW_SCOPE .and .true .emit OP_END;\n""compound_statement_1\n"" compound_statement_2 .or compound_statement_3;\n""compound_statement_2\n"" lbrace .and rbrace;\n""compound_statement_3\n"" lbrace .and statement_list .and rbrace;\n""statement_no_new_scope\n"" compound_statement_no_new_scope .or simple_statement;\n""compound_statement_no_new_scope\n"" compound_statement_no_new_scope_1 .emit OP_BLOCK_BEGIN_NO_NEW_SCOPE .and .true .emit OP_END;\n""compound_statement_no_new_scope_1\n"" compound_statement_no_new_scope_2 .or compound_statement_no_new_scope_3;\n""compound_statement_no_new_scope_2\n"" lbrace .and rbrace;\n""compound_statement_no_new_scope_3\n"" lbrace .and statement_list .and rbrace;\n""statement_list\n"" statement .and .loop statement;\n""expression_statement\n"" expression_statement_1 .or expression_statement_2;\n""expression_statement_1\n"" semicolon .emit OP_PUSH_VOID .emit OP_END;\n""expression_statement_2\n"" 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"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -