first-asc.y
来自「sswf-1.7.4-src.zip 源码」· Y 代码 · 共 1,725 行 · 第 1/2 页
Y
1,725 行
*/simple_qualified_identifier: IDENTIFIER { } | IDENTIFIER SCOPE IDENTIFIER { } | reserved_namespace SCOPE IDENTIFIER ;expression_qualified_identifier: parenthesis_expression SCOPE IDENTIFIER { } ;qualified_identifier: simple_qualified_identifier { } | expression_qualified_identifier { } ;primary_expression: THIS { } | literal { } | array_literal { } | object_literal { } | list_parenthesis_expression { } | reserved_namespace { } ;literal: NULL_LITERAL { } | UNDEFINED { } | boolean_literal { } | NUMERIC { } | STRING { } ;boolean_literal: TRUE { } | FALSE { } ;parenthesis_expression: '(' assignment_expression ')' { } ;list_parenthesis_expression: '(' expression ')' { } ;parenthesis_expression_with_rest: parenthesis_expression { } | '(' ')' { } | '(' expression_with_rest ')' { } ;expression_with_rest: expression ',' rest_expression { } | rest_expression { } ;rest_expression: ELIPSIS assignment_expression { } ;reserved_namespace: PRIVATE { } | PUBLIC { } ;array_literal: '[' ']' { } | '[' elision ']' { } | '[' element_list ']' { } | '[' element_list elision ']' { } ;element_list: assignment_expression { } | elision assignment_expression { } | element_list elision assignment_expression { } ;elision: ',' { } | elision ',' { } ;object_literal: '{' '}' { } | '{' property_name_and_value_list '}' { } ;property_name_and_value_list: property { } | property_name_and_value_list ',' property { } ;property: property_name ':' assignment_expression { } ;property_name: qualified_identifier { } | STRING { } | NUMERIC { } | parenthesis_expression { } ;super_expression: SUPER { } | SUPER parenthesis_expression { } ;/*function_expression: function_declaration { } ;member_expression: primary_expression { } | function_expression { } | member_expression '[' expression ']' { } | member_expression '.' IDENTIFIER { } | NEW member_expression arguments { } ;new_expression: member_expression { } | NEW new_expression { } ;// NOTE: if call_expression represents a type, the call is a castcall_expression: member_expression arguments { } | call_expression arguments { } | call_expression '[' expression ']' { } | call_expression '.' IDENTIFIER { } ;left_hand_side_expression: new_expression { } | call_expression { } ;postfix_expression: left_hand_side_expression { } | left_hand_side_expression INCREMENT { } | left_hand_side_expression DECREMENT { } ;*/brackets: '[' ']' { } | '[' expression_with_rest ']' { } ;arguments: '(' ')' { } | parenthesis_expression_with_rest { } ;full_new_expression: NEW full_new_subexpression arguments { } ;full_new_subexpression: primary_expression { } | qualified_identifier { } | full_new_expression { } | full_new_subexpression property_operator { } | super_expression property_operator { } ;short_new_subexpression: full_new_subexpression { } | short_new_expression { } ;short_new_expression: NEW short_new_subexpression { } ;attribute_expression: simple_qualified_identifier { } | attribute_expression property_operator { } | attribute_expression arguments { } ;property_operator: '.' qualified_identifier { } | brackets { } ;full_postfix_expression: primary_expression { } | expression_qualified_identifier { } | full_new_expression { } | full_postfix_expression property_operator { } | super_expression property_operator { } | full_postfix_expression arguments { } | postfix_expression INCREMENT { } | postfix_expression DECREMENT { } ;postfix_expression: attribute_expression { } | full_postfix_expression { } | short_new_expression { } ;unary_expression: postfix_expression { } | DELETE unary_expression { } | VOID unary_expression { } | TYPEOF unary_expression { } | INCREMENT unary_expression { } | DECREMENT unary_expression { } | '+' unary_expression { } | '-' unary_expression { } | '~' unary_expression { } | '!' unary_expression { } ;power_expression: unary_expression { } | unary_expression POWER power_expression { } ;multiplicative_expression: power_expression { } | multiplicative_expression '*' power_expression { } | multiplicative_expression '/' power_expression { } | multiplicative_expression '%' unary_expression { } ;additive_expression: multiplicative_expression { } | additive_expression '+' multiplicative_expression { } | additive_expression '-' multiplicative_expression { } ;shift_expression: additive_expression { } | shift_expression SHIFT_LEFT additive_expression { } | shift_expression SHIFT_RIGHT additive_expression { } | shift_expression SHIFT_RIGHT_UNSIGNED additive_expression { } | shift_expression ROTATE_LEFT additive_expression { } | shift_expression ROTATE_RIGHT additive_expression { } ;relational_expression: shift_expression { } | relational_expression '<' shift_expression { } | relational_expression '>' shift_expression { } | relational_expression LESS_EQUAL shift_expression { } | relational_expression GREATER_EQUAL shift_expression { } | relational_expression INSTANCEOF shift_expression { } | relational_expression IN shift_expression { } | relational_expression IS shift_expression { } | relational_expression AS shift_expression { } ;relational_expression_no_in: shift_expression { } | relational_expression_no_in '<' shift_expression { } | relational_expression_no_in '>' shift_expression { } | relational_expression_no_in LESS_EQUAL shift_expression { } | relational_expression_no_in GREATER_EQUAL shift_expression { } | relational_expression_no_in INSTANCEOF shift_expression { } ;equality_expression: relational_expression { } | equality_expression EQUAL relational_expression { } | equality_expression NOT_EQUAL relational_expression { } | equality_expression EXACTLY_EQUAL relational_expression { } | equality_expression EXACTLY_NOT_EQUAL relational_expression { } ;equality_expression_no_in: relational_expression_no_in { } | equality_expression_no_in EQUAL relational_expression_no_in { } | equality_expression_no_in NOT_EQUAL relational_expression_no_in { } | equality_expression_no_in EXACTLY_EQUAL relational_expression_no_in { } | equality_expression_no_in EXACTLY_NOT_EQUAL relational_expression_no_in { } ;bitwise_and_expression: equality_expression { } | bitwise_and_expression '&' equality_expression { } ;bitwise_and_expression_no_in: equality_expression_no_in { } | bitwise_and_expression_no_in '&' equality_expression_no_in { } ;bitwise_xor_expression: bitwise_and_expression { } | bitwise_xor_expression '^' bitwise_and_expression { } ;bitwise_xor_expression_no_in: bitwise_and_expression_no_in { } | bitwise_xor_expression_no_in '^' bitwise_and_expression_no_in { } ;bitwise_or_expression: bitwise_xor_expression { } | bitwise_or_expression '|' bitwise_xor_expression { } ;bitwise_or_expression_no_in: bitwise_xor_expression_no_in { } | bitwise_or_expression_no_in '|' bitwise_xor_expression_no_in { } ;logical_and_expression: bitwise_or_expression { } | logical_and_expression LOGICAL_AND bitwise_or_expression { } ;logical_and_expression_no_in: bitwise_or_expression_no_in { } | logical_and_expression_no_in LOGICAL_AND bitwise_or_expression_no_in { } ;logical_xor_expression: logical_and_expression { } | logical_xor_expression LOGICAL_XOR logical_and_expression { } ;logical_xor_expression_no_in: logical_and_expression_no_in { } | logical_xor_expression_no_in LOGICAL_XOR logical_and_expression_no_in { } ;logical_or_expression: logical_xor_expression { } | logical_or_expression LOGICAL_OR logical_xor_expression { } ;logical_or_expression_no_in: logical_xor_expression_no_in { } | logical_or_expression_no_in LOGICAL_OR logical_xor_expression_no_in { } ;min_max_expression: logical_or_expression { } | min_max_expression MIN logical_or_expression { } | min_max_expression MAX logical_or_expression { } ;min_max_expression_no_in: logical_or_expression_no_in { } | min_max_expression_no_in MIN logical_or_expression_no_in { } | min_max_expression_no_in MAX logical_or_expression_no_in { } ;conditional_expression: min_max_expression { } | min_max_expression '?' assignment_expression ':' assignment_expression { } ;conditional_expression_no_in: min_max_expression_no_in { } | min_max_expression_no_in '?' assignment_expression ':' assignment_expression_no_in { } ;assignment_expression: conditional_expression { } | postfix_expression ASSIGNMENT_OPERATOR assignment_expression { } ;assignment_expression_no_in: conditional_expression_no_in { } | postfix_expression ASSIGNMENT_OPERATOR assignment_expression_no_in { } ;expression: assignment_expression { } | expression ',' assignment_expression { } ;expression_no_in: assignment_expression_no_in { } | expression_no_in ',' assignment_expression_no_in { } ;expression_no_in_opt: /* EMPTY */ { } | expression_no_in { } ;%%void yyerror(const char *msg){ printf("YACC ERROR at line #%d in file \"%s\": %s.\n", yylloc.first_line, lex_filename, msg);}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?