X-Git-Url: https://git.saurik.com/cycript.git/blobdiff_plain/0347fadf3028c2a703a8d259850732e2642a5e78..c074e774a5364a868ddde950b37342f89ae936ce:/Cycript.y.in diff --git a/Cycript.y.in b/Cycript.y.in index a77265f..dde7908 100644 --- a/Cycript.y.in +++ b/Cycript.y.in @@ -51,7 +51,7 @@ @end @begin E4X -#include "E4X.hpp" +#include "E4X/Syntax.hpp" @end typedef struct { @@ -103,6 +103,8 @@ typedef struct { @begin E4X CYAttribute *attribute_; + CYPropertyIdentifier *propertyIdentifier_; + CYSelector *selector_; @end }; } YYSTYPE; @@ -151,11 +153,14 @@ int cylex(YYSTYPE *lvalp, cy::location *llocp, void *scanner); %token SlashRight "/>" %token LeftSlash " XML "xml" @end +@begin ObjectiveC +%type AdditiveExpressionNoWC +%type AssigneeExpressionNoWC +%type AssignmentExpressionNoWC +%type BitwiseANDExpressionNoWC +%type BitwiseXORExpressionNoWC +%type BitwiseORExpressionNoWC +%type ConditionalExpressionNoWC +%type EqualityExpressionNoWC +%type LeftHandSideExpressionNoWC +%type LogicalANDExpressionNoWC +%type LogicalORExpressionNoWC +%type MemberExpressionNoWC +%type MultiplicativeExpressionNoWC +%type NewExpressionNoWC +%type PostfixExpressionNoWC +%type RelationalExpressionNoWC +%type ShiftExpressionNoWC +%type UnaryExpressionNoWC +@end + %token Identifier_ %token NumericLiteral %token StringLiteral @@ -309,7 +335,6 @@ int cylex(YYSTYPE *lvalp, cy::location *llocp, void *scanner); %type AdditiveExpression %type AdditiveExpressionNoBF -%type AdditiveExpressionNoWC %type ArgumentList %type ArgumentList_ %type ArgumentListOpt @@ -317,30 +342,27 @@ int cylex(YYSTYPE *lvalp, cy::location *llocp, void *scanner); %type ArrayLiteral %type AssigneeExpression %type AssigneeExpressionNoBF -%type AssigneeExpressionNoWC +%type AssigneeExpressionNoRE %type AssignmentExpression %type AssignmentExpression_ %type AssignmentExpressionNoBF %type AssignmentExpressionNoIn -%type AssignmentExpressionNoWC %type BitwiseANDExpression %type BitwiseANDExpressionNoBF %type BitwiseANDExpressionNoIn -%type BitwiseANDExpressionNoWC %type Block %type Block_ %type BooleanLiteral %type BitwiseORExpression %type BitwiseORExpressionNoBF %type BitwiseORExpressionNoIn -%type BitwiseORExpressionNoWC %type BitwiseXORExpression %type BitwiseXORExpressionNoBF %type BitwiseXORExpressionNoIn -%type BitwiseXORExpressionNoWC %type BreakStatement %type CallExpression %type CallExpressionNoBF +%type CallExpressionNoRE %type CaseBlock %type CaseClause %type CaseClausesOpt @@ -350,7 +372,6 @@ int cylex(YYSTYPE *lvalp, cy::location *llocp, void *scanner); %type ConditionalExpression %type ConditionalExpressionNoBF %type ConditionalExpressionNoIn -%type ConditionalExpressionNoWC %type ContinueStatement %type DefaultClause %type DoWhileStatement @@ -363,7 +384,6 @@ int cylex(YYSTYPE *lvalp, cy::location *llocp, void *scanner); %type EqualityExpression %type EqualityExpressionNoBF %type EqualityExpressionNoIn -%type EqualityExpressionNoWC %type Expression %type ExpressionOpt %type Expression_ @@ -383,7 +403,6 @@ int cylex(YYSTYPE *lvalp, cy::location *llocp, void *scanner); %type FunctionBody %type FunctionDeclaration %type FunctionExpression -%type FunctionExpression_ %type Identifier %type IdentifierOpt %type IfComprehension @@ -396,7 +415,7 @@ int cylex(YYSTYPE *lvalp, cy::location *llocp, void *scanner); %type LabelledStatement %type LeftHandSideExpression %type LeftHandSideExpressionNoBF -%type LeftHandSideExpressionNoWC +%type LeftHandSideExpressionNoRE //%type LetStatement %type Literal %type LiteralNoRE @@ -404,31 +423,29 @@ int cylex(YYSTYPE *lvalp, cy::location *llocp, void *scanner); %type LogicalANDExpression %type LogicalANDExpressionNoBF %type LogicalANDExpressionNoIn -%type LogicalANDExpressionNoWC %type LogicalORExpression %type LogicalORExpressionNoBF %type LogicalORExpressionNoIn -%type LogicalORExpressionNoWC %type MemberAccess %type MemberExpression %type MemberExpression_ %type MemberExpressionNoBF -%type MemberExpressionNoWC +%type MemberExpressionNoRE %type MultiplicativeExpression %type MultiplicativeExpressionNoBF -%type MultiplicativeExpressionNoWC %type NewExpression %type NewExpression_ %type NewExpressionNoBF -%type NewExpressionNoWC +%type NewExpressionNoRE %type NullLiteral %type ObjectLiteral %type PostfixExpression %type PostfixExpressionNoBF -%type PostfixExpressionNoWC +%type PostfixExpressionNoRE %type PrimaryExpression %type PrimaryExpressionNo %type PrimaryExpressionNoBF +%type PrimaryExpressionNoRE %type PrimaryExpressionNoWC %type PrimaryExpressionNoWC_ @begin E4X @@ -437,6 +454,7 @@ int cylex(YYSTYPE *lvalp, cy::location *llocp, void *scanner); %type PrimaryExpressionBF %type Program %type PropertyName +%type PropertyName_ %type PropertyNameAndValueList %type PropertyNameAndValueList_ %type PropertyNameAndValueListOpt @@ -444,12 +462,10 @@ int cylex(YYSTYPE *lvalp, cy::location *llocp, void *scanner); %type RelationalExpression_ %type RelationalExpressionNoBF %type RelationalExpressionNoIn -%type RelationalExpressionNoWC %type RelationalExpressionNoIn_ %type ReturnStatement %type ShiftExpression %type ShiftExpressionNoBF -%type ShiftExpressionNoWC %type SourceElement %type SourceElement_ %type SourceElements @@ -464,7 +480,7 @@ int cylex(YYSTYPE *lvalp, cy::location *llocp, void *scanner); %type UnaryExpression %type UnaryExpression_ %type UnaryExpressionNoBF -%type UnaryExpressionNoWC +%type UnaryExpressionNoRE %type VariableDeclaration %type VariableDeclarationNoIn %type VariableDeclarationList @@ -504,9 +520,9 @@ int cylex(YYSTYPE *lvalp, cy::location *llocp, void *scanner); @end @begin E4X -%type PropertyIdentifier_ -%type PropertySelector -%type PropertySelector_ +%type PropertyIdentifier_ +%type PropertySelector +%type PropertySelector_ %type QualifiedIdentifier %type QualifiedIdentifier_ %type WildcardIdentifier @@ -518,13 +534,22 @@ int cylex(YYSTYPE *lvalp, cy::location *llocp, void *scanner); %type XMLPI %type AttributeIdentifier -%type DefaultXMLNamespaceStatement +/* XXX: %type DefaultXMLNamespaceStatement */ %type PropertyIdentifier %type XMLListInitialiser %type XMLInitialiser @end -/* +%token WC + +%nonassoc Identifier_ "abstract" "boolean" "break" "byte" "case" "catch" "char" "class" "const" "continue" "debugger" "default" "delete" "do" "double" "each" "enum" "export" "extends" "false" "final" "finally" "float" /*"for"*/ "function" "goto" "implements" "import" /*"in"*/ /*"instanceof"*/ "int" "interface" "let" "long" "namespace" "native" "new" "null" "package" "private" "protected" "public" "return" "short" "super" "static" "switch" "synchronized" "this" "throw" "throws" "transient" "true" "try" "typeof" "var" "void" "volatile" "while" "with" "xml" "yield" + +%nonassoc "if" +%nonassoc "else" + +%nonassoc "++" "--" +%nonassoc "(" "[" + %left "*" "/" "%" %left "+" "-" %left "<<" ">>" ">>>" @@ -537,10 +562,6 @@ int cylex(YYSTYPE *lvalp, cy::location *llocp, void *scanner); %left "||" %right "=" "*=" "/=" "%=" "+=" "-=" "<<=" ">>=" ">>>=" "&=" "^=" "|=" -*/ - -%nonassoc "if" -%nonassoc "else" %start Program @@ -672,6 +693,7 @@ LiteralNoRE | BooleanLiteral { $$ = $1; } | NumericLiteral { $$ = $1; } | StringLiteral { $$ = $1; } + | "@" StringLiteral { $$ = $2; } ; LiteralRE @@ -707,6 +729,13 @@ PrimaryExpressionNoBF @end ; +PrimaryExpressionNoRE + : PrimaryExpressionNoWC_ { $$ = $1; } +@begin E4X + | PrimaryExpressionWC { $$ = $1; } +@end + ; + PrimaryExpressionNoWC_ : PrimaryExpressionBF { $$ = $1; } | PrimaryExpressionNo { $$ = $1; } @@ -771,11 +800,15 @@ PropertyNameAndValueList : PropertyName ":" AssignmentExpression PropertyNameAndValueList_ { $$ = new(driver.pool_) CYProperty($1, $3, $4); } ; -PropertyName +PropertyName_ : Identifier { $$ = $1; } | StringLiteral { $$ = $1; } | NumericLiteral { $$ = $1; } ; + +PropertyName + : LexSetRegExp PropertyName_ { $$ = $2; } + ; /* }}} */ /* 11.2 Left-Hand-Side Expressions {{{ */ @@ -790,7 +823,7 @@ MemberAccess MemberExpression : PrimaryExpression { $$ = $1; } - | FunctionExpression { $$ = $1; } + | LexSetRegExp FunctionExpression { $$ = $2; } | MemberExpression MemberAccess { $2->SetLeft($1); $$ = $2; } | LexSetRegExp MemberExpression_ { $$ = $2; } ; @@ -801,12 +834,21 @@ MemberExpressionNoBF | MemberExpression_ { $$ = $1; } ; -MemberExpressionNoWC - : PrimaryExpressionNoWC { $$ = $1; } +MemberExpressionNoRE + : PrimaryExpressionNoRE { $$ = $1; } | FunctionExpression { $$ = $1; } + | MemberExpressionNoRE MemberAccess { $2->SetLeft($1); $$ = $2; } + | MemberExpression_ { $$ = $1; } + ; + +@begin ObjectiveC +MemberExpressionNoWC + : PrimaryExpression { $$ = $1; } + | LexSetRegExp FunctionExpression { $$ = $2; } | MemberExpression MemberAccess { $2->SetLeft($1); $$ = $2; } | LexSetRegExp MemberExpression_ { $$ = $2; } ; +@end NewExpression_ : "new" NewExpression { $$ = new(driver.pool_) CYNew($2, NULL); } @@ -822,10 +864,17 @@ NewExpressionNoBF | NewExpression_ { $$ = $1; } ; +NewExpressionNoRE + : MemberExpressionNoRE { $$ = $1; } + | NewExpression_ { $$ = $1; } + ; + +@begin ObjectiveC NewExpressionNoWC : MemberExpressionNoWC { $$ = $1; } | LexSetRegExp NewExpression_ { $$ = $2; } ; +@end CallExpression : PrimaryExpressionNoWC Arguments { $$ = new(driver.pool_) CYCall($1, $2); } @@ -839,6 +888,12 @@ CallExpressionNoBF | CallExpressionNoBF MemberAccess { $2->SetLeft($1); $$ = $2; } ; +CallExpressionNoRE + : PrimaryExpressionNoRE Arguments { $$ = new(driver.pool_) CYCall($1, $2); } + | CallExpressionNoRE Arguments { $$ = new(driver.pool_) CYCall($1, $2); } + | CallExpressionNoRE MemberAccess { $2->SetLeft($1); $$ = $2; } + ; + ArgumentList_ : "," ArgumentList { $$ = $2; } | { $$ = NULL; } @@ -867,10 +922,17 @@ LeftHandSideExpressionNoBF | CallExpressionNoBF { $$ = $1; } ; +LeftHandSideExpressionNoRE + : NewExpressionNoRE { $$ = $1; } + | CallExpressionNoRE { $$ = $1; } + ; + +@begin ObjectiveC LeftHandSideExpressionNoWC : NewExpressionNoWC { $$ = $1; } | CallExpression { $$ = $1; } ; +@end /* }}} */ /* 11.3 Postfix Expressions {{{ */ PostfixExpression @@ -885,11 +947,19 @@ PostfixExpressionNoBF | LeftHandSideExpressionNoBF "--" { $$ = new(driver.pool_) CYPostDecrement($1); } ; +PostfixExpressionNoRE + : AssigneeExpressionNoRE { $$ = $1; } + | LeftHandSideExpressionNoRE "++" { $$ = new(driver.pool_) CYPostIncrement($1); } + | LeftHandSideExpressionNoRE "--" { $$ = new(driver.pool_) CYPostDecrement($1); } + ; + +@begin ObjectiveC PostfixExpressionNoWC : AssigneeExpressionNoWC { $$ = $1; } | LeftHandSideExpression "++" { $$ = new(driver.pool_) CYPostIncrement($1); } | LeftHandSideExpression "--" { $$ = new(driver.pool_) CYPostDecrement($1); } ; +@end /* }}} */ /* 11.4 Unary Operators {{{ */ UnaryExpression_ @@ -916,10 +986,17 @@ UnaryExpressionNoBF | UnaryExpression_ { $$ = $1; } ; +UnaryExpressionNoRE + : PostfixExpressionNoRE { $$ = $1; } + | UnaryExpression_ { $$ = $1; } + ; + +@begin ObjectiveC UnaryExpressionNoWC : PostfixExpressionNoWC { $$ = $1; } | LexSetRegExp UnaryExpression_ { $$ = $2; } ; +@end /* }}} */ /* 11.5 Multiplicative Operators {{{ */ MultiplicativeExpression @@ -936,12 +1013,14 @@ MultiplicativeExpressionNoBF | MultiplicativeExpressionNoBF "%" UnaryExpression { $$ = new(driver.pool_) CYModulus($1, $3); } ; +@begin ObjectiveC MultiplicativeExpressionNoWC : UnaryExpressionNoWC { $$ = $1; } | MultiplicativeExpression "*" UnaryExpression { $$ = new(driver.pool_) CYMultiply($1, $3); } | MultiplicativeExpression "/" UnaryExpression { $$ = new(driver.pool_) CYDivide($1, $3); } | MultiplicativeExpression "%" UnaryExpression { $$ = new(driver.pool_) CYModulus($1, $3); } ; +@end /* }}} */ /* 11.6 Additive Operators {{{ */ AdditiveExpression @@ -956,11 +1035,13 @@ AdditiveExpressionNoBF | AdditiveExpressionNoBF "-" MultiplicativeExpression { $$ = new(driver.pool_) CYSubtract($1, $3); } ; +@begin ObjectiveC AdditiveExpressionNoWC - : MultiplicativeExpressionNoWC{ $$ = $1; } + : MultiplicativeExpressionNoWC { $$ = $1; } | AdditiveExpression "+" MultiplicativeExpression { $$ = new(driver.pool_) CYAdd($1, $3); } | AdditiveExpression "-" MultiplicativeExpression { $$ = new(driver.pool_) CYSubtract($1, $3); } ; +@end /* }}} */ /* 11.7 Bitwise Shift Operators {{{ */ ShiftExpression @@ -977,12 +1058,14 @@ ShiftExpressionNoBF | ShiftExpressionNoBF ">>>" AdditiveExpression { $$ = new(driver.pool_) CYShiftRightUnsigned($1, $3); } ; +@begin ObjectiveC ShiftExpressionNoWC : AdditiveExpressionNoWC { $$ = $1; } | ShiftExpression "<<" AdditiveExpression { $$ = new(driver.pool_) CYShiftLeft($1, $3); } | ShiftExpression ">>" AdditiveExpression { $$ = new(driver.pool_) CYShiftRightSigned($1, $3); } | ShiftExpression ">>>" AdditiveExpression { $$ = new(driver.pool_) CYShiftRightUnsigned($1, $3); } ; +@end /* }}} */ /* 11.8 Relational Operators {{{ */ RelationalExpressionNoIn_ @@ -1013,10 +1096,12 @@ RelationalExpressionNoBF | RelationalExpressionNoBF RelationalExpression_ { $2->SetLeft($1); $$ = $2; } ; +@begin ObjectiveC RelationalExpressionNoWC : ShiftExpressionNoWC { $$ = $1; } | RelationalExpression RelationalExpression_ { $2->SetLeft($1); $$ = $2; } ; +@end /* }}} */ /* 11.9 Equality Operators {{{ */ EqualityExpression @@ -1043,6 +1128,7 @@ EqualityExpressionNoBF | EqualityExpressionNoBF "!==" RelationalExpression { $$ = new(driver.pool_) CYNotIdentical($1, $3); } ; +@begin ObjectiveC EqualityExpressionNoWC : RelationalExpressionNoWC { $$ = $1; } | EqualityExpression "==" RelationalExpression { $$ = new(driver.pool_) CYEqual($1, $3); } @@ -1050,6 +1136,7 @@ EqualityExpressionNoWC | EqualityExpression "===" RelationalExpression { $$ = new(driver.pool_) CYIdentical($1, $3); } | EqualityExpression "!==" RelationalExpression { $$ = new(driver.pool_) CYNotIdentical($1, $3); } ; +@end /* }}} */ /* 11.10 Binary Bitwise Operators {{{ */ BitwiseANDExpression @@ -1067,10 +1154,12 @@ BitwiseANDExpressionNoBF | BitwiseANDExpressionNoBF "&" EqualityExpression { $$ = new(driver.pool_) CYBitwiseAnd($1, $3); } ; +@begin ObjectiveC BitwiseANDExpressionNoWC : EqualityExpressionNoWC { $$ = $1; } | BitwiseANDExpression "&" EqualityExpression { $$ = new(driver.pool_) CYBitwiseAnd($1, $3); } ; +@end BitwiseXORExpression : BitwiseANDExpression { $$ = $1; } @@ -1087,10 +1176,12 @@ BitwiseXORExpressionNoBF | BitwiseXORExpressionNoBF "^" BitwiseANDExpression { $$ = new(driver.pool_) CYBitwiseXOr($1, $3); } ; +@begin ObjectiveC BitwiseXORExpressionNoWC : BitwiseANDExpressionNoWC { $$ = $1; } | BitwiseXORExpression "^" BitwiseANDExpression { $$ = new(driver.pool_) CYBitwiseXOr($1, $3); } ; +@end BitwiseORExpression : BitwiseXORExpression { $$ = $1; } @@ -1107,10 +1198,12 @@ BitwiseORExpressionNoBF | BitwiseORExpressionNoBF "|" BitwiseXORExpression { $$ = new(driver.pool_) CYBitwiseOr($1, $3); } ; +@begin ObjectiveC BitwiseORExpressionNoWC : BitwiseXORExpressionNoWC { $$ = $1; } | BitwiseORExpression "|" BitwiseXORExpression { $$ = new(driver.pool_) CYBitwiseOr($1, $3); } ; +@end /* }}} */ /* 11.11 Binary Logical Operators {{{ */ LogicalANDExpression @@ -1128,10 +1221,12 @@ LogicalANDExpressionNoBF | LogicalANDExpressionNoBF "&&" BitwiseORExpression { $$ = new(driver.pool_) CYLogicalAnd($1, $3); } ; +@begin ObjectiveC LogicalANDExpressionNoWC : BitwiseORExpressionNoWC { $$ = $1; } | LogicalANDExpression "&&" BitwiseORExpression { $$ = new(driver.pool_) CYLogicalAnd($1, $3); } ; +@end LogicalORExpression : LogicalANDExpression { $$ = $1; } @@ -1148,10 +1243,12 @@ LogicalORExpressionNoBF | LogicalORExpressionNoBF "||" LogicalANDExpression { $$ = new(driver.pool_) CYLogicalOr($1, $3); } ; +@begin ObjectiveC LogicalORExpressionNoWC : LogicalANDExpressionNoWC { $$ = $1; } | LogicalORExpression "||" LogicalANDExpression { $$ = new(driver.pool_) CYLogicalOr($1, $3); } ; +@end /* }}} */ /* 11.12 Conditional Operator ( ? : ) {{{ */ ConditionalExpression @@ -1169,10 +1266,12 @@ ConditionalExpressionNoBF | LogicalORExpressionNoBF "?" AssignmentExpression ":" AssignmentExpression { $$ = new(driver.pool_) CYCondition($1, $3, $5); } ; +@begin ObjectiveC ConditionalExpressionNoWC : LogicalORExpressionNoWC { $$ = $1; } | LogicalORExpression "?" AssignmentExpression ":" AssignmentExpression { $$ = new(driver.pool_) CYCondition($1, $3, $5); } ; +@end /* }}} */ /* 11.13 Assignment Operators {{{ */ AssignmentExpression_ @@ -1200,10 +1299,17 @@ AssigneeExpressionNoBF | UnaryAssigneeExpression { $$ = $1; } ; +AssigneeExpressionNoRE + : LeftHandSideExpressionNoRE { $$ = $1; } + | UnaryAssigneeExpression { $$ = $1; } + ; + +@begin ObjectiveC AssigneeExpressionNoWC : LeftHandSideExpressionNoWC { $$ = $1; } | LexSetRegExp UnaryAssigneeExpression { $$ = $2; } ; +@end AssignmentExpression : ConditionalExpression { $$ = $1; } @@ -1231,10 +1337,12 @@ AssignmentExpressionNoBF | AssigneeExpressionNoBF AssignmentExpression_ { $2->SetLeft($1); $$ = $2; } ; +@begin ObjectiveC AssignmentExpressionNoWC : ConditionalExpressionNoWC { $$ = $1; } | AssigneeExpression AssignmentExpression_ { $2->SetLeft($1); $$ = $2; } ; +@end /* }}} */ /* 11.14 Comma Operator {{{ */ Expression_ @@ -1494,12 +1602,8 @@ FunctionDeclaration : "function" Identifier "(" FormalParameterList ")" "{" FunctionBody "}" { $$ = new(driver.pool_) CYFunctionStatement($2, $4, $7); } ; -FunctionExpression_ - : "function" IdentifierOpt "(" FormalParameterList ")" "{" FunctionBody "}" { $$ = new(driver.pool_) CYFunctionExpression($2, $4, $7); } - ; - FunctionExpression - : LexSetRegExp FunctionExpression_ { $$ = $2; } + : "function" IdentifierOpt "(" FormalParameterList ")" "{" FunctionBody "}" { $$ = new(driver.pool_) CYFunctionExpression($2, $4, $7); } ; FormalParameterList_ @@ -1665,7 +1769,7 @@ PrimaryExpressionNo @begin C /* Cycript (C): Pointer Indirection/Addressing {{{ */ UnaryAssigneeExpression - : "*" UnaryExpression { $$ = new(driver.pool_) CYIndirect($2); } + : "*" UnaryExpressionNoRE { $$ = new(driver.pool_) CYIndirect($2); } ; UnaryExpression_ @@ -1726,7 +1830,7 @@ XMLMarkup /* }}} */ /* 11.1 Primary Expressions {{{ */ PrimaryExpressionWC - : PropertyIdentifier { $$ = $1; } + : PropertyIdentifier { $$ = new(driver.pool_) CYPropertyVariable($1); } | XMLInitialiser { $$ = $1; } | XMLListInitialiser { $$ = $1; } ; @@ -1743,23 +1847,23 @@ AttributeIdentifier ; PropertySelector_ - : PropertySelector - | "[" Expression "]" + : PropertySelector { $$ = $1; } + | "[" Expression "]" { $$ = new(driver.pool_) CYSelector($2); } ; PropertySelector - : Identifier { $$ = $1; } + : Identifier { $$ = new(driver.pool_) CYSelector($1); } | WildcardIdentifier { $$ = $1; } ; /* }}} */ /* 11.1.2 Qualified Identifiers {{{ */ QualifiedIdentifier_ - : PropertySelector_ { $$ = $1; } + : PropertySelector_ { $$ = new(driver.pool_) CYQualified(NULL, $1); } | QualifiedIdentifier { $$ = $1; } ; QualifiedIdentifier - : PropertySelector "::" PropertySelector_ { $$ = new(driver.pool_) CYQName($1, $3); } + : PropertySelector "::" PropertySelector_ { $$ = new(driver.pool_) CYQualified($1, $3); } ; /* }}} */ /* 11.1.3 Wildcard Identifiers {{{ */ @@ -1840,13 +1944,13 @@ MemberAccess ; /* }}} */ /* 12.1 The default xml namespace Statement {{{ */ -DefaultXMLNamespaceStatement +/* XXX: DefaultXMLNamespaceStatement : "default" "xml" "namespace" "=" Expression Terminator { $$ = new(driver.pool_) CYDefaultXMLNamespace($5); } ; Statement_ : DefaultXMLNamespaceStatement { $$ = $1; } - ; + ; */ /* }}} */ @end