http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/a185d7ee/compiler/src/main/jburg/org/apache/flex/compiler/internal/as/codegen/CmcRules.jbg ---------------------------------------------------------------------- diff --git a/compiler/src/main/jburg/org/apache/flex/compiler/internal/as/codegen/CmcRules.jbg b/compiler/src/main/jburg/org/apache/flex/compiler/internal/as/codegen/CmcRules.jbg index 18be2dc..de47d4b 100644 --- a/compiler/src/main/jburg/org/apache/flex/compiler/internal/as/codegen/CmcRules.jbg +++ b/compiler/src/main/jburg/org/apache/flex/compiler/internal/as/codegen/CmcRules.jbg @@ -32,49 +32,49 @@ // Prototype reduction logic for functions // is in FunctionRules.jbg; include them with // the patterns for each variation. -JBurg.include "FunctionRules.jbg" -JBurg.include "FunctionRules.jbg" typelessFunction="typelessGetter" typedFunction="typedGetter" -JBurg.include "FunctionRules.jbg" typelessFunction="typelessSetter" typedFunction="typedSetter" +@include "FunctionRules.jbg" +@include "FunctionRules.jbg" typelessFunction="typelessGetter" typedFunction="typedGetter" +@include "FunctionRules.jbg" typelessFunction="typelessSetter" typedFunction="typedSetter" // anonymous function closure expression = Pattern anonymousFunction: 1 -Prologue reducer.prologue_anonymousFunction(p) -JBurg.Reduction reducer.reduce_anonymousFunction(__p, function_body); +@Prologue reducer.prologue_anonymousFunction(p) +@Reduction reducer.reduce_anonymousFunction(__p, function_body); // typeless named function closure. expression = Pattern typelessFunctionObject: 1 -Prologue reducer.prologue_functionObject(p) -JBurg.Reduction reducer.reduce_functionObject(__p, function_name, plist, null, block); +@Prologue reducer.prologue_functionObject(p) +@Reduction reducer.reduce_functionObject(__p, function_name, plist, null, block); // named function closure with a return type. expression = Pattern typedFunctionObject: 1 -Prologue reducer.prologue_functionObject(p) -JBurg.Reduction reducer.reduce_functionObject(__p, function_name, plist, return_type, block); +@Prologue reducer.prologue_functionObject(p) +@Reduction reducer.reduce_functionObject(__p, function_name, plist, return_type, block); // A typeless nested function. -statement = Pattern typelessFunction : 0 -Prologue reducer.prologue_typelessFunction_to_statement(p) -JBurg.Reduction reducer.reduce_typelessFunction(__p, plist, block); +statement = Pattern typelessFunction: 0 +@Prologue reducer.prologue_typelessFunction_to_statement(p) +@Reduction reducer.reduce_typelessFunction(__p, plist, block); // A nested function with a return type. -statement = Pattern typedFunction : 0 -Prologue reducer.prologue_typedFunction_to_statement(p) -JBurg.Reduction reducer.reduce_typedFunction_to_statement(__p, plist, return_type, block); +statement = Pattern typedFunction: 0 +@Prologue reducer.prologue_typedFunction_to_statement(p) +@Reduction reducer.reduce_typedFunction_to_statement(__p, plist, return_type, block); /* * A parameterList with parameters. */ -parameterList = Pattern plist : 0 -JBurg.Reduction reducer.reduce_plist(__p, pdecl); +parameterList = Pattern plist: 0 +@Reduction reducer.reduce_plist(__p, pdecl); parameter = Pattern requiredParameter: 0 -JBurg.Reduction reducer.reduce_requiredParameter(__p, param_name, param_type); +@Reduction reducer.reduce_requiredParameter(__p, param_name, param_type); parameter = Pattern optionalParameter: 0 -JBurg.Reduction reducer.reduce_optionalParameter(__p, param_name, param_type, default_value); +@Reduction reducer.reduce_optionalParameter(__p, param_name, param_type, default_value); -parameter = Pattern restParameter : 0 -JBurg.Reduction reducer.reduce_restParameter (__p, param_name, param_type); +parameter = Pattern restParameter: 0 +@Reduction reducer.reduce_restParameter (__p, param_name, param_type); /* * ****************** @@ -86,101 +86,101 @@ JBurg.Reduction reducer.reduce_restParameter (__p, param_name, param_type); * Control-flow statements. */ statement = Pattern whileStmt: 0 -Prologue reducer.prologue_whileStmt(p) -JBurg.Reduction reducer.reduce_whileStmt(__p, cond, body); +@Prologue reducer.prologue_whileStmt(p) +@Reduction reducer.reduce_whileStmt(__p, cond, body); statement = Pattern doStmt: 0 -Prologue reducer.prologue_doStmt(p) -JBurg.Reduction reducer.reduce_doStmt(__p, body, cond); +@Prologue reducer.prologue_doStmt(p) +@Reduction reducer.reduce_doStmt(__p, body, cond); statement = Pattern countedForStmt: 2 -Prologue reducer.prologue_countedForStmt(p) -JBurg.Reduction reducer.reduce_countedForStmt(__p, init, test_insns, incr, body); +@Prologue reducer.prologue_countedForStmt(p) +@Reduction reducer.reduce_countedForStmt(__p, init, test_insns, incr, body); statement = Pattern forInStmt: 10 -Prologue reducer.prologue_forInStmt(p) -JBurg.Reduction reducer.reduce_forKeyValueStmt(__p, it, base, body, OP_nextname); +@Prologue reducer.prologue_forInStmt(p) +@Reduction reducer.reduce_forKeyValueStmt(__p, it, base, body, OP_nextname); statement = Pattern forInArrayStmt: 10 -Prologue reducer.prologue_forInStmt(p) -JBurg.Reduction reducer.reduce_forKeyValueArrayStmt(__p, stem, index, base, body, OP_nextname, false); +@Prologue reducer.prologue_forInStmt(p) +@Reduction reducer.reduce_forKeyValueArrayStmt(__p, stem, index, base, body, OP_nextname, false); statement = Pattern forInMemberStmt: 10 -Prologue reducer.prologue_forInStmt(p) -JBurg.Reduction reducer.reduce_forKeyValueMemberStmt(__p, stem, member, base, body, OP_nextname, false); +@Prologue reducer.prologue_forInStmt(p) +@Reduction reducer.reduce_forKeyValueMemberStmt(__p, stem, member, base, body, OP_nextname, false); statement = Pattern forInDescendantStmt: 10 -Prologue reducer.prologue_forInStmt(p) -JBurg.Reduction reducer.reduce_forKeyValueMemberStmt(__p, stem, descendants, base, body, OP_nextname, false); +@Prologue reducer.prologue_forInStmt(p) +@Reduction reducer.reduce_forKeyValueMemberStmt(__p, stem, descendants, base, body, OP_nextname, false); statement = Pattern forInSuperStmt: 10 -Prologue reducer.prologue_forInStmt(p) -JBurg.Reduction reducer.reduce_forKeyValueMemberStmt(__p, null, member, base, body, OP_nextname, true); +@Prologue reducer.prologue_forInStmt(p) +@Reduction reducer.reduce_forKeyValueMemberStmt(__p, null, member, base, body, OP_nextname, true); statement = Pattern forInSuperBracketStmt: 10 -Prologue reducer.prologue_forInStmt(p) -JBurg.Reduction reducer.reduce_forKeyValueArrayStmt(__p, null, index, base, body, OP_nextname, true); +@Prologue reducer.prologue_forInStmt(p) +@Reduction reducer.reduce_forKeyValueArrayStmt(__p, null, index, base, body, OP_nextname, true); statement = Pattern forVarDeclInStmt: 10 -Prologue reducer.prologue_forInStmt(p) -JBurg.Reduction reducer.reduce_forVarDeclInStmt(__p, single_decl, base, body, OP_nextname); +@Prologue reducer.prologue_forInStmt(p) +@Reduction reducer.reduce_forVarDeclInStmt(__p, single_decl, base, body, OP_nextname); statement = Pattern forEachVarDeclInStmt: 10 -Prologue reducer.prologue_forInStmt(p) -JBurg.Reduction reducer.reduce_forVarDeclInStmt(__p, single_decl, base, body, OP_nextvalue); +@Prologue reducer.prologue_forInStmt(p) +@Reduction reducer.reduce_forVarDeclInStmt(__p, single_decl, base, body, OP_nextvalue); statement = Pattern forEachStmt: 10 -Prologue reducer.prologue_forEachStmt(p) -JBurg.Reduction reducer.reduce_forKeyValueStmt(__p, it, base, body, OP_nextvalue); +@Prologue reducer.prologue_forEachStmt(p) +@Reduction reducer.reduce_forKeyValueStmt(__p, it, base, body, OP_nextvalue); statement = Pattern forEachArrayStmt: 10 -Prologue reducer.prologue_forEachStmt(p) -JBurg.Reduction reducer.reduce_forKeyValueArrayStmt(__p, stem, index, base, body, OP_nextvalue, false); +@Prologue reducer.prologue_forEachStmt(p) +@Reduction reducer.reduce_forKeyValueArrayStmt(__p, stem, index, base, body, OP_nextvalue, false); statement = Pattern forEachMemberStmt: 10 -Prologue reducer.prologue_forEachStmt(p) -JBurg.Reduction reducer.reduce_forKeyValueMemberStmt(__p, stem, member, base, body, OP_nextvalue, false); +@Prologue reducer.prologue_forEachStmt(p) +@Reduction reducer.reduce_forKeyValueMemberStmt(__p, stem, member, base, body, OP_nextvalue, false); statement = Pattern forEachInDescendantStmt: 10 -Prologue reducer.prologue_forInStmt(p) -JBurg.Reduction reducer.reduce_forKeyValueMemberStmt(__p, stem, descendants, base, body, OP_nextvalue, false); +@Prologue reducer.prologue_forInStmt(p) +@Reduction reducer.reduce_forKeyValueMemberStmt(__p, stem, descendants, base, body, OP_nextvalue, false); statement = Pattern forEachSuperStmt: 10 -Prologue reducer.prologue_forEachStmt(p) -JBurg.Reduction reducer.reduce_forKeyValueMemberStmt(__p, null, member, base, body, OP_nextvalue, true); +@Prologue reducer.prologue_forEachStmt(p) +@Reduction reducer.reduce_forKeyValueMemberStmt(__p, null, member, base, body, OP_nextvalue, true); statement = Pattern forEachSuperBracketStmt: 10 -Prologue reducer.prologue_forEachStmt(p) -JBurg.Reduction reducer.reduce_forKeyValueArrayStmt(__p, null, index, base, body, OP_nextvalue, true); +@Prologue reducer.prologue_forEachStmt(p) +@Reduction reducer.reduce_forKeyValueArrayStmt(__p, null, index, base, body, OP_nextvalue, true); -statement = Pattern ifElseIf : 0 -JBurg.Reduction reducer.reduce_ifElseIf (__p, test, then, if_elseif); +statement = Pattern ifElseIf: 0 +@Reduction reducer.reduce_ifElseIf (__p, test, then, if_elseif); conditionalElements = Pattern lastElse: 0 -JBurg.Reduction reducer.reduce_lastElse(__p, else_clause); +@Reduction reducer.reduce_lastElse(__p, else_clause); /* * General form of switch statement: expand into if/elseif. */ statement = Pattern switchStmt: 0 -Prologue reducer.prologue_switchStmt(p) -JBurg.Reduction reducer.reduce_switchStmt(__p, switch_expr, cases); +@Prologue reducer.prologue_switchStmt(p) +@Reduction reducer.reduce_switchStmt(__p, switch_expr, cases); conditionalElements = Pattern switchCase: 0 -JBurg.Reduction reducer.reduce_conditionalFragment(__p, case_expr, case_actions); +@Reduction reducer.reduce_conditionalFragment(__p, case_expr, case_actions); conditionalElements = Pattern constantSwitchCase: 0 -JBurg.Reduction reducer.reduce_constantConditionalFragment(__p, case_const_value, case_actions); +@Reduction reducer.reduce_constantConditionalFragment(__p, case_const_value, case_actions); conditionalElements = Pattern switchDefault: 0 -JBurg.Reduction reducer.reduce_conditionalFragment(__p, null, case_actions); +@Reduction reducer.reduce_conditionalFragment(__p, null, case_actions); statement = Pattern returnVoidSideEffect: 1 -JBurg.Reduction reducer.reduce_returnVoidSideEffect(__p, expr); +@Reduction reducer.reduce_returnVoidSideEffect(__p, expr); statement = Pattern returnValue: 2 -JBurg.Reduction reducer.reduce_returnValue(__p, value); +@Reduction reducer.reduce_returnValue(__p, value); // returnVoidValue's cost is inflated to cause // the code generator to prefer returnValue @@ -189,29 +189,29 @@ JBurg.Reduction reducer.reduce_returnValue(__p, value); // than the corresponding reduction to expr, // so the CG thinks returning a void value // is a good choice in isolation. -statement = Pattern returnVoidValue : 2000 -JBurg.Reduction reducer.reduce_returnVoidValue (__p, no_value); +statement = Pattern returnVoidValue: 2000 +@Reduction reducer.reduce_returnVoidValue (__p, no_value); statement = Pattern returnVoid: 1 -JBurg.Reduction reducer.reduce_returnVoid(__p); +@Reduction reducer.reduce_returnVoid(__p); statement = Pattern returnNil: 1 -JBurg.Reduction reducer.reduce_returnVoid(__p); +@Reduction reducer.reduce_returnVoid(__p); statement = Pattern breakStmt: 1 -JBurg.Reduction reducer.reduce_breakStmt(__p); +@Reduction reducer.reduce_breakStmt(__p); statement = Pattern labeledBreakStmt: 0 -JBurg.Reduction reducer.reduce_labeledBreakStmt(__p); +@Reduction reducer.reduce_labeledBreakStmt(__p); statement = Pattern continueStmt: 1 -JBurg.Reduction reducer.reduce_continueStmt(__p); +@Reduction reducer.reduce_continueStmt(__p); statement = Pattern labeledContinueStmt: 0 -JBurg.Reduction reducer.reduce_labeledContinueStmt(__p); +@Reduction reducer.reduce_labeledContinueStmt(__p); statement = Pattern gotoStmt: 1 -JBurg.Reduction reducer.reduce_gotoStmt(__p); +@Reduction reducer.reduce_gotoStmt(__p); // CodeModel doesn't have an ExpressionStatement node, // so accept a bare expression as a statement. @@ -221,43 +221,43 @@ statement = void_expression; * A block of statements. */ statement = Pattern blockStmt: 0 -Prologue reducer.prologue_blockStmt(p) -JBurg.Reduction reducer.reduce_blockStmt_to_statement(__p, stmts); +@Prologue reducer.prologue_blockStmt(p) +@Reduction reducer.reduce_blockStmt_to_statement(__p, stmts); statement = Pattern configBlockStmt: 0 -Prologue reducer.prologue_blockStmt(p) -JBurg.Reduction reducer.reduce_blockStmt_to_statement(__p, stmts); +@Prologue reducer.prologue_blockStmt(p) +@Reduction reducer.reduce_blockStmt_to_statement(__p, stmts); /* * ******************** * ** Declarations ** * ******************** */ -var_decl = Pattern typedVariableDecl : 0 -JBurg.Reduction reducer.reduce_typedVariableDecl(__p, var_name, var_type, chained_decls); +var_decl = Pattern typedVariableDecl: 0 +@Reduction reducer.reduce_typedVariableDecl(__p, var_name, var_type, chained_decls); -var_decl = Pattern typedVariableDeclWithInitializer : 0 -JBurg.Reduction reducer.reduce_typedVariableDeclWithInitializer(__p, var_name, var_type, var_initializer, chained_decls); +var_decl = Pattern typedVariableDeclWithInitializer: 0 +@Reduction reducer.reduce_typedVariableDeclWithInitializer(__p, var_name, var_type, var_initializer, chained_decls); -var_decl = Pattern typedVariableDeclWithConstantInitializer : 0 -JBurg.Reduction reducer.reduce_typedVariableDeclWithConstantInitializer(__p, var_name, var_type, constant_var_initializer, chained_decls); +var_decl = Pattern typedVariableDeclWithConstantInitializer: 0 +@Reduction reducer.reduce_typedVariableDeclWithConstantInitializer(__p, var_name, var_type, constant_var_initializer, chained_decls); -var_decl = Pattern typedBindableVariableDecl : 0 -JBurg.Reduction reducer.reduce_typedBindableVariableDecl(__p, var_name, var_type, chained_decls); +var_decl = Pattern typedBindableVariableDecl: 0 +@Reduction reducer.reduce_typedBindableVariableDecl(__p, var_name, var_type, chained_decls); -var_decl = Pattern typedBindableVariableDeclWithInitializer : 0 -JBurg.Reduction reducer.reduce_typedBindableVariableDeclWithInitializer(__p, var_name, var_type, var_initializer, chained_decls); +var_decl = Pattern typedBindableVariableDeclWithInitializer: 0 +@Reduction reducer.reduce_typedBindableVariableDeclWithInitializer(__p, var_name, var_type, var_initializer, chained_decls); statement = var_decl; -statement = Pattern namespaceDeclaration : 0 -JBurg.Reduction reducer.reduce_namespaceDeclaration (__p, ns_name); +statement = Pattern namespaceDeclaration: 0 +@Reduction reducer.reduce_namespaceDeclaration (__p, ns_name); -statement = Pattern namespaceDeclarationConstantInitializer : 0 -JBurg.Reduction reducer.reduce_namespaceDeclarationConstantInitializer (__p, ns_name, uri); +statement = Pattern namespaceDeclarationConstantInitializer: 0 +@Reduction reducer.reduce_namespaceDeclarationConstantInitializer (__p, ns_name, uri); -statement = Pattern namespaceDeclarationInitializer : 0 -JBurg.Reduction reducer.reduce_namespaceDeclarationInitializer (__p, ns_name, second_ns); +statement = Pattern namespaceDeclarationInitializer: 0 +@Reduction reducer.reduce_namespaceDeclarationInitializer (__p, ns_name, second_ns); /* * ****************** @@ -266,40 +266,40 @@ JBurg.Reduction reducer.reduce_namespaceDeclarationInitializer (__p, ns_name, se */ statement = Pattern throwStmt: 1 -JBurg.Reduction reducer.reduce_throwStmt(__p, tossable); +@Reduction reducer.reduce_throwStmt(__p, tossable); statement = Pattern tryCatchStmt: 0 -Prologue reducer.prologue_tryCatchStmt(p) -JBurg.Reduction reducer.reduce_tryCatchStmt(__p, try_stmt, catch_blocks); +@Prologue reducer.prologue_tryCatchStmt(p) +@Reduction reducer.reduce_tryCatchStmt(__p, try_stmt, catch_blocks); statement = Pattern tryFinallyStmt: 0 -Prologue reducer.prologue_tryFinallyStmt(p) -JBurg.Reduction reducer.reduce_tryFinallyStmt(__p, try_stmt, finally_stmt); +@Prologue reducer.prologue_tryFinallyStmt(p) +@Reduction reducer.reduce_tryFinallyStmt(__p, try_stmt, finally_stmt); statement = Pattern tryCatchFinallyStmt: 0 -Prologue reducer.prologue_tryCatchFinallyStmt(p) -JBurg.Reduction reducer.reduce_tryCatchFinallyStmt(__p, try_stmt, finally_stmt, catch_blocks); +@Prologue reducer.prologue_tryCatchFinallyStmt(p) +@Reduction reducer.reduce_tryCatchFinallyStmt(__p, try_stmt, finally_stmt, catch_blocks); -catch_block = Pattern catchBlockTyped : 0 -Prologue reducer.prologue_catchBlock(p) -JBurg.Reduction reducer.reduce_catchBlockTyped (__p, var_name, exception, action); +catch_block = Pattern catchBlockTyped: 0 +@Prologue reducer.prologue_catchBlock(p) +@Reduction reducer.reduce_catchBlockTyped (__p, var_name, exception, action); -catch_block = Pattern catchBlockUntyped : 0 -Prologue reducer.prologue_catchBlock(p) -JBurg.Reduction reducer.reduce_catchBlockUntyped (__p, var_name, action); +catch_block = Pattern catchBlockUntyped: 0 +@Prologue reducer.prologue_catchBlock(p) +@Reduction reducer.reduce_catchBlockUntyped (__p, var_name, action); finally_clause = Pattern blockStmt: 0 -Prologue reducer.prologue_blockStmt_to_finally_clause(p) -JBurg.Reduction reducer.reduce_blockStmt_to_finally_clause(__p, stmts); +@Prologue reducer.prologue_blockStmt_to_finally_clause(p) +@Reduction reducer.reduce_blockStmt_to_finally_clause(__p, stmts); statement = Pattern labeledStmt: 0 -Prologue reducer.prologue_labeledStmt(p) -JBurg.Reduction reducer.reduce_labeledStmt(__p, label, substatement); +@Prologue reducer.prologue_labeledStmt(p) +@Reduction reducer.reduce_labeledStmt(__p, label, substatement); // with statement. statement = Pattern withStmt: 0 -Prologue reducer.prologue_withStmt(p) -JBurg.Reduction reducer.reduce_withStmt(__p, new_scope, body); +@Prologue reducer.prologue_withStmt(p) +@Reduction reducer.reduce_withStmt(__p, new_scope, body); /* * ******************* @@ -307,103 +307,103 @@ JBurg.Reduction reducer.reduce_withStmt(__p, new_scope, body); * ******************* */ void_expression = expression: 1 -JBurg.Reduction reducer.transform_expression_to_void_expression(__p, expression); +@Reduction reducer.transform_expression_to_void_expression(__p, expression); /* * Assignment to a simple name. */ void_expression = Pattern assignToNameExpr: 1 -JBurg.Reduction reducer.reduce_assignToNameExpr_to_void_expression(__p, lval, r); +@Reduction reducer.reduce_assignToNameExpr_to_void_expression(__p, lval, r); expression = Pattern assignToNameExpr: 2 -JBurg.Reduction reducer.reduce_assignToNameExpr_to_expression(__p, lval,r); +@Reduction reducer.reduce_assignToNameExpr_to_expression(__p, lval,r); /* * Assignment to a more general lvalue. */ -void_expression = Pattern assignToMemberExpr : 10 -JBurg.Reduction reducer.reduce_assignToMemberExpr_to_void_expression(__p, stem, member, r); +void_expression = Pattern assignToMemberExpr: 10 +@Reduction reducer.reduce_assignToMemberExpr_to_void_expression(__p, stem, member, r); -expression = Pattern assignToMemberExpr : 10 -JBurg.Reduction reducer.reduce_assignToMemberExpr_to_expression(__p, stem, member, r); +expression = Pattern assignToMemberExpr: 10 +@Reduction reducer.reduce_assignToMemberExpr_to_expression(__p, stem, member, r); /* * Assignment to a[i] type lvalue. */ void_expression = Pattern assignToBracketExpr: 1 -JBurg.Reduction reducer.reduce_assignToBracketExpr_to_void_expression(__p, stem, index, r, false); +@Reduction reducer.reduce_assignToBracketExpr_to_void_expression(__p, stem, index, r, false); expression = Pattern assignToBracketExpr: 1 -JBurg.Reduction reducer.reduce_assignToBracketExpr_to_expression(__p, stem, index, r, false); +@Reduction reducer.reduce_assignToBracketExpr_to_expression(__p, stem, index, r, false); void_expression = Pattern assignToSuperBracketExpr: 1 -JBurg.Reduction reducer.reduce_assignToBracketExpr_to_void_expression(__p, null, index, r, true); +@Reduction reducer.reduce_assignToBracketExpr_to_void_expression(__p, null, index, r, true); expression = Pattern assignToSuperBracketExpr: 1 -JBurg.Reduction reducer.reduce_assignToBracketExpr_to_expression(__p, null, index, r, true); +@Reduction reducer.reduce_assignToBracketExpr_to_expression(__p, null, index, r, true); /* * Assignment to qualified names and attributes. */ -void_expression = Pattern assignToQualifiedMemberExpr : 1 -JBurg.Reduction reducer.reduce_assignToQualifiedMemberExpr(__p, stem, qualifier, member, r, DISCARD_VALUE); +void_expression = Pattern assignToQualifiedMemberExpr: 1 +@Reduction reducer.reduce_assignToQualifiedMemberExpr(__p, stem, qualifier, member, r, DISCARD_VALUE); -expression = Pattern assignToQualifiedMemberExpr : 1 -JBurg.Reduction reducer.reduce_assignToQualifiedMemberExpr(__p, stem, qualifier, member, r, NEED_VALUE); +expression = Pattern assignToQualifiedMemberExpr: 1 +@Reduction reducer.reduce_assignToQualifiedMemberExpr(__p, stem, qualifier, member, r, NEED_VALUE); -void_expression = Pattern assignToQualifiedRuntimeMemberExpr : 1 -JBurg.Reduction reducer.reduce_assignToQualifiedRuntimeMemberExpr(__p, stem, qualifier, member, r, DISCARD_VALUE); +void_expression = Pattern assignToQualifiedRuntimeMemberExpr: 1 +@Reduction reducer.reduce_assignToQualifiedRuntimeMemberExpr(__p, stem, qualifier, member, r, DISCARD_VALUE); -expression = Pattern assignToQualifiedRuntimeMemberExpr : 1 -JBurg.Reduction reducer.reduce_assignToQualifiedRuntimeMemberExpr(__p, stem, qualifier, member, r, NEED_VALUE); +expression = Pattern assignToQualifiedRuntimeMemberExpr: 1 +@Reduction reducer.reduce_assignToQualifiedRuntimeMemberExpr(__p, stem, qualifier, member, r, NEED_VALUE); -void_expression = Pattern assignToQualifiedAttributeExpr : 1 -JBurg.Reduction reducer.reduce_assignToQualifiedAttributeExpr(__p, stem, qualifier, attribute, r,DISCARD_VALUE); +void_expression = Pattern assignToQualifiedAttributeExpr: 1 +@Reduction reducer.reduce_assignToQualifiedAttributeExpr(__p, stem, qualifier, attribute, r,DISCARD_VALUE); -expression = Pattern assignToQualifiedAttributeExpr : 1 -JBurg.Reduction reducer.reduce_assignToQualifiedAttributeExpr(__p, stem, qualifier, attribute, r, NEED_VALUE); +expression = Pattern assignToQualifiedAttributeExpr: 1 +@Reduction reducer.reduce_assignToQualifiedAttributeExpr(__p, stem, qualifier, attribute, r, NEED_VALUE); -void_expression = Pattern assignToQualifiedRuntimeAttributeExpr : 1 -JBurg.Reduction reducer.reduce_assignToQualifiedRuntimeAttributeExpr(__p, stem, qualifier, attribute, r, DISCARD_VALUE); +void_expression = Pattern assignToQualifiedRuntimeAttributeExpr: 1 +@Reduction reducer.reduce_assignToQualifiedRuntimeAttributeExpr(__p, stem, qualifier, attribute, r, DISCARD_VALUE); -void_expression = Pattern assignToQualifiedRuntimeAttributeExpr : 1 -JBurg.Reduction reducer.reduce_assignToQualifiedRuntimeAttributeExpr(__p, stem, qualifier, attribute, r, NEED_VALUE); +void_expression = Pattern assignToQualifiedRuntimeAttributeExpr: 1 +@Reduction reducer.reduce_assignToQualifiedRuntimeAttributeExpr(__p, stem, qualifier, attribute, r, NEED_VALUE); -void_expression = Pattern assignToUnqualifiedRuntimeAttributeExpr : 1 -JBurg.Reduction reducer.reduce_assignToUnqualifiedRuntimeAttributeExpr(__p, stem, rt_attr_name, r, DISCARD_VALUE); +void_expression = Pattern assignToUnqualifiedRuntimeAttributeExpr: 1 +@Reduction reducer.reduce_assignToUnqualifiedRuntimeAttributeExpr(__p, stem, rt_attr_name, r, DISCARD_VALUE); -expression = Pattern assignToUnqualifiedRuntimeAttributeExpr : 1 -JBurg.Reduction reducer.reduce_assignToUnqualifiedRuntimeAttributeExpr(__p, stem, rt_attr_name, r, NEED_VALUE); +expression = Pattern assignToUnqualifiedRuntimeAttributeExpr: 1 +@Reduction reducer.reduce_assignToUnqualifiedRuntimeAttributeExpr(__p, stem, rt_attr_name, r, NEED_VALUE); // TODO: This is more than a smidge whacky but it's what ASC does. // Research and pursue with PM. -void_expression = Pattern assignToUnqualifiedRuntimeDescendantsAttributeExpr : 1 -JBurg.Reduction reducer.reduce_assignToUnqualifiedRuntimeAttributeExpr(__p, stem, rt_attr_name, r, DISCARD_VALUE); +void_expression = Pattern assignToUnqualifiedRuntimeDescendantsAttributeExpr: 1 +@Reduction reducer.reduce_assignToUnqualifiedRuntimeAttributeExpr(__p, stem, rt_attr_name, r, DISCARD_VALUE); -expression = Pattern assignToUnqualifiedRuntimeDescendantsAttributeExpr : 1 -JBurg.Reduction reducer.reduce_assignToUnqualifiedRuntimeAttributeExpr(__p, stem, rt_attr_name, r, NEED_VALUE); +expression = Pattern assignToUnqualifiedRuntimeDescendantsAttributeExpr: 1 +@Reduction reducer.reduce_assignToUnqualifiedRuntimeAttributeExpr(__p, stem, rt_attr_name, r, NEED_VALUE); /* * Assignment to descendants. */ -void_expression = Pattern assignToDescendantsExpr : 1 -JBurg.Reduction reducer.reduce_assignToDescendantsExpr(__p, stem, member, r, DISCARD_VALUE); +void_expression = Pattern assignToDescendantsExpr: 1 +@Reduction reducer.reduce_assignToDescendantsExpr(__p, stem, member, r, DISCARD_VALUE); -expression = Pattern assignToDescendantsExpr : 1 -JBurg.Reduction reducer.reduce_assignToDescendantsExpr(__p, stem, member, r, NEED_VALUE); +expression = Pattern assignToDescendantsExpr: 1 +@Reduction reducer.reduce_assignToDescendantsExpr(__p, stem, member, r, NEED_VALUE); /* * Error trap for diagnosing parser/CG mismatches. * The cost is unfeasibly high for a normal reduction, * so this will only be chosen if no other reduction works. */ -expression = Op_AssignId(expression non_lvalue, expression rvalue ) : ERROR_TRAP -JBurg.Reduction reducer.error_reduce_Op_AssignId(__p, non_lvalue, rvalue); +expression = Op_AssignId(expression non_lvalue, expression rvalue ): ERROR_TRAP +@Reduction reducer.error_reduce_Op_AssignId(__p, non_lvalue, rvalue); /* * Compound assignment. */ -JBurg.include "CompoundAssignmentRules.jbg" \ +@include "CompoundAssignmentRules.jbg" \ opcode="OP_add" \ compoundAssignToName="assignPlusToNameExpr" \ compoundAssignToMember="assignPlusToMemberExpr" \ @@ -411,7 +411,7 @@ JBurg.include "CompoundAssignmentRules.jbg" \ compoundAssignToDescendants="assignPlusToDescendantsExpr" \ compoundAssignToRuntimeName="assignPlusToRuntimeNameExpr" -JBurg.include "CompoundAssignmentRules.jbg" \ +@include "CompoundAssignmentRules.jbg" \ opcode="OP_subtract" \ compoundAssignToName="assignMinusToNameExpr" \ compoundAssignToMember="assignMinusToMemberExpr" \ @@ -419,7 +419,7 @@ JBurg.include "CompoundAssignmentRules.jbg" \ compoundAssignToDescendants="assignMinusToDescendantsExpr" \ compoundAssignToRuntimeName="assignMinusToRuntimeNameExpr" -JBurg.include "CompoundAssignmentRules.jbg" \ +@include "CompoundAssignmentRules.jbg" \ opcode="OP_divide" \ compoundAssignToName="assignDivideToNameExpr" \ compoundAssignToMember="assignDivideToMemberExpr" \ @@ -427,7 +427,7 @@ JBurg.include "CompoundAssignmentRules.jbg" \ compoundAssignToDescendants="assignDivideToDescendantsExpr" \ compoundAssignToRuntimeName="assignDivideToRuntimeNameExpr" -JBurg.include "CompoundAssignmentRules.jbg" \ +@include "CompoundAssignmentRules.jbg" \ opcode="OP_multiply" \ compoundAssignToName="assignMultiplyToNameExpr" \ compoundAssignToMember="assignMultiplyToMemberExpr" \ @@ -435,7 +435,7 @@ JBurg.include "CompoundAssignmentRules.jbg" \ compoundAssignToDescendants="assignMultiplyToDescendantsExpr" \ compoundAssignToRuntimeName="assignMultiplyToRuntimeNameExpr" -JBurg.include "CompoundAssignmentRules.jbg" \ +@include "CompoundAssignmentRules.jbg" \ opcode="OP_modulo" \ compoundAssignToName="assignModuloToNameExpr" \ compoundAssignToMember="assignModuloToMemberExpr" \ @@ -443,7 +443,7 @@ JBurg.include "CompoundAssignmentRules.jbg" \ compoundAssignToDescendants="assignModuloToDescendantsExpr" \ compoundAssignToRuntimeName="assignModuloToRuntimeNameExpr" -JBurg.include "CompoundAssignmentRules.jbg" \ +@include "CompoundAssignmentRules.jbg" \ opcode="OP_bitor" \ compoundAssignToName="assignBitwiseOrToNameExpr" \ compoundAssignToMember="assignBitwiseOrToMemberExpr" \ @@ -451,7 +451,7 @@ JBurg.include "CompoundAssignmentRules.jbg" \ compoundAssignToDescendants="assignBitwiseOrToDescendantsExpr" \ compoundAssignToRuntimeName="assignBitwiseOrToRuntimeNameExpr" -JBurg.include "CompoundAssignmentRules.jbg" \ +@include "CompoundAssignmentRules.jbg" \ opcode="OP_bitand" \ compoundAssignToName="assignBitwiseAndToNameExpr" \ compoundAssignToMember="assignBitwiseAndToMemberExpr" \ @@ -459,7 +459,7 @@ JBurg.include "CompoundAssignmentRules.jbg" \ compoundAssignToDescendants="assignBitwiseAndToDescendantsExpr" \ compoundAssignToRuntimeName="assignBitwiseAndToRuntimeNameExpr" -JBurg.include "CompoundAssignmentRules.jbg" \ +@include "CompoundAssignmentRules.jbg" \ opcode="OP_bitxor" \ compoundAssignToName="assignBitwiseXorToNameExpr" \ compoundAssignToMember="assignBitwiseXorToMemberExpr" \ @@ -467,7 +467,7 @@ JBurg.include "CompoundAssignmentRules.jbg" \ compoundAssignToDescendants="assignBitwiseXorToDescendantsExpr" \ compoundAssignToRuntimeName="assignBitwiseXorToRuntimeNameExpr" -JBurg.include "CompoundAssignmentRules.jbg" \ +@include "CompoundAssignmentRules.jbg" \ opcode="OP_lshift" \ compoundAssignToName="assignLeftShiftToNameExpr" \ compoundAssignToMember="assignLeftShiftToMemberExpr" \ @@ -475,7 +475,7 @@ JBurg.include "CompoundAssignmentRules.jbg" \ compoundAssignToDescendants="assignLeftShiftToDescendantsExpr" \ compoundAssignToRuntimeName="assignLeftShiftToRuntimeNameExpr" -JBurg.include "CompoundAssignmentRules.jbg" \ +@include "CompoundAssignmentRules.jbg" \ opcode="OP_rshift" \ compoundAssignToName="assignRightShiftToNameExpr" \ compoundAssignToMember="assignRightShiftToMemberExpr" \ @@ -483,7 +483,7 @@ JBurg.include "CompoundAssignmentRules.jbg" \ compoundAssignToDescendants="assignRightShiftToDescendantsExpr" \ compoundAssignToRuntimeName="assignRightShiftToRuntimeNameExpr" -JBurg.include "CompoundAssignmentRules.jbg" \ +@include "CompoundAssignmentRules.jbg" \ opcode="OP_urshift" \ compoundAssignToName="assignUnsignedRightShiftToNameExpr" \ compoundAssignToMember="assignUnsignedRightShiftToMemberExpr" \ @@ -491,7 +491,7 @@ JBurg.include "CompoundAssignmentRules.jbg" \ compoundAssignToDescendants="assignUnsignedRightShiftToDescendantsExpr" \ compoundAssignToRuntimeName="assignUnsignedRightShiftToRuntimeNameExpr" -JBurg.include "CompoundLogicalAssignmentRules.jbg" \ +@include "CompoundLogicalAssignmentRules.jbg" \ IsAnd="true" \ compoundAssignToName="assignLogicalAndToNameExpr" \ compoundAssignToMember="assignLogicalAndToMemberExpr" \ @@ -499,7 +499,7 @@ JBurg.include "CompoundLogicalAssignmentRules.jbg" \ compoundAssignToDescendants="assignLogicalAndToDescendantsExpr" \ compoundAssignToRuntimeName="assignLogicalAndToRuntimeNameExpr" -JBurg.include "CompoundLogicalAssignmentRules.jbg" \ +@include "CompoundLogicalAssignmentRules.jbg" \ IsAnd="false" \ compoundAssignToName="assignLogicalOrToNameExpr" \ compoundAssignToMember="assignLogicalOrToMemberExpr" \ @@ -511,68 +511,68 @@ JBurg.include "CompoundLogicalAssignmentRules.jbg" \ /* * Miscellaneous void expressions. */ -void_expression = Pattern variableExpression : 0 -JBurg.Reduction reducer.reduce_variableExpression (__p, decls); +void_expression = Pattern variableExpression: 0 +@Reduction reducer.reduce_variableExpression (__p, decls); void_expression = Pattern nilExpr: 0 -JBurg.Reduction reducer.createInstructionList(__p); +@Reduction reducer.createInstructionList(__p); -expression = Pattern nilExpr : 1 -JBurg.Reduction reducer.reduce_nilExpr_to_expression(__p); +expression = Pattern nilExpr: 1 +@Reduction reducer.reduce_nilExpr_to_expression(__p); void_expression = Pattern groupedVoidExpression: 0 -JBurg.Reduction reducer.reduce_groupedVoidExpression(__p, contents); +@Reduction reducer.reduce_groupedVoidExpression(__p, contents); /* * Special Instruction List node - allows arbitrary instructions to be inserted * where an expression is expected. Used by some MXML processing that wants to * generate code without having to create a synthetic AST to pass to the burm. */ -expression = Pattern instructionListExpression : 1 -JBurg.Reduction reducer.reduce_instructionListExpression(__p); +expression = Pattern instructionListExpression: 1 +@Reduction reducer.reduce_instructionListExpression(__p); /* * Binary logical operators. */ -comparison_expression = Pattern equalExpr : 1 -JBurg.Reduction reducer.binaryOp (__p, l, r, OP_equals); +comparison_expression = Pattern equalExpr: 1 +@Reduction reducer.binaryOp (__p, l, r, OP_equals); -comparison_expression = Pattern neqExpr : 1 -JBurg.Reduction reducer.reduce_neqExpr (__p, l, r); +comparison_expression = Pattern neqExpr: 1 +@Reduction reducer.reduce_neqExpr (__p, l, r); -comparison_expression = Pattern stricteqExpr : 1 -JBurg.Reduction reducer.binaryOp (__p, l, r, OP_strictequals); +comparison_expression = Pattern stricteqExpr: 1 +@Reduction reducer.binaryOp (__p, l, r, OP_strictequals); -comparison_expression = Pattern strictneqExpr : 1 -JBurg.Reduction reducer.reduce_strictneqExpr (__p, l, r); +comparison_expression = Pattern strictneqExpr: 1 +@Reduction reducer.reduce_strictneqExpr (__p, l, r); comparison_expression = Pattern greaterThanExpr: 1 -JBurg.Reduction reducer.binaryOp (__p, l, r, OP_greaterthan); +@Reduction reducer.binaryOp (__p, l, r, OP_greaterthan); comparison_expression = Pattern greaterThanEqExpr: 1 -JBurg.Reduction reducer.binaryOp (__p, l, r, OP_greaterequals); +@Reduction reducer.binaryOp (__p, l, r, OP_greaterequals); -comparison_expression = Pattern lessExpr : 1 -JBurg.Reduction reducer.binaryOp (__p, l, r, OP_lessthan); +comparison_expression = Pattern lessExpr: 1 +@Reduction reducer.binaryOp (__p, l, r, OP_lessthan); -comparison_expression = Pattern lessEqExpr : 1 -JBurg.Reduction reducer.binaryOp (__p, l, r, OP_lessequals); +comparison_expression = Pattern lessEqExpr: 1 +@Reduction reducer.binaryOp (__p, l, r, OP_lessequals); // Closure rule: any comparison_expression // is also an expression without further conversion. expression = comparison_expression; -expression = Pattern logicalAndExpr : 5 -JBurg.Reduction reducer.reduce_logicalAndExpr (__p, l, r); +expression = Pattern logicalAndExpr: 5 +@Reduction reducer.reduce_logicalAndExpr (__p, l, r); -expression = Pattern logicalOrExpr : 5 -JBurg.Reduction reducer.reduce_logicalOrExpr (__p, l, r); +expression = Pattern logicalOrExpr: 5 +@Reduction reducer.reduce_logicalOrExpr (__p, l, r); -expression = Pattern logicalNotExpr : 1 -JBurg.Reduction reducer.reduce_logicalNotExpr (__p, expr); +expression = Pattern logicalNotExpr: 1 +@Reduction reducer.reduce_logicalNotExpr (__p, expr); -expression = Pattern ternaryExpr : 1 -JBurg.Reduction reducer.reduce_ternaryExpr (__p, test, when_true, when_false); +expression = Pattern ternaryExpr: 1 +@Reduction reducer.reduce_ternaryExpr (__p, test, when_true, when_false); /* * Binary branching constructs; @@ -580,151 +580,151 @@ JBurg.Reduction reducer.reduce_ternaryExpr (__p, test, when_true, when_false); * near their equivalent operators * for maintenance's sake. */ -conditionalJump = Pattern equalExpr : 1 -JBurg.Reduction reducer.conditionalJump(__p, l, r, OP_ifeq); +conditionalJump = Pattern equalExpr: 1 +@Reduction reducer.conditionalJump(__p, l, r, OP_ifeq); -conditionalJump = Pattern neqExpr : 1 -JBurg.Reduction reducer.conditionalJump(__p, l, r, OP_ifne); +conditionalJump = Pattern neqExpr: 1 +@Reduction reducer.conditionalJump(__p, l, r, OP_ifne); -conditionalJump = Pattern stricteqExpr : 1 -JBurg.Reduction reducer.conditionalJump(__p, l, r, OP_ifstricteq); +conditionalJump = Pattern stricteqExpr: 1 +@Reduction reducer.conditionalJump(__p, l, r, OP_ifstricteq); -conditionalJump = Pattern strictneqExpr : 1 -JBurg.Reduction reducer.conditionalJump(__p, l, r, OP_ifstrictne); +conditionalJump = Pattern strictneqExpr: 1 +@Reduction reducer.conditionalJump(__p, l, r, OP_ifstrictne); conditionalJump = Pattern greaterThanExpr: 1 -JBurg.Reduction reducer.conditionalJump(__p, l, r, OP_ifgt); +@Reduction reducer.conditionalJump(__p, l, r, OP_ifgt); conditionalJump = Pattern greaterThanEqExpr: 1 -JBurg.Reduction reducer.conditionalJump(__p, l, r, OP_ifge); +@Reduction reducer.conditionalJump(__p, l, r, OP_ifge); -conditionalJump = Pattern lessExpr : 1 -JBurg.Reduction reducer.conditionalJump(__p, l, r, OP_iflt); +conditionalJump = Pattern lessExpr: 1 +@Reduction reducer.conditionalJump(__p, l, r, OP_iflt); -conditionalJump = Pattern lessEqExpr : 1 -JBurg.Reduction reducer.conditionalJump(__p, l, r, OP_ifle); +conditionalJump = Pattern lessEqExpr: 1 +@Reduction reducer.conditionalJump(__p, l, r, OP_ifle); -conditionalJump = Pattern nilExpr : 1 -JBurg.Reduction reducer.reduce_nilExpr_to_conditionalJump (__p); +conditionalJump = Pattern nilExpr: 1 +@Reduction reducer.reduce_nilExpr_to_conditionalJump (__p); /* * General form of conditional jump. */ -conditionalJump = expression : 1 -JBurg.Reduction reducer.transform_expression_to_conditionalJump(__p, expression); +conditionalJump = expression: 1 +@Reduction reducer.transform_expression_to_conditionalJump(__p, expression); /* * Binary arithmetic operators. */ -expression = Pattern divideExpr : 1 -JBurg.Reduction reducer.binaryOp(__p, l, r, OP_divide); +expression = Pattern divideExpr: 1 +@Reduction reducer.binaryOp(__p, l, r, OP_divide); -expression = Pattern multExpr : 1 -JBurg.Reduction reducer.binaryOp(__p, l, r, OP_multiply); +expression = Pattern multExpr: 1 +@Reduction reducer.binaryOp(__p, l, r, OP_multiply); -expression = Pattern moduloExpr : 1 -JBurg.Reduction reducer.binaryOp(__p, l, r, OP_modulo); +expression = Pattern moduloExpr: 1 +@Reduction reducer.binaryOp(__p, l, r, OP_modulo); -expression = Pattern addExpr : 1 -JBurg.Reduction reducer.binaryOp(__p, l, r, OP_add); +expression = Pattern addExpr: 1 +@Reduction reducer.binaryOp(__p, l, r, OP_add); -expression = Pattern subtractExpr : 1 -JBurg.Reduction reducer.binaryOp(__p, l, r, OP_subtract); +expression = Pattern subtractExpr: 1 +@Reduction reducer.binaryOp(__p, l, r, OP_subtract); -expression = Pattern bitwiseLeftShiftExpr : 1 -JBurg.Reduction reducer.binaryOp(__p, l, r, OP_lshift); +expression = Pattern bitwiseLeftShiftExpr: 1 +@Reduction reducer.binaryOp(__p, l, r, OP_lshift); -expression = Pattern bitwiseRightShiftExpr : 1 -JBurg.Reduction reducer.binaryOp(__p, l, r, OP_rshift); +expression = Pattern bitwiseRightShiftExpr: 1 +@Reduction reducer.binaryOp(__p, l, r, OP_rshift); -expression = Pattern bitwiseUnsignedRightShiftExpr : 1 -JBurg.Reduction reducer.binaryOp(__p, l, r, OP_urshift); +expression = Pattern bitwiseUnsignedRightShiftExpr: 1 +@Reduction reducer.binaryOp(__p, l, r, OP_urshift); -expression = Pattern bitwiseAndExpr : 1 -JBurg.Reduction reducer.binaryOp(__p, l, r, OP_bitand); +expression = Pattern bitwiseAndExpr: 1 +@Reduction reducer.binaryOp(__p, l, r, OP_bitand); -expression = Pattern bitwiseOrExpr : 1 -JBurg.Reduction reducer.binaryOp(__p, l, r, OP_bitor); +expression = Pattern bitwiseOrExpr: 1 +@Reduction reducer.binaryOp(__p, l, r, OP_bitor); -expression = Pattern bitwiseXorExpr : 1 -JBurg.Reduction reducer.binaryOp(__p, l, r, OP_bitxor); +expression = Pattern bitwiseXorExpr: 1 +@Reduction reducer.binaryOp(__p, l, r, OP_bitxor); /* * pre/postfix unary operators. */ -expression = Pattern postIncNameExpr : 7 -JBurg.Reduction reducer.reduce_postIncNameExpr(__p, unary, true); +expression = Pattern postIncNameExpr: 7 +@Reduction reducer.reduce_postIncNameExpr(__p, unary, true); -void_expression = Pattern postIncNameExpr : 7 -JBurg.Reduction reducer.reduce_postIncNameExpr(__p, unary, false); +void_expression = Pattern postIncNameExpr: 7 +@Reduction reducer.reduce_postIncNameExpr(__p, unary, false); -expression = Pattern preIncNameExpr : 7 -JBurg.Reduction reducer.reduce_preIncNameExpr(__p, unary, true); +expression = Pattern preIncNameExpr: 7 +@Reduction reducer.reduce_preIncNameExpr(__p, unary, true); -void_expression = Pattern preIncNameExpr : 7 -JBurg.Reduction reducer.reduce_preIncNameExpr(__p, unary, false); +void_expression = Pattern preIncNameExpr: 7 +@Reduction reducer.reduce_preIncNameExpr(__p, unary, false); -expression = Pattern preIncMemberExpr : 8 -JBurg.Reduction reducer.reduce_preIncMemberExpr(__p, stem, field, true); +expression = Pattern preIncMemberExpr: 8 +@Reduction reducer.reduce_preIncMemberExpr(__p, stem, field, true); -void_expression = Pattern preIncMemberExpr : 8 -JBurg.Reduction reducer.reduce_preIncMemberExpr(__p, stem, field, false); +void_expression = Pattern preIncMemberExpr: 8 +@Reduction reducer.reduce_preIncMemberExpr(__p, stem, field, false); expression = Pattern postIncMemberExpr: 8 -JBurg.Reduction reducer.reduce_postIncMemberExpr(__p, stem, field, true); +@Reduction reducer.reduce_postIncMemberExpr(__p, stem, field, true); void_expression = Pattern postIncMemberExpr: 8 -JBurg.Reduction reducer.reduce_postIncMemberExpr(__p, stem, field, false); +@Reduction reducer.reduce_postIncMemberExpr(__p, stem, field, false); expression = Pattern preIncBracketExpr: 8 -JBurg.Reduction reducer.reduce_preIncBracketExpr(__p, stem, index, true); +@Reduction reducer.reduce_preIncBracketExpr(__p, stem, index, true); void_expression = Pattern preIncBracketExpr: 8 -JBurg.Reduction reducer.reduce_preIncBracketExpr(__p, stem, index, false); +@Reduction reducer.reduce_preIncBracketExpr(__p, stem, index, false); expression = Pattern postIncBracketExpr: 8 -JBurg.Reduction reducer.reduce_postIncBracketExpr(__p, stem, index, true); +@Reduction reducer.reduce_postIncBracketExpr(__p, stem, index, true); void_expression = Pattern postIncBracketExpr: 8 -JBurg.Reduction reducer.reduce_postIncBracketExpr(__p, stem, index, false); +@Reduction reducer.reduce_postIncBracketExpr(__p, stem, index, false); -expression = Pattern postDecNameExpr : 7 -JBurg.Reduction reducer.reduce_postDecNameExpr(__p, unary, true); +expression = Pattern postDecNameExpr: 7 +@Reduction reducer.reduce_postDecNameExpr(__p, unary, true); -void_expression = Pattern postDecNameExpr : 7 -JBurg.Reduction reducer.reduce_postDecNameExpr(__p, unary, false); +void_expression = Pattern postDecNameExpr: 7 +@Reduction reducer.reduce_postDecNameExpr(__p, unary, false); -expression = Pattern preDecNameExpr : 7 -JBurg.Reduction reducer.reduce_preDecNameExpr(__p, unary, true); +expression = Pattern preDecNameExpr: 7 +@Reduction reducer.reduce_preDecNameExpr(__p, unary, true); -void_expression = Pattern preDecNameExpr : 7 -JBurg.Reduction reducer.reduce_preDecNameExpr(__p, unary, false); +void_expression = Pattern preDecNameExpr: 7 +@Reduction reducer.reduce_preDecNameExpr(__p, unary, false); -expression = Pattern preDecMemberExpr : 8 -JBurg.Reduction reducer.reduce_preDecMemberExpr(__p, stem, field, true); +expression = Pattern preDecMemberExpr: 8 +@Reduction reducer.reduce_preDecMemberExpr(__p, stem, field, true); -void_expression = Pattern preDecMemberExpr : 8 -JBurg.Reduction reducer.reduce_preDecMemberExpr(__p, stem, field, false); +void_expression = Pattern preDecMemberExpr: 8 +@Reduction reducer.reduce_preDecMemberExpr(__p, stem, field, false); expression = Pattern postDecMemberExpr: 8 -JBurg.Reduction reducer.reduce_postDecMemberExpr(__p, stem, field, true); +@Reduction reducer.reduce_postDecMemberExpr(__p, stem, field, true); void_expression = Pattern postDecMemberExpr: 8 -JBurg.Reduction reducer.reduce_postDecMemberExpr(__p, stem, field, false); +@Reduction reducer.reduce_postDecMemberExpr(__p, stem, field, false); expression = Pattern preDecBracketExpr: 8 -JBurg.Reduction reducer.reduce_preDecBracketExpr(__p, stem, index, true); +@Reduction reducer.reduce_preDecBracketExpr(__p, stem, index, true); void_expression = Pattern preDecBracketExpr: 8 -JBurg.Reduction reducer.reduce_preDecBracketExpr(__p, stem, index, false); +@Reduction reducer.reduce_preDecBracketExpr(__p, stem, index, false); expression = Pattern postDecBracketExpr: 8 -JBurg.Reduction reducer.reduce_postDecBracketExpr(__p, stem, index, true); +@Reduction reducer.reduce_postDecBracketExpr(__p, stem, index, true); void_expression = Pattern postDecBracketExpr: 8 -JBurg.Reduction reducer.reduce_postDecBracketExpr(__p, stem, index, false); +@Reduction reducer.reduce_postDecBracketExpr(__p, stem, index, false); @@ -732,7 +732,7 @@ JBurg.Reduction reducer.reduce_postDecBracketExpr(__p, stem, index, false); * Unary expressions. */ expression = Pattern unaryMinusExpr: 1 -JBurg.Reduction reducer.unaryOp(__p, e, OP_negate); +@Reduction reducer.unaryOp(__p, e, OP_negate); expression = Pattern unaryPlusExpr: 0 { @@ -740,218 +740,218 @@ expression = Pattern unaryPlusExpr: 0 } expression = Pattern typeofExpr: 10 -Prologue reducer.prologue_typeof(p) -JBurg.Reduction reducer.reduce_typeof_expr(__p, expr); +@Prologue reducer.prologue_typeof(p) +@Reduction reducer.reduce_typeof_expr(__p, expr); expression = Pattern typeofName: 1 -Prologue reducer.prologue_typeof(p) -JBurg.Reduction reducer.reduce_typeof_name(__p, n); +@Prologue reducer.prologue_typeof(p) +@Reduction reducer.reduce_typeof_name(__p, n); expression = Pattern bitNotExpr: 1 -JBurg.Reduction reducer.unaryOp(__p, unary, OP_bitnot); +@Reduction reducer.unaryOp(__p, unary, OP_bitnot); /* * Miscellaneous binary expressions. */ -expression = Pattern istypeExprLate : 1 -JBurg.Reduction reducer.binaryOp(__p, expr, typename, OP_istypelate); +expression = Pattern istypeExprLate: 1 +@Reduction reducer.binaryOp(__p, expr, typename, OP_istypelate); -expression = Pattern astypeExprLate : 1 -JBurg.Reduction reducer.binaryOp(__p, expr, typename, OP_astypelate); +expression = Pattern astypeExprLate: 1 +@Reduction reducer.binaryOp(__p, expr, typename, OP_astypelate); -expression = Pattern inExpr : 1 -JBurg.Reduction reducer.binaryOp(__p, needle, haystack, OP_in); +expression = Pattern inExpr: 1 +@Reduction reducer.binaryOp(__p, needle, haystack, OP_in); -expression = Pattern instanceofExpr : 1 -JBurg.Reduction reducer.binaryOp(__p, expr, typename, OP_instanceof); +expression = Pattern instanceofExpr: 1 +@Reduction reducer.binaryOp(__p, expr, typename, OP_instanceof); /* * Primary expressions. */ -expression = Pattern memberAccessExpr : 10 -JBurg.Reduction reducer.reduce_memberAccessExpr (__p, stem, member, OP_getproperty); +expression = Pattern memberAccessExpr: 10 +@Reduction reducer.reduce_memberAccessExpr (__p, stem, member, OP_getproperty); -expression = Pattern qualifiedMemberAccessExpr : 10 -JBurg.Reduction reducer.reduce_qualifiedMemberAccessExpr(__p, stem, qualifier, member, OP_getproperty); +expression = Pattern qualifiedMemberAccessExpr: 10 +@Reduction reducer.reduce_qualifiedMemberAccessExpr(__p, stem, qualifier, member, OP_getproperty); -expression = Pattern qualifiedDescendantsExpr : 10 -JBurg.Reduction reducer.reduce_qualifiedMemberAccessExpr(__p, stem, qualifier, member, OP_getdescendants); +expression = Pattern qualifiedDescendantsExpr: 10 +@Reduction reducer.reduce_qualifiedMemberAccessExpr(__p, stem, qualifier, member, OP_getdescendants); -expression = Pattern qualifiedDescendantsRuntimeExpr : 1 -JBurg.Reduction reducer.reduce_qualifiedAttributeRuntimeMemberExpr(__p, stem, qualifier, runtime_member, OP_getdescendants); +expression = Pattern qualifiedDescendantsRuntimeExpr: 1 +@Reduction reducer.reduce_qualifiedAttributeRuntimeMemberExpr(__p, stem, qualifier, runtime_member, OP_getdescendants); -expression = Pattern qualifiedAttributeExpr : 1 -JBurg.Reduction reducer.reduce_qualifiedAttributeExpr(__p, stem, qualifier, member, OP_getproperty); +expression = Pattern qualifiedAttributeExpr: 1 +@Reduction reducer.reduce_qualifiedAttributeExpr(__p, stem, qualifier, member, OP_getproperty); -expression = Pattern qualifiedDescendantsAttributeExpr : 1 -JBurg.Reduction reducer.reduce_qualifiedAttributeExpr(__p, stem, qualifier, member, OP_getdescendants); +expression = Pattern qualifiedDescendantsAttributeExpr: 1 +@Reduction reducer.reduce_qualifiedAttributeExpr(__p, stem, qualifier, member, OP_getdescendants); -expression = Pattern qualifiedAttributeRuntimeMemberExpr : 1 -JBurg.Reduction reducer.reduce_qualifiedAttributeRuntimeMemberExpr(__p, stem, qualifier, runtime_member, OP_getproperty); +expression = Pattern qualifiedAttributeRuntimeMemberExpr: 1 +@Reduction reducer.reduce_qualifiedAttributeRuntimeMemberExpr(__p, stem, qualifier, runtime_member, OP_getproperty); -expression = Pattern qualifiedDescendantsRuntimeMemberExpr : 1 -JBurg.Reduction reducer.reduce_qualifiedAttributeRuntimeMemberExpr(__p, stem, qualifier, runtime_member, OP_getdescendants); +expression = Pattern qualifiedDescendantsRuntimeMemberExpr: 1 +@Reduction reducer.reduce_qualifiedAttributeRuntimeMemberExpr(__p, stem, qualifier, runtime_member, OP_getdescendants); // Prefer the basic memberAccessExpr pattern where feasible. -expression = Pattern qualifiedMemberRuntimeNameExpr : 100 -JBurg.Reduction reducer.reduce_qualifiedMemberRuntimeNameExpr(__p, stem, qualifier, runtime_member); +expression = Pattern qualifiedMemberRuntimeNameExpr: 100 +@Reduction reducer.reduce_qualifiedMemberRuntimeNameExpr(__p, stem, qualifier, runtime_member); -expression = Pattern unqualifiedAttributeExpr : 1 -JBurg.Reduction reducer.reduce_unqualifiedAttributeExpr(__p, stem, expr, OP_getproperty); +expression = Pattern unqualifiedAttributeExpr: 1 +@Reduction reducer.reduce_unqualifiedAttributeExpr(__p, stem, expr, OP_getproperty); -expression = Pattern unqualifiedDescendantsAttributeExpr : 1 -JBurg.Reduction reducer.reduce_unqualifiedAttributeExpr(__p, stem, expr, OP_getdescendants); +expression = Pattern unqualifiedDescendantsAttributeExpr: 1 +@Reduction reducer.reduce_unqualifiedAttributeExpr(__p, stem, expr, OP_getdescendants); -expression = Pattern runtimeAttributeExp : 1 -JBurg.Reduction reducer.reduce_runtimeAttributeExp(__p, expr); +expression = Pattern runtimeAttributeExp: 1 +@Reduction reducer.reduce_runtimeAttributeExp(__p, expr); -expression = Pattern arrayIndexExpr : 1 -JBurg.Reduction reducer.reduce_arrayIndexExpr (__p, stem, false, index); +expression = Pattern arrayIndexExpr: 1 +@Reduction reducer.reduce_arrayIndexExpr (__p, stem, false, index); -expression = Pattern superIndexExpr : 1 -JBurg.Reduction reducer.reduce_arrayIndexExpr (__p, null, true, index); +expression = Pattern superIndexExpr: 1 +@Reduction reducer.reduce_arrayIndexExpr (__p, null, true, index); -expression = Pattern functionCallExpr : 3 // Cost artificially inflated -JBurg.Reduction reducer.reduce_functionCallExpr_to_expression (__p, method_name, args); +expression = Pattern functionCallExpr: 3 // Cost artificially inflated +@Reduction reducer.reduce_functionCallExpr_to_expression (__p, method_name, args); // Use callpropvoid to dodge a pop insn where it fits. -void_expression = Pattern functionCallExpr : 2 -JBurg.Reduction reducer.reduce_functionCallExpr_to_void_expression (__p, method_name, args); +void_expression = Pattern functionCallExpr: 2 +@Reduction reducer.reduce_functionCallExpr_to_void_expression (__p, method_name, args); -void_expression = Pattern superCallExpr : 2 -JBurg.Reduction reducer.reduce_superCallExpr (__p, args); +void_expression = Pattern superCallExpr: 2 +@Reduction reducer.reduce_superCallExpr (__p, args); -void_expression = Pattern functionCallOfSuperclassMethod : 1 -JBurg.Reduction reducer.reduce_functionCallOfSuperclassMethod_to_void_expression (__p, null, method_name, args); +void_expression = Pattern functionCallOfSuperclassMethod: 1 +@Reduction reducer.reduce_functionCallOfSuperclassMethod_to_void_expression (__p, null, method_name, args); -void_expression = Pattern functionCallOfExplicitObjectSuperclassMethod : 2 -JBurg.Reduction reducer.reduce_functionCallOfSuperclassMethod_to_void_expression (__p, stem, method_name, args); +void_expression = Pattern functionCallOfExplicitObjectSuperclassMethod: 2 +@Reduction reducer.reduce_functionCallOfSuperclassMethod_to_void_expression (__p, stem, method_name, args); expression = Pattern newVectorLiteral: 0 -JBurg.Reduction reducer.reduce_newVectorLiteral(__p, literal); +@Reduction reducer.reduce_newVectorLiteral(__p, literal); // 'new Array()' has cost 1. -expression = Pattern emptyConstructor : isEmptyArrayConstructor() -JBurg.Reduction reducer.reduce_newEmptyArray(__p); +expression = Pattern emptyConstructor: isEmptyArrayConstructor() +@Reduction reducer.reduce_newEmptyArray(__p); // 'new Object()' has cost 1. -expression = Pattern emptyConstructor : isEmptyObjectConstructor() -JBurg.Reduction reducer.reduce_newEmptyObject(__p); +expression = Pattern emptyConstructor: isEmptyObjectConstructor() +@Reduction reducer.reduce_newEmptyObject(__p); // 'new Whatever(...)' has cost 2, so it gets beaten by the two previous rules. // Use this reduction if the type is known; // it allows much better error checking of the constructor call. -expression = Pattern newExpr : 2 -JBurg.Reduction reducer.reduce_newExpr (__p, class_binding, args); +expression = Pattern newExpr: 2 +@Reduction reducer.reduce_newExpr (__p, class_binding, args); expression = Pattern newMemberProperty: 10 -JBurg.Reduction reducer.reduce_newMemberProperty(__p, stem, member, args); +@Reduction reducer.reduce_newMemberProperty(__p, stem, member, args); -expression = Pattern newAsRandomExpr : 30 -JBurg.Reduction reducer.reduce_newAsRandomExpr (__p, random_expr, args); +expression = Pattern newAsRandomExpr: 30 +@Reduction reducer.reduce_newAsRandomExpr (__p, random_expr, args); -expression = Pattern functionCallOfSuperclassMethod : 2 -JBurg.Reduction reducer.reduce_functionCallOfSuperclassMethod_to_expression (__p, null, method_name, args); +expression = Pattern functionCallOfSuperclassMethod: 2 +@Reduction reducer.reduce_functionCallOfSuperclassMethod_to_expression (__p, null, method_name, args); -expression = Pattern functionCallOfExplicitObjectSuperclassMethod : 2 -JBurg.Reduction reducer.reduce_functionCallOfSuperclassMethod_to_expression (__p, stem, method_name, args); +expression = Pattern functionCallOfExplicitObjectSuperclassMethod: 2 +@Reduction reducer.reduce_functionCallOfSuperclassMethod_to_expression (__p, stem, method_name, args); -expression = Pattern functionAsMemberExpr : 4 // Cost inflated to prefer functionCallOfSuperclassMethod -JBurg.Reduction reducer.reduce_functionAsMemberExpr (__p, stem, method_name, args); +expression = Pattern functionAsMemberExpr: 4 // Cost inflated to prefer functionCallOfSuperclassMethod +@Reduction reducer.reduce_functionAsMemberExpr (__p, stem, method_name, args); -expression = Pattern functionAsBracketExpr : 4 -JBurg.Reduction reducer.reduce_functionAsBracketExpr (__p, stem, index, args); +expression = Pattern functionAsBracketExpr: 4 +@Reduction reducer.reduce_functionAsBracketExpr (__p, stem, index, args); -expression = Pattern functionAsRandomExpr : 30 -JBurg.Reduction reducer.reduce_functionAsRandomExpr (__p, random_expr, args); +expression = Pattern functionAsRandomExpr: 30 +@Reduction reducer.reduce_functionAsRandomExpr (__p, random_expr, args); /* * Delete expressions. */ expression = Pattern deleteNameExpr: 2 -JBurg.Reduction reducer.reduce_deleteNameExpr(__p, n); +@Reduction reducer.reduce_deleteNameExpr(__p, n); expression = Pattern deleteBracketExpr: 1 -JBurg.Reduction reducer.reduce_deleteBracketExpr(__p, stem, index); +@Reduction reducer.reduce_deleteBracketExpr(__p, stem, index); expression = Pattern deleteAtBracketExpr: 1 -JBurg.Reduction reducer.reduce_deleteAtBracketExpr(__p, stem, index); +@Reduction reducer.reduce_deleteAtBracketExpr(__p, stem, index); expression = Pattern deleteMemberExpr: 1 -JBurg.Reduction reducer.reduce_deleteMemberExpr(__p, stem, field); +@Reduction reducer.reduce_deleteMemberExpr(__p, stem, field); expression = Pattern deleteRuntimeNameExpr: 1 -JBurg.Reduction reducer.reduce_deleteRuntimeNameExpr(__p, stem, rt_name); +@Reduction reducer.reduce_deleteRuntimeNameExpr(__p, stem, rt_name); expression = Pattern deleteDescendantsExpr: 1 -JBurg.Reduction reducer.reduce_deleteDescendantsExpr(__p, stem, field); +@Reduction reducer.reduce_deleteDescendantsExpr(__p, stem, field); expression = Pattern deleteAnyExprExprExpr: 2000 -JBurg.Reduction reducer.reduce_deleteExprExprExpr(__p, expr); +@Reduction reducer.reduce_deleteExprExprExpr(__p, expr); /* * Comma expression. */ expression = Pattern commaExpr: 0 -JBurg.Reduction reducer.reduce_commaExpr(__p, payload_expr, exprs); +@Reduction reducer.reduce_commaExpr(__p, payload_expr, exprs); /* * Names and reference expressions built from names. */ -name = Pattern simpleName : 0 -JBurg.Reduction reducer.reduce_simpleName (__p); +name = Pattern simpleName: 0 +@Reduction reducer.reduce_simpleName (__p); -decl_name = Pattern simpleName : 0 -JBurg.Reduction reducer.reduce_declName(__p); +decl_name = Pattern simpleName: 0 +@Reduction reducer.reduce_declName(__p); qualifiedNamePart = Pattern simpleName: 0 -JBurg.Reduction reducer.getIdentifierContent(__p); +@Reduction reducer.getIdentifierContent(__p); -name = Pattern typedVariableExpression : 0 -JBurg.Reduction reducer.reduce_typedVariableExpression (__p, var_name, var_type); +name = Pattern typedVariableExpression: 0 +@Reduction reducer.reduce_typedVariableExpression (__p, var_name, var_type); -dottedNamePart = Pattern dottedName : 0 -JBurg.Reduction reducer.reduce_by_concatenation (__p, first, second); +dottedNamePart = Pattern dottedName: 0 +@Reduction reducer.reduce_by_concatenation (__p, first, second); dottedNamePart = qualifiedNamePart; -name = Pattern dottedName : isDottedName() -JBurg.Reduction reducer.dottedName (__p, first, second); +name = Pattern dottedName: isDottedName() +@Reduction reducer.dottedName (__p, first, second); -name = Pattern dottedName : isPackageName() -JBurg.Reduction reducer.errorPackageName(__p, first, second); +name = Pattern dottedName: isPackageName() +@Reduction reducer.errorPackageName(__p, first, second); // This reduction handles an entire dotted name subtree. -name = Pattern fullName : 0 -JBurg.Reduction reducer.dottedName(__p, first, second); +name = Pattern fullName: 0 +@Reduction reducer.dottedName(__p, first, second); // qualified namespace is the same as a full name, // it's just what gets produced when we're in a use namespace directive // use namespace a.b.Foo; -name = Pattern qualifiedNamespaceName : 0 -JBurg.Reduction reducer.dottedName(__p, first, second); +name = Pattern qualifiedNamespaceName: 0 +@Reduction reducer.dottedName(__p, first, second); // This reduction handles the bar.T part of foo.bar.T -dottedNamePart = Pattern fullName : 0 -JBurg.Reduction reducer.reduce_by_concatenation (__p, first, second); +dottedNamePart = Pattern fullName: 0 +@Reduction reducer.reduce_by_concatenation (__p, first, second); -name = Pattern superAccess : 0 -JBurg.Reduction reducer.reduce_superAccess (__p, qualified_name); +name = Pattern superAccess: 0 +@Reduction reducer.reduce_superAccess (__p, qualified_name); -name = Pattern superThisAccess : isSuperThisForFieldAccess() -JBurg.Reduction reducer.reduce_superAccess (__p, qualified_name); +name = Pattern superThisAccess: isSuperThisForFieldAccess() +@Reduction reducer.reduce_superAccess (__p, qualified_name); // A bare parameterized type name can only be // used as a type annotation. In code it's necessary // to expand it into an expression that calls applytype. type_name = Pattern parameterizedName :0 -JBurg.Reduction reducer.reduce_parameterizedName (__p, base, param); +@Reduction reducer.reduce_parameterizedName (__p, base, param); // A name can be a type_name, which in combination with // the reduction above yields the set of possible type_names: // identifiers and * -type_name = name : 1 -JBurg.Reduction reducer.reduce_nameToTypeName(name, true); +type_name = name: 1 +@Reduction reducer.reduce_nameToTypeName(name, true); // The 'new' expression takes a pseduo-type name: // when it can be resolved, the semantic analysis @@ -961,39 +961,39 @@ new_type_name = name; // Inflate this cost so it's only selected // if the type_name isn't a name. -new_type_name = type_name : 20 -JBurg.Reduction reducer.reduce_nameToTypeName(type_name, false); +new_type_name = type_name: 20 +@Reduction reducer.reduce_nameToTypeName(type_name, false); // Special rule to convert from name to type param expression // we need this because '*' converts special in this context -type_param_expression = name : 1 -JBurg.Reduction reducer.reduce_typeNameParameter(__p, name); +type_param_expression = name: 1 +@Reduction reducer.reduce_typeNameParameter(__p, name); // any other expression can be used as a type param name in an expression context type_param_expression = expression; -expression = Pattern parameterizedTypeExpression : 1 -JBurg.Reduction reducer.reduce_parameterizedTypeExpression (__p, base, param); +expression = Pattern parameterizedTypeExpression: 1 +@Reduction reducer.reduce_parameterizedTypeExpression (__p, base, param); expression = name: 2000 -JBurg.Reduction reducer.transform_name_to_expression(__p, name); +@Reduction reducer.transform_name_to_expression(__p, name); -type_name = Pattern voidExpr : 0 -JBurg.Reduction reducer.reduce_voidExpr_to_type_name(__p); +type_name = Pattern voidExpr: 0 +@Reduction reducer.reduce_voidExpr_to_type_name(__p); -name = Pattern attributeName : 0 -JBurg.Reduction reducer.reduce_attributeName (__p, attr_name); +name = Pattern attributeName: 0 +@Reduction reducer.reduce_attributeName (__p, attr_name); // ns1::foo and rt_ns::foo look alike to // the parser, so they must be disambiguated // by checking their semantic annotations. -name = Pattern namespaceAccess : qualifierIsCompileTimeConstant() -JBurg.Reduction reducer.reduce_namespaceAccess (__p, qualifier, qualified_name); +name = Pattern namespaceAccess: qualifierIsCompileTimeConstant() +@Reduction reducer.reduce_namespaceAccess (__p, qualifier, qualified_name); // Error trap for an unresolved namespace in a context // where it must be declared. name = Pattern namespaceAccess: ERROR_TRAP -JBurg.Reduction reducer.error_namespaceAccess(__p, qualifier, qualified_name); +@Reduction reducer.error_namespaceAccess(__p, qualifier, qualified_name); // A namespace-qualified name reference whose name // is a runtime expression, e.g., ns1::[foo]. @@ -1001,90 +1001,90 @@ JBurg.Reduction reducer.error_namespaceAccess(__p, qualifier, qualified_name); // ns1::[foo] and rt_ns::[foo], so we need a cost // function to disambiguate the tree. runtime_name_expression = Pattern namespaceMultinameL: qualifierIsCompileTimeConstant() -JBurg.Reduction reducer.reduce_namespaceMultinameL(__p, qualifier, expr); +@Reduction reducer.reduce_namespaceMultinameL(__p, qualifier, expr); -runtime_name_expression = Pattern namespaceRTQName : 2000 -JBurg.Reduction reducer.reduce_namespaceRTQName (__p, qualifier, qualfied_name); +runtime_name_expression = Pattern namespaceRTQName: 2000 +@Reduction reducer.reduce_namespaceRTQName (__p, qualifier, qualfied_name); -expression = Pattern embedExpression : 2 -JBurg.Reduction reducer.reduce_embed(__p); +expression = Pattern embedExpression: 2 +@Reduction reducer.reduce_embed(__p); /* * E4X expressions (except literals) */ -expression = Pattern e4xFilter : 3 -JBurg.Reduction reducer.reduce_e4xFilter (__p, stem, filter); +expression = Pattern e4xFilter: 3 +@Reduction reducer.reduce_e4xFilter (__p, stem, filter); -runtime_name_expression = Pattern namespaceRTQNameL : 2000 -JBurg.Reduction reducer.reduce_namespaceRTQNameL (__p, qualifier, expr); +runtime_name_expression = Pattern namespaceRTQNameL: 2000 +@Reduction reducer.reduce_namespaceRTQNameL (__p, qualifier, expr); -expression = runtime_name_expression : 1 -JBurg.Reduction reducer.transform_runtime_name_expression(__p, runtime_name_expression); +expression = runtime_name_expression: 1 +@Reduction reducer.transform_runtime_name_expression(__p, runtime_name_expression); expression = Pattern runtimeNameExpression: 1 -JBurg.Reduction reducer.reduce_runtimeNameExpression(__p, expr); +@Reduction reducer.reduce_runtimeNameExpression(__p, expr); name = Pattern namespaceAsName: 1 -JBurg.Reduction reducer.reduce_namespaceAsName_to_name(__p); +@Reduction reducer.reduce_namespaceAsName_to_name(__p); expression = Pattern namespaceAsName: 1 -JBurg.Reduction reducer.reduce_namespaceAsName_to_expression(__p); +@Reduction reducer.reduce_namespaceAsName_to_expression(__p); void_expression = Pattern assignToRuntimeNameExpr: 1 -JBurg.Reduction reducer.reduce_assignToRuntimeNameExpr(__p, lval, r, DISCARD_VALUE); +@Reduction reducer.reduce_assignToRuntimeNameExpr(__p, lval, r, DISCARD_VALUE); expression = Pattern assignToRuntimeNameExpr: 1 -JBurg.Reduction reducer.reduce_assignToRuntimeNameExpr(__p, lval, r, NEED_VALUE); +@Reduction reducer.reduce_assignToRuntimeNameExpr(__p, lval, r, NEED_VALUE); -expression = Pattern descendantsExpression : 1 -JBurg.Reduction reducer.reduce_memberAccessExpr(__p, stem, descendants, OP_getdescendants); +expression = Pattern descendantsExpression: 1 +@Reduction reducer.reduce_memberAccessExpr(__p, stem, descendants, OP_getdescendants); /* * E4X directives and statements */ -statement = Pattern defaultXMLNamespace : 1 -JBurg.Reduction reducer.reduce_defaultXMLNamespace(__p, ns_expr); +statement = Pattern defaultXMLNamespace: 1 +@Reduction reducer.reduce_defaultXMLNamespace(__p, ns_expr); /* * Literals. */ -e4x_literal = Pattern XMLLiteral : 0 -JBurg.Reduction reducer.getStringLiteralContent (__p); +e4x_literal = Pattern XMLLiteral: 0 +@Reduction reducer.getStringLiteralContent (__p); string_constant = e4x_literal; expression = Pattern XMLContent: 1 -JBurg.Reduction reducer.reduce_XMLContent(__p, exprs); +@Reduction reducer.reduce_XMLContent(__p, exprs); expression = Pattern XMLList: 2 -JBurg.Reduction reducer.reduce_XMLList(__p, exprs); +@Reduction reducer.reduce_XMLList(__p, exprs); expression = Pattern XMLListConst: 1 -JBurg.Reduction reducer.reduce_XMLListConst(__p, elements); +@Reduction reducer.reduce_XMLListConst(__p, elements); expression = literal; literal = object_literal; literal = boolean_literal; literal = array_literal; -expression = string_constant : 1 -JBurg.Reduction reducer.transform_string_constant(__p, string_constant); +expression = string_constant: 1 +@Reduction reducer.transform_string_constant(__p, string_constant); integer_constant = Pattern integerLiteral: 0 -JBurg.Reduction reducer.getIntegerContent(__p); +@Reduction reducer.getIntegerContent(__p); -expression = integer_constant : 1 -JBurg.Reduction reducer.transform_integer_constant(__p, integer_constant); +expression = integer_constant: 1 +@Reduction reducer.transform_integer_constant(__p, integer_constant); uint_constant = Pattern uintLiteral: 0 -JBurg.Reduction reducer.getUintContent(__p); +@Reduction reducer.getUintContent(__p); -expression = uint_constant : 1 -JBurg.Reduction reducer.transform_uint_constant(__p, uint_constant); +expression = uint_constant: 1 +@Reduction reducer.transform_uint_constant(__p, uint_constant); -expression = boolean_constant : 1 -JBurg.Reduction reducer.transform_boolean_constant(__p, boolean_constant); +expression = boolean_constant: 1 +@Reduction reducer.transform_boolean_constant(__p, boolean_constant); /** @@ -1092,63 +1092,63 @@ JBurg.Reduction reducer.transform_boolean_constant(__p, boolean_constant); */ // Constant-folded arithmetic for all types. -JBurg.include "ConstantArithmetic.jbg" +@include "ConstantArithmetic.jbg" // Constant-folded logic for all types -JBurg.include "ConstantLogic.jbg" +@include "ConstantLogic.jbg" // Error trap for non-constant expressions // used in a context where only a constant is valid, // e.g., foo() in function needsConstantInit(x = foo()). -required_constant_value = expression : ERROR_TRAP -JBurg.Reduction reducer.transform_expression_to_constant_value(__p, expression); +required_constant_value = expression: ERROR_TRAP +@Reduction reducer.transform_expression_to_constant_value(__p, expression); // A name can be used as a constant in some contexts, // e.g., if it's a Namespace or otherwise known to be // a compile-time constant. -constant_value = name : isCompileTimeConstant() -JBurg.Reduction reducer.transform_name_to_constant_value(__p); +constant_value = name: isCompileTimeConstant() +@Reduction reducer.transform_name_to_constant_value(__p); constant_value = Pattern constantDottedName: isCompileTimeConstant() -JBurg.Reduction reducer.transform_name_to_constant_value(__p); +@Reduction reducer.transform_name_to_constant_value(__p); -double_constant = Pattern doubleLiteral : 3 -JBurg.Reduction reducer.getDoubleContent(__p); +double_constant = Pattern doubleLiteral: 3 +@Reduction reducer.getDoubleContent(__p); -integer_constant = LiteralIntegerZeroID(void) : 1 -JBurg.Reduction reducer.getIntegerZeroContent(__p); +integer_constant = LiteralIntegerZeroID(void): 1 +@Reduction reducer.getIntegerZeroContent(__p); -uint_constant = LiteralIntegerZeroID(void) : 1 -JBurg.Reduction reducer.getIntegerZeroContentAsLong(__p); +uint_constant = LiteralIntegerZeroID(void): 1 +@Reduction reducer.getIntegerZeroContentAsLong(__p); -constant_value = Pattern nullLiteral : 0 -JBurg.Reduction reducer.reduce_nullLiteral_to_constant_value (__p); +constant_value = Pattern nullLiteral: 0 +@Reduction reducer.reduce_nullLiteral_to_constant_value (__p); constant_value = Pattern void0Literal: 0 -JBurg.Reduction reducer.reduce_void0Literal_to_constant_value(__p); +@Reduction reducer.reduce_void0Literal_to_constant_value(__p); constant_value = Pattern voidConstant: 0 -JBurg.Reduction reducer.reduce_voidOperator_to_constant_value(__p, value); +@Reduction reducer.reduce_voidOperator_to_constant_value(__p, value); boolean_constant = Pattern booleanLiteral: 0 -JBurg.Reduction reducer.reduce_booleanLiteral(__p); +@Reduction reducer.reduce_booleanLiteral(__p); -string_constant = Pattern stringLiteral : 0 -JBurg.Reduction reducer.getStringLiteralContent (__p); +string_constant = Pattern stringLiteral: 0 +@Reduction reducer.getStringLiteralContent (__p); numeric_constant = integer_constant; numeric_constant = uint_constant; numeric_constant = double_constant; -constant_value = string_constant : 1 -JBurg.Reduction reducer.transform_string_constant_to_constant(__p, string_constant); +constant_value = string_constant: 1 +@Reduction reducer.transform_string_constant_to_constant(__p, string_constant); -constant_value = boolean_constant : 1 -JBurg.Reduction reducer.transform_boolean_constant_to_constant(__p, boolean_constant); +constant_value = boolean_constant: 1 +@Reduction reducer.transform_boolean_constant_to_constant(__p, boolean_constant); -constant_value = numeric_constant : 1 -JBurg.Reduction reducer.transform_numeric_constant_to_constant(__p, numeric_constant); +constant_value = numeric_constant: 1 +@Reduction reducer.transform_numeric_constant_to_constant(__p, numeric_constant); required_constant_value = constant_value; @@ -1156,79 +1156,79 @@ required_constant_value = constant_value; // double failed in LiteralNumberNode.getNodeID(). // It's not likely to work better here, // but the BURM will emit some diagnostics. -double_constant = Pattern numericLiteral : 3 -JBurg.Reduction reducer.getDoubleContent(__p); +double_constant = Pattern numericLiteral: 3 +@Reduction reducer.getDoubleContent(__p); -expression = double_constant : 5 -JBurg.Reduction reducer.transform_double_constant(__p, double_constant); +expression = double_constant: 5 +@Reduction reducer.transform_double_constant(__p, double_constant); -expression = numeric_constant : 5 -JBurg.Reduction reducer.transform_numeric_constant(__p, numeric_constant); +expression = numeric_constant: 5 +@Reduction reducer.transform_numeric_constant(__p, numeric_constant); -expression = constant_value : 0 -JBurg.Reduction reducer.transform_constant_value(__p, constant_value); +expression = constant_value: 0 +@Reduction reducer.transform_constant_value(__p, constant_value); -object_literal = Pattern nullLiteral : 1 -JBurg.Reduction reducer.reduce_nullLiteral_to_object_literal (__p); +object_literal = Pattern nullLiteral: 1 +@Reduction reducer.reduce_nullLiteral_to_object_literal (__p); -object_literal = Pattern objectLiteral : 3 -JBurg.Reduction reducer.reduce_objectLiteral (__p, elements); +object_literal = Pattern objectLiteral: 3 +@Reduction reducer.reduce_objectLiteral (__p, elements); -object_literal_element = Pattern objectLiteralElement : 0 -JBurg.Reduction reducer.reduce_objectLiteralElement (__p, id, value); +object_literal_element = Pattern objectLiteralElement: 0 +@Reduction reducer.reduce_objectLiteralElement (__p, id, value); -non_resolving_identifier = Pattern nonResolvingIdentifier : 0 -JBurg.Reduction reducer.getIdentifierContent(__p); +non_resolving_identifier = Pattern nonResolvingIdentifier: 0 +@Reduction reducer.getIdentifierContent(__p); -expression = non_resolving_identifier : 1 -JBurg.Reduction reducer.transform_non_resolving_identifier(__p, non_resolving_identifier); +expression = non_resolving_identifier: 1 +@Reduction reducer.transform_non_resolving_identifier(__p, non_resolving_identifier); object_literal = Pattern regexLiteral: 5 -JBurg.Reduction reducer.reduce_regexLiteral(__p); +@Reduction reducer.reduce_regexLiteral(__p); object_literal = Pattern void0Literal: 1 -JBurg.Reduction reducer.reduce_void0Literal_to_object_literal(__p); +@Reduction reducer.reduce_void0Literal_to_object_literal(__p); object_literal = Pattern void0Operator: 1 -JBurg.Reduction reducer.reduce_void0Operator(__p); +@Reduction reducer.reduce_void0Operator(__p); -expression = Pattern voidOperator : 1 -JBurg.Reduction reducer.reduce_voidOperator_to_expression (__p, expr); +expression = Pattern voidOperator: 1 +@Reduction reducer.reduce_voidOperator_to_expression (__p, expr); -expression = Pattern voidExpr : 1 -JBurg.Reduction reducer.reduce_voidExpr_to_expression(__p); +expression = Pattern voidExpr: 1 +@Reduction reducer.reduce_voidExpr_to_expression(__p); boolean_literal = boolean_constant: 1 -JBurg.Reduction reducer.transform_boolean_constant(__p, boolean_constant); +@Reduction reducer.transform_boolean_constant(__p, boolean_constant); -array_literal = Pattern arrayLiteral : 1 -JBurg.Reduction reducer.reduce_arrayLiteral (__p, elements); +array_literal = Pattern arrayLiteral: 1 +@Reduction reducer.reduce_arrayLiteral (__p, elements); vector_literal = Pattern vectorLiteral: 1 -JBurg.Reduction reducer.reduce_vectorLiteral(__p, type_param, elements); +@Reduction reducer.reduce_vectorLiteral(__p, type_param, elements); /* * Directives. */ statement = Pattern useNamespaceDirective: 0 -JBurg.Reduction reducer.reduce_useNamespaceDirective(__p, ns_name); +@Reduction reducer.reduce_useNamespaceDirective(__p, ns_name); -import_name = Pattern simpleName : 0 -JBurg.Reduction reducer.createInstructionList(__p); +import_name = Pattern simpleName: 0 +@Reduction reducer.createInstructionList(__p); -import_name = Pattern fullName : 0 -JBurg.Reduction reducer.createInstructionList(__p); +import_name = Pattern fullName: 0 +@Reduction reducer.createInstructionList(__p); statement = Pattern importDirective: 0 -JBurg.Reduction reducer.reduce_importDirective(__p); +@Reduction reducer.reduce_importDirective(__p); /* * MXML constructs */ -function = Pattern mxmlEventSpecifier : 0 -Prologue reducer.prologue_mxmlEventSpecifier(p) -JBurg.Reduction reducer.reduce_mxmlEventSpecifier (__p, stmts); +function = Pattern mxmlEventSpecifier: 0 +@Prologue reducer.prologue_mxmlEventSpecifier(p) +@Reduction reducer.reduce_mxmlEventSpecifier (__p, stmts); // MXML data binding setter expression's @@ -1239,20 +1239,20 @@ JBurg.Reduction reducer.reduce_mxmlEventSpecifier (__p, stmts); // The mxml_data_binding_setter_expression is used // as the goal state when this BURM is invoked from // AbcGenerator.generateMXMLDataBindingSetterFunction. -mxml_data_binding_setter_expression = Pattern memberAccessExpr : 1 -JBurg.Reduction reducer.reduce_memberAccessExpr_to_mxmlDataBindingSetter(__p, stem, member); +mxml_data_binding_setter_expression = Pattern memberAccessExpr: 1 +@Reduction reducer.reduce_memberAccessExpr_to_mxmlDataBindingSetter(__p, stem, member); -mxml_data_binding_setter_expression = Pattern qualifiedMemberAccessExpr : 10 -JBurg.Reduction reducer.reduce_qualifiedMemberAccessExpr_to_mxmlDataBindingSetter(__p, stem, qualifier, member); +mxml_data_binding_setter_expression = Pattern qualifiedMemberAccessExpr: 10 +@Reduction reducer.reduce_qualifiedMemberAccessExpr_to_mxmlDataBindingSetter(__p, stem, qualifier, member); -mxml_data_binding_setter_expression = Pattern qualifiedMemberRuntimeNameExpr : 100 -JBurg.Reduction reducer.reduce_qualifiedMemberRuntimeNameExpr_to_mxmlDataBindingSetter(__p, stem, qualifier, runtime_member); +mxml_data_binding_setter_expression = Pattern qualifiedMemberRuntimeNameExpr: 100 +@Reduction reducer.reduce_qualifiedMemberRuntimeNameExpr_to_mxmlDataBindingSetter(__p, stem, qualifier, runtime_member); -mxml_data_binding_setter_expression = Pattern arrayIndexExpr : 1 -JBurg.Reduction reducer.reduce_arrayIndexExpr_to_mxmlDataBindingSetter(__p, stem, index, false); +mxml_data_binding_setter_expression = Pattern arrayIndexExpr: 1 +@Reduction reducer.reduce_arrayIndexExpr_to_mxmlDataBindingSetter(__p, stem, index, false); -mxml_data_binding_setter_expression = name : 1 -JBurg.Reduction reducer.reduceName_to_mxmlDataBindingSetter(__p, name); +mxml_data_binding_setter_expression = name: 1 +@Reduction reducer.reduceName_to_mxmlDataBindingSetter(__p, name); -mxml_data_binding_setter_expression = runtime_name_expression : 1 -JBurg.Reduction reducer.reduceRuntimeName_to_mxmlDataBindingSetter(__p, runtime_name_expression); +mxml_data_binding_setter_expression = runtime_name_expression: 1 +@Reduction reducer.reduceRuntimeName_to_mxmlDataBindingSetter(__p, runtime_name_expression);
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/a185d7ee/compiler/src/main/jburg/org/apache/flex/compiler/internal/as/codegen/CompoundAssignmentPatterns.jbg ---------------------------------------------------------------------- diff --git a/compiler/src/main/jburg/org/apache/flex/compiler/internal/as/codegen/CompoundAssignmentPatterns.jbg b/compiler/src/main/jburg/org/apache/flex/compiler/internal/as/codegen/CompoundAssignmentPatterns.jbg index 521205c..1f19732 100644 --- a/compiler/src/main/jburg/org/apache/flex/compiler/internal/as/codegen/CompoundAssignmentPatterns.jbg +++ b/compiler/src/main/jburg/org/apache/flex/compiler/internal/as/codegen/CompoundAssignmentPatterns.jbg @@ -18,22 +18,22 @@ //////////////////////////////////////////////////////////////////////////////// // x op= foo -Pattern compoundAssignToName +@Pattern compoundAssignToName Op_COMPOUND_ASSIGN(name operand, expression expr); // x.y op= foo -Pattern compoundAssignToMember +@Pattern compoundAssignToMember Op_COMPOUND_ASSIGN(MemberAccessExpressionID(expression stem, name member), expression expr); // a[i] op= foo -Pattern compoundAssignToBracket +@Pattern compoundAssignToBracket Op_COMPOUND_ASSIGN(ArrayIndexExpressionID(expression stem, expression index), expression expr); // a..y op= foo -Pattern compoundAssignToDescendants +@Pattern compoundAssignToDescendants Op_COMPOUND_ASSIGN(Op_DescendantsID(expression stem, name member), expression expr); // n::x op= foo -Pattern compoundAssignToRuntimeName +@Pattern compoundAssignToRuntimeName Op_COMPOUND_ASSIGN(runtime_name_expression name, expression expr); http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/a185d7ee/compiler/src/main/jburg/org/apache/flex/compiler/internal/as/codegen/CompoundAssignmentRules.jbg ---------------------------------------------------------------------- diff --git a/compiler/src/main/jburg/org/apache/flex/compiler/internal/as/codegen/CompoundAssignmentRules.jbg b/compiler/src/main/jburg/org/apache/flex/compiler/internal/as/codegen/CompoundAssignmentRules.jbg index 0cd819a..a9b1b5c 100644 --- a/compiler/src/main/jburg/org/apache/flex/compiler/internal/as/codegen/CompoundAssignmentRules.jbg +++ b/compiler/src/main/jburg/org/apache/flex/compiler/internal/as/codegen/CompoundAssignmentRules.jbg @@ -18,32 +18,32 @@ //////////////////////////////////////////////////////////////////////////////// void_expression = Pattern compoundAssignToName : 4 -JBurg.Reduction reducer.generateCompoundAssignment(__p, operand, expr, opcode, DISCARD_VALUE); +@Reduction reducer.generateCompoundAssignment(__p, operand, expr, opcode, DISCARD_VALUE); expression = Pattern compoundAssignToName : 4 -JBurg.Reduction reducer.generateCompoundAssignment(__p, operand, expr, opcode, NEED_VALUE); +@Reduction reducer.generateCompoundAssignment(__p, operand, expr, opcode, NEED_VALUE); void_expression = Pattern compoundAssignToMember : 4 -JBurg.Reduction reducer.generateCompoundMemberAssignment(__p, stem, member, expr, OP_getproperty, opcode, DISCARD_VALUE); +@Reduction reducer.generateCompoundMemberAssignment(__p, stem, member, expr, OP_getproperty, opcode, DISCARD_VALUE); expression = Pattern compoundAssignToMember : 4 -JBurg.Reduction reducer.generateCompoundMemberAssignment(__p, stem, member, expr, OP_getproperty, opcode, NEED_VALUE); +@Reduction reducer.generateCompoundMemberAssignment(__p, stem, member, expr, OP_getproperty, opcode, NEED_VALUE); expression = Pattern compoundAssignToBracket : 4 -JBurg.Reduction reducer.generateCompoundBracketAssignment(__p, stem, index, expr, opcode, NEED_VALUE); +@Reduction reducer.generateCompoundBracketAssignment(__p, stem, index, expr, opcode, NEED_VALUE); void_expression = Pattern compoundAssignToBracket : 4 -JBurg.Reduction reducer.generateCompoundBracketAssignment(__p, stem, index, expr, opcode, DISCARD_VALUE); +@Reduction reducer.generateCompoundBracketAssignment(__p, stem, index, expr, opcode, DISCARD_VALUE); void_expression = Pattern compoundAssignToDescendants : 4 -JBurg.Reduction reducer.generateCompoundMemberAssignment(__p, stem, member, expr, OP_getdescendants, opcode, DISCARD_VALUE); +@Reduction reducer.generateCompoundMemberAssignment(__p, stem, member, expr, OP_getdescendants, opcode, DISCARD_VALUE); expression = Pattern compoundAssignToDescendants : 4 -JBurg.Reduction reducer.generateCompoundMemberAssignment(__p, stem, member, expr, OP_getdescendants, opcode, NEED_VALUE); +@Reduction reducer.generateCompoundMemberAssignment(__p, stem, member, expr, OP_getdescendants, opcode, NEED_VALUE); void_expression = Pattern compoundAssignToRuntimeName : 4 -JBurg.Reduction reducer.generateCompoundAssignmentToRuntimeName(__p, name, expr, opcode, DISCARD_VALUE); +@Reduction reducer.generateCompoundAssignmentToRuntimeName(__p, name, expr, opcode, DISCARD_VALUE); expression = Pattern compoundAssignToRuntimeName : 4 -JBurg.Reduction reducer.generateCompoundAssignmentToRuntimeName(__p, name, expr, opcode, NEED_VALUE); +@Reduction reducer.generateCompoundAssignmentToRuntimeName(__p, name, expr, opcode, NEED_VALUE); http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/a185d7ee/compiler/src/main/jburg/org/apache/flex/compiler/internal/as/codegen/CompoundLogicalAssignmentRules.jbg ---------------------------------------------------------------------- diff --git a/compiler/src/main/jburg/org/apache/flex/compiler/internal/as/codegen/CompoundLogicalAssignmentRules.jbg b/compiler/src/main/jburg/org/apache/flex/compiler/internal/as/codegen/CompoundLogicalAssignmentRules.jbg index 510f11c..e9017ec 100644 --- a/compiler/src/main/jburg/org/apache/flex/compiler/internal/as/codegen/CompoundLogicalAssignmentRules.jbg +++ b/compiler/src/main/jburg/org/apache/flex/compiler/internal/as/codegen/CompoundLogicalAssignmentRules.jbg @@ -18,35 +18,35 @@ //////////////////////////////////////////////////////////////////////////////// void_expression = Pattern compoundAssignToName : 4 -JBurg.Reduction reducer.generateCompoundLogicalAssignment(__p, operand, expr, IsAnd, DISCARD_VALUE); +@Reduction reducer.generateCompoundLogicalAssignment(__p, operand, expr, IsAnd, DISCARD_VALUE); expression = Pattern compoundAssignToName : 4 -JBurg.Reduction reducer.generateCompoundLogicalAssignment(__p, operand, expr, IsAnd, NEED_VALUE); +@Reduction reducer.generateCompoundLogicalAssignment(__p, operand, expr, IsAnd, NEED_VALUE); void_expression = Pattern compoundAssignToMember : 4 -JBurg.Reduction reducer.generateCompoundLogicalMemberAssignment(__p, stem, member, expr, OP_getproperty, IsAnd, DISCARD_VALUE); +@Reduction reducer.generateCompoundLogicalMemberAssignment(__p, stem, member, expr, OP_getproperty, IsAnd, DISCARD_VALUE); expression = Pattern compoundAssignToMember : 4 -JBurg.Reduction reducer.generateCompoundLogicalMemberAssignment(__p, stem, member, expr, OP_getproperty, IsAnd, NEED_VALUE); +@Reduction reducer.generateCompoundLogicalMemberAssignment(__p, stem, member, expr, OP_getproperty, IsAnd, NEED_VALUE); expression = Pattern compoundAssignToBracket : 4 -JBurg.Reduction reducer.generateCompoundLogicalBracketAssignment(__p, stem, index, expr, IsAnd, NEED_VALUE); +@Reduction reducer.generateCompoundLogicalBracketAssignment(__p, stem, index, expr, IsAnd, NEED_VALUE); void_expression = Pattern compoundAssignToBracket : 4 -JBurg.Reduction reducer.generateCompoundLogicalBracketAssignment(__p, stem, index, expr, IsAnd, DISCARD_VALUE); +@Reduction reducer.generateCompoundLogicalBracketAssignment(__p, stem, index, expr, IsAnd, DISCARD_VALUE); void_expression = Pattern compoundAssignToDescendants : 4 -JBurg.Reduction reducer.generateCompoundLogicalMemberAssignment(__p, stem, member, expr, OP_getdescendants, IsAnd, DISCARD_VALUE); +@Reduction reducer.generateCompoundLogicalMemberAssignment(__p, stem, member, expr, OP_getdescendants, IsAnd, DISCARD_VALUE); void_expression = Pattern compoundAssignToDescendants : 4 -JBurg.Reduction reducer.generateCompoundLogicalMemberAssignment(__p, stem, member, expr, OP_getdescendants, IsAnd, DISCARD_VALUE); +@Reduction reducer.generateCompoundLogicalMemberAssignment(__p, stem, member, expr, OP_getdescendants, IsAnd, DISCARD_VALUE); expression = Pattern compoundAssignToDescendants : 4 -JBurg.Reduction reducer.generateCompoundLogicalMemberAssignment(__p, stem, member, expr, OP_getdescendants, IsAnd, NEED_VALUE); +@Reduction reducer.generateCompoundLogicalMemberAssignment(__p, stem, member, expr, OP_getdescendants, IsAnd, NEED_VALUE); void_expression = Pattern compoundAssignToRuntimeName : 4 -JBurg.Reduction reducer.generateCompoundLogicalRuntimeNameAssignment(__p, name, expr, IsAnd, DISCARD_VALUE); +@Reduction reducer.generateCompoundLogicalRuntimeNameAssignment(__p, name, expr, IsAnd, DISCARD_VALUE); expression = Pattern compoundAssignToRuntimeName : 4 -JBurg.Reduction reducer.generateCompoundLogicalRuntimeNameAssignment(__p, name, expr, IsAnd, NEED_VALUE); +@Reduction reducer.generateCompoundLogicalRuntimeNameAssignment(__p, name, expr, IsAnd, NEED_VALUE);