📄 arbprogram_syn.h
字号:
" integer;\n""stateProgramMatNum\n"" integer;\n""programSingleItem\n"" \"program\" .and dot .and programSingleItem_1 .error INVALID_PROGRAM_PROPERTY;\n""programSingleItem_1\n"" progEnvParam .or progLocalParam;\n""programMultipleItem\n"" \"program\" .and dot .and programMultipleItem_1 .error INVALID_PROGRAM_PROPERTY;\n""programMultipleItem_1\n"" progEnvParams .or progLocalParams;\n""progEnvParams\n"" \"env\" .emit PROGRAM_PARAM_ENV .and lbracket .and progEnvParamNums .and rbracket;\n""progEnvParamNums\n"" progEnvParamNums_1 .or progEnvParamNums_2;\n""progEnvParamNums_1\n"" progEnvParamNum .and dotdot_ne .and progEnvParamNum;\n""progEnvParamNums_2\n"" progEnvParamNum .and .true .emit 0x00;\n""progEnvParam\n"" \"env\" .emit PROGRAM_PARAM_ENV .and lbracket .and progEnvParamNum .and rbracket .emit 0x00;\n""progLocalParams\n"" \"local\" .emit PROGRAM_PARAM_LOCAL .and lbracket .and progLocalParamNums .and rbracket;\n""progLocalParamNums\n"" progLocalParamNums_1 .or progLocalParamNums_2;\n""progLocalParamNums_1\n"" progLocalParamNum .and dotdot_ne .and progLocalParamNum;\n""progLocalParamNums_2\n"" progLocalParamNum .and .true .emit 0x00;\n""progLocalParam\n"" \"local\" .emit PROGRAM_PARAM_LOCAL .and lbracket .and progLocalParamNum .and rbracket .emit 0x00;\n""progEnvParamNum\n"" integer;\n""progLocalParamNum\n"" integer;\n""paramConstDecl\n"" paramConstScalarDecl .emit CONSTANT_SCALAR .or paramConstVector .emit CONSTANT_VECTOR;\n""paramConstUse\n"" paramConstScalarUse .emit CONSTANT_SCALAR .or paramConstVector .emit CONSTANT_VECTOR;\n""paramConstScalarDecl\n"" signedFloatConstant;\n""paramConstScalarUse\n"" floatConstant;\n""paramConstVector\n"" paramConstVector_4 .emit 0x04 .or paramConstVector_3 .emit 0x03 .or\n"" paramConstVector_2 .emit 0x02 .or paramConstVector_1 .emit 0x01;\n""paramConstVector_1\n"" lbrace_ne .and signedFloatConstant .and rbrace;\n""paramConstVector_2\n"" lbrace_ne .and signedFloatConstant .and comma_ne .and signedFloatConstant .and rbrace;\n""paramConstVector_3\n"" lbrace_ne .and signedFloatConstant .and comma_ne .and signedFloatConstant .and comma_ne .and\n"" signedFloatConstant .and rbrace;\n""paramConstVector_4\n"" lbrace_ne .and signedFloatConstant .and comma_ne .and signedFloatConstant .and comma_ne .and\n"" signedFloatConstant .and comma_ne .and signedFloatConstant .and rbrace;\n""signedFloatConstant\n"" optionalSign .and floatConstant;\n""floatConstant\n"" float;\n""optionalSign\n"" optional_sign_ne;\n""fp_TEMP_statement\n"" \"TEMP\" .and space .and fp_varNameList .and .true .emit 0x00;\n""vp_TEMP_statement\n"" \"TEMP\" .and space .and vp_varNameList .and .true .emit 0x00;\n""ADDRESS_statement\n"" \"ADDRESS\" .and space .and vp_varNameList .and .true .emit 0x00;\n""fp_varNameList\n"" fp_varNameList_1 .or fp_establishName;\n""vp_varNameList\n"" vp_varNameList_1 .or vp_establishName;\n""fp_varNameList_1\n"" fp_establishName .and comma_ne .and fp_varNameList;\n""vp_varNameList_1\n"" vp_establishName .and comma_ne .and vp_varNameList;\n""fp_OUTPUT_statement\n"" \"OUTPUT\" .and space .and fp_establishName .and equal .and\n"" fp_resultBinding .error RESULT_EXPECTED;\n""vp_OUTPUT_statement\n"" \"OUTPUT\" .and space .and vp_establishName .and equal .and\n"" vp_resultBinding .error RESULT_EXPECTED;\n""fp_resultBinding\n"" \"result\" .and dot .and fp_resultBinding_1 .error INVALID_RESULT_PROPERTY;\n""vp_resultBinding\n"" \"result\" .and dot .and vp_resultBinding_1 .error INVALID_RESULT_PROPERTY;\n""fp_resultBinding_1\n"" fp_resultBinding_2 .emit FRAGMENT_RESULT_COLOR .or\n"" \"depth\" .emit FRAGMENT_RESULT_DEPTH;\n""fp_resultBinding_2\n"" \"color\" .and optOutputColorNum;\n""vp_resultBinding_1\n"" .if (ARB_position_invariant == 0x00) \"position\" .emit VERTEX_RESULT_POSITION .or\n"" resultColBinding .emit VERTEX_RESULT_COLOR .or\n"" \"fogcoord\" .emit VERTEX_RESULT_FOGCOORD .or\n"" \"pointsize\" .emit VERTEX_RESULT_POINTSIZE .or\n"" vp_resultBinding_2 .emit VERTEX_RESULT_TEXCOORD;\n""vp_resultBinding_2\n"" \"texcoord\" .and optTexCoordNum;\n""optOutputColorNum\n"" .if (ARB_draw_buffers != 0x00) optOutputColorNum_1 .or .true .emit 0x00;\n""optOutputColorNum_1\n"" lbracket_ne .and outputColorNum .and rbracket;\n""outputColorNum\n"" integer;\n""resultColBinding\n"" \"color\" .and optFaceType .and optColorType;\n""optFaceType\n"" FaceType .or .true .emit FACE_FRONT;\n""FaceType\n"" dot_ne .and FaceProperty;\n""FaceProperty\n"" \"front\" .emit FACE_FRONT .or \"back\" .emit FACE_BACK;\n""optColorType\n"" ColorType .or .true .emit COLOR_PRIMARY;\n""ColorType\n"" dot_ne .and ColorProperty;\n""ColorProperty\n"" \"primary\" .emit COLOR_PRIMARY .or\n"" .if (secondary_color != 0x00) \"secondary\" .emit COLOR_SECONDARY;\n""fp_ALIAS_statement\n"" \"ALIAS\" .and fp_ALIAS_statement_1 .error IDENTIFIER_EXPECTED .and equal .and fp_establishedName;\n""vp_ALIAS_statement\n"" \"ALIAS\" .and vp_ALIAS_statement_1 .error IDENTIFIER_EXPECTED .and equal .and vp_establishedName;\n""fp_ALIAS_statement_1\n"" space .and fp_establishName;\n""vp_ALIAS_statement_1\n"" space .and vp_establishName;\n""fp_establishName\n"" fp_identifier;\n""vp_establishName\n"" vp_identifier;\n""fp_establishedName\n"" fp_identifier;\n""vp_establishedName\n"" vp_identifier;\n""fp_establishedName_no_error_on_identifier\n"" fp_identifier_ne;\n""vp_establishedName_no_error_on_identifier\n"" vp_identifier_ne;\n""fp_identifier\n"" fp_identifier_ne .error IDENTIFIER_EXPECTED;\n""vp_identifier\n"" vp_identifier_ne .error IDENTIFIER_EXPECTED;\n""fp_identifier_ne\n"" fp_not_reserved_identifier .and identifier_ne;\n""vp_identifier_ne\n"" vp_not_reserved_identifier .and identifier_ne;\n""fp_not_reserved_identifier\n"" fp_not_reserved_identifier_1 .or .true;\n""fp_not_reserved_identifier_1\n"" fp_reserved_identifier .and .false .error RESERVED_KEYWORD;\n""vp_not_reserved_identifier\n"" vp_not_reserved_identifier_1 .or .true;\n""vp_not_reserved_identifier_1\n"" vp_reserved_identifier .and .false .error RESERVED_KEYWORD;\n""fp_reserved_identifier\n"" \"ABS\" .or \"ABS_SAT\" .or \"ADD\" .or \"ADD_SAT\" .or \"ALIAS\" .or \"ATTRIB\" .or \"CMP\" .or \"CMP_SAT\" .or\n"" \"COS\" .or \"COS_SAT\" .or \"DP3\" .or \"DP3_SAT\" .or \"DP4\" .or \"DP4_SAT\" .or \"DPH\" .or \"DPH_SAT\" .or\n"" \"DST\" .or \"DST_SAT\" .or \"END\" .or \"EX2\" .or \"EX2_SAT\" .or \"FLR\" .or \"FLR_SAT\" .or \"FRC\" .or\n"" \"FRC_SAT\" .or \"KIL\" .or \"LG2\" .or \"LG2_SAT\" .or \"LIT\" .or \"LIT_SAT\" .or \"LRP\" .or \"LRP_SAT\" .or\n"" \"MAD\" .or \"MAD_SAT\" .or \"MAX\" .or \"MAX_SAT\" .or \"MIN\" .or \"MIN_SAT\" .or \"MOV\" .or \"MOV_SAT\" .or\n"" \"MUL\" .or \"MUL_SAT\" .or \"OPTION\" .or \"OUTPUT\" .or \"PARAM\" .or \"POW\" .or \"POW_SAT\" .or \"RCP\" .or\n"" \"RCP_SAT\" .or \"RSQ\" .or \"RSQ_SAT\" .or \"SIN\" .or \"SIN_SAT\" .or \"SCS\" .or \"SCS_SAT\" .or \"SGE\" .or\n"" \"SGE_SAT\" .or \"SLT\" .or \"SLT_SAT\" .or \"SUB\" .or \"SUB_SAT\" .or \"SWZ\" .or \"SWZ_SAT\" .or \"TEMP\" .or\n"" \"TEX\" .or \"TEX_SAT\" .or \"TXB\" .or \"TXB_SAT\" .or \"TXP\" .or \"TXP_SAT\" .or \"XPD\" .or \"XPD_SAT\" .or\n"" \"fragment\" .or \"program\" .or \"result\" .or \"state\" .or \"texture\";\n""vp_reserved_identifier\n"" \"ABS\" .or \"ADD\" .or \"ADDRESS\" .or \"ALIAS\" .or \"ARL\" .or \"ATTRIB\" .or \"DP3\" .or \"DP4\" .or\n"" \"DPH\" .or \"DST\" .or \"END\" .or \"EX2\" .or \"EXP\" .or \"FLR\" .or \"FRC\" .or \"LG2\" .or \"LIT\" .or\n"" \"LOG\" .or \"MAD\" .or \"MAX\" .or \"MIN\" .or \"MOV\" .or \"MUL\" .or \"OPTION\" .or \"OUTPUT\" .or\n"" \"PARAM\" .or \"POW\" .or \"RCP\" .or \"RSQ\" .or \"SGE\" .or \"SLT\" .or \"SUB\" .or \"SWZ\" .or \"TEMP\" .or\n"" \"XPD\" .or \"program\" .or \"result\" .or \"state\" .or \"vertex\";\n""integer\n"" integer_ne .error INTEGER_EXPECTED;\n""zero\n"" '0';\n""leading_zeroes\n"" .loop zero;\n""no_digit\n"" no_digit_1 .or .true;\n""no_digit_1\n"" digit10 .and .false .error INTEGER_OUT_OF_RANGE;\n""all_zeroes\n"" all_zeroes_1 .or no_digit_1;\n""all_zeroes_1\n"" '0' .and .loop zero .and no_digit;\n""integer_0_3\n"" integer_0_3_1 .error INTEGER_EXPECTED .and .true .emit 0x00 .emit $;\n""integer_0_3_1\n"" integer_0_3_2 .or all_zeroes .emit '0';\n""integer_0_3_2 \n"" leading_zeroes .and '1'-'3' .emit * .and no_digit;\n""integer_0_63\n"" integer_0_63_1 .error INTEGER_EXPECTED .and .true .emit 0x00 .emit $;\n""integer_0_63_1\n"" integer_0_63_2 .or integer_0_63_3 .or integer_0_63_4 .or integer_0_63_5 .or\n"" all_zeroes .emit '0';\n""integer_0_63_2 \n"" leading_zeroes .and '7'-'9' .emit * .and no_digit;\n""integer_0_63_3 \n"" leading_zeroes .and '1'-'5' .emit * .and '0'-'9' .emit * .and no_digit;\n""integer_0_63_4 \n"" leading_zeroes .and '6' .emit * .and '0'-'3' .emit * .and no_digit;\n""integer_0_63_5 \n"" leading_zeroes .and '1'-'6' .emit * .and no_digit;\n""integer_0_64\n"" integer_0_64_1 .error INTEGER_EXPECTED .and .true .emit 0x00 .emit $;\n""integer_0_64_1\n"" integer_0_64_2 .or integer_0_64_3 .or integer_0_64_4 .or integer_0_64_5 .or\n"" all_zeroes .emit '0';\n""integer_0_64_2 \n"" leading_zeroes .and '7'-'9' .emit * .and no_digit;\n""integer_0_64_3 \n"" leading_zeroes .and '1'-'5' .emit * .and '0'-'9' .emit * .and no_digit;\n""integer_0_64_4 \n"" leading_zeroes .and '6' .emit * .and '0'-'4' .emit * .and no_digit;\n""integer_0_64_5 \n"" leading_zeroes .and '1'-'6' .emit * .and no_digit;\n""optional_space\n"" space .or .true;\n""space_dst\n"" space .error OPERATION_NEEDS_DESTINATION_VARIABLE;\n""space_src\n"" space .error OPERATION_NEEDS_SOURCE_VARIABLE;\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 .loop comment_char .and optional_new_line;\n""comment_char\n"" '\\x0E'-'\\xFF' .or '\\x01'-'\\x09' .or '\\x0B'-'\\x0C';\n""optional_new_line\n"" '\\n' .or crlf .or .true;\n""crlf\n"" '\\r' .and '\\n';\n""semicolon\n"" optional_space .and ';' .error MISSING_SEMICOLON .and optional_space;\n""comma\n"" optional_space .and ',' .error MISSING_COMMA .and optional_space;\n""comma_ne\n"" optional_space .and ',' .and optional_space;\n""lbracket\n"" optional_space .and '[' .error MISSING_LBRACKET .and optional_space;\n""lbracket_ne\n"" optional_space .and '[' .and optional_space;\n""rbracket\n"" optional_space .and ']' .error MISSING_RBRACKET .and optional_space;\n""dot\n"" optional_space .and '.' .error MISSING_DOT .and optional_space;\n""dot_ne\n"" optional_space .and '.' .and optional_space;\n""equal\n"" optional_space .and '=' .error MISSING_EQUAL .and optional_space;\n""lbrace\n"" optional_space .and '{' .error MISSING_LBRACE .and optional_space;\n""lbrace_ne\n"" optional_space .and '{' .and optional_space;\n""rbrace\n"" optional_space .and '}' .error MISSING_RBRACE .and optional_space;\n""dotdot\n"" optional_space .and '.' .and '.' .error MISSING_DOTDOT .and optional_space;\n""dotdot_ne\n"" optional_space .and '.' .and '.' .and optional_space;\n""float\n"" float_1 .or float_2 .or float_legacy;\n""float_1\n"" '.' .emit 0x00 .and integer_ne .error MISSING_FRACTION_OR_EXPONENT .and optional_exponent;\n""float_2\n"" integer_ne .and float_3;\n""float_3\n"" float_4 .or float_5;\n""float_4\n"" '.' .and optional_integer .and optional_exponent;\n""float_5\n"" exponent .emit 0x00;\n""float_legacy\n"" integer_ne .and .true .emit 0x00 .emit 0x00;\n""integer_ne\n"" integer_ne_1 .and .true .emit 0x00 .emit $;\n""integer_ne_1\n"" digit10 .emit * .and .loop digit10 .emit *;\n""optional_integer\n"" integer_ne .or .true .emit 0x00;\n""optional_exponent\n"" exponent .or .true .emit 0x00;\n""exponent\n"" exponent_1 .and optional_sign_ne .and integer_ne .error EXPONENT_VALUE_EXPECTED;\n""exponent_1\n"" 'e' .or 'E';\n""optional_sign_ne\n"" minus_ne .or plus_ne .or .true;\n""plus_ne\n"" optional_space .and '+' .and optional_space;\n""minus_ne\n"" optional_space .and '-' .emit '-' .and optional_space;\n""identifier_ne\n"" first_idchar .emit * .and .loop follow_idchar .emit * .and .true .emit 0x00 .emit $;\n""follow_idchar\n"" first_idchar .or digit10;\n""first_idchar\n"" 'a'-'z' .or 'A'-'Z' .or '_' .or '$';\n""digit10\n"" '0'-'9';\n"".string __string_filter;\n""__string_filter\n"" .loop __identifier_char;\n""__identifier_char\n"" 'a'-'z' .or 'A'-'Z' .or '_' .or '$' .or '0'-'9';\n""e_signature\n"" e_signature_char .and .loop e_signature_char;\n""e_signature_char\n"" '!' .or '.' .or 'A'-'Z' .or 'a'-'z' .or '0'-'9';\n""e_statement\n"" .loop e_statement_not_term;\n""e_statement_not_term\n"" '\\x3C'-'\\xFF' .or '\\x0E'-'\\x3A' .or '\\x01'-'\\x09' .or '\\x0B'-'\\x0C';\n""e_identifier\n"" e_identifier_first .and .loop e_identifier_next;\n""e_identifier_first\n"" 'a'-'z' .or 'A'-'Z' .or '_' .or '$';\n""e_identifier_next\n"" e_identifier_first .or '0'-'9';\n""e_token\n"" e_identifier .or e_token_number .or '[' .or ']' .or '.' .or '{' .or '}' .or '=' .or '+' .or\n"" '-' .or ',' .or ';';\n""e_token_number\n"" e_token_digit .and .loop e_token_digit;\n""e_token_digit\n"" '0'-'9';\n""e_charordigit\n"" 'A'-'Z' .or 'a'-'z' .or '0'-'9';\n"""
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -