0001: //
0002: // Generated by JTB 1.2.1
0003: //
0004:
0005: package oscript.visitor;
0006:
0007: import oscript.syntaxtree.*;
0008: import java.util.*;
0009:
0010: /**
0011: * Provides default methods which visit each node in the tree in depth-first
0012: * order. Your visitors may extend this class.
0013: */
0014: public class ObjectDepthFirst implements ObjectVisitor {
0015: //
0016: // Auto class visitors--probably don't need to be overridden.
0017: //
0018: public Object visit(NodeList n, Object argu) {
0019: Object _ret = null;
0020: int _count = 0;
0021: for (Enumeration e = n.elements(); e.hasMoreElements();) {
0022: ((Node) e.nextElement()).accept(this , argu);
0023: _count++;
0024: }
0025: return _ret;
0026: }
0027:
0028: public Object visit(NodeListOptional n, Object argu) {
0029: if (n.present()) {
0030: Object _ret = null;
0031: int _count = 0;
0032: for (Enumeration e = n.elements(); e.hasMoreElements();) {
0033: ((Node) e.nextElement()).accept(this , argu);
0034: _count++;
0035: }
0036: return _ret;
0037: } else
0038: return null;
0039: }
0040:
0041: public Object visit(NodeOptional n, Object argu) {
0042: if (n.present())
0043: return n.node.accept(this , argu);
0044: else
0045: return null;
0046: }
0047:
0048: public Object visit(NodeSequence n, Object argu) {
0049: Object _ret = null;
0050: int _count = 0;
0051: for (Enumeration e = n.elements(); e.hasMoreElements();) {
0052: ((Node) e.nextElement()).accept(this , argu);
0053: _count++;
0054: }
0055: return _ret;
0056: }
0057:
0058: public Object visit(NodeToken n, Object argu) {
0059: return null;
0060: }
0061:
0062: //
0063: // User-generated visitor methods below
0064: //
0065:
0066: /**
0067: * <PRE>
0068: * f0 -> ( <UNIX_SELF_EXECUTABLE_COMMENT> )?
0069: * f1 -> Program(false)
0070: * f2 -> <EOF>
0071: * </PRE>
0072: */
0073: public Object visit(ProgramFile n, Object argu) {
0074: Object _ret = null;
0075: n.f0.accept(this , argu);
0076: n.f1.accept(this , argu);
0077: n.f2.accept(this , argu);
0078: return _ret;
0079: }
0080:
0081: /**
0082: * <PRE>
0083: * f0 -> ( EvaluationUnit() )*
0084: * </PRE>
0085: */
0086: public Object visit(Program n, Object argu) {
0087: Object _ret = null;
0088: n.f0.accept(this , argu);
0089: return _ret;
0090: }
0091:
0092: /**
0093: * <PRE>
0094: * f0 -> ScopeBlock()
0095: * | VariableDeclarationBlock()
0096: * | FunctionDeclaration()
0097: * | TryStatement()
0098: * | ForLoopStatement()
0099: * | CollectionForLoopStatement()
0100: * | WhileLoopStatement()
0101: * | ConditionalStatement()
0102: * | SynchronizedStatement()
0103: * | ReturnStatement()
0104: * | BreakStatement()
0105: * | ContinueStatement()
0106: * | ExpressionBlock()
0107: * | ThrowBlock()
0108: * | ImportBlock()
0109: * | MixinBlock()
0110: * | EvalBlock()
0111: * </PRE>
0112: */
0113: public Object visit(EvaluationUnit n, Object argu) {
0114: Object _ret = null;
0115: n.f0.accept(this , argu);
0116: return _ret;
0117: }
0118:
0119: /**
0120: * <PRE>
0121: * f0 -> "{"
0122: * f1 -> Program(false)
0123: * f2 -> "}"
0124: * </PRE>
0125: */
0126: public Object visit(ScopeBlock n, Object argu) {
0127: Object _ret = null;
0128: n.f0.accept(this , argu);
0129: n.f1.accept(this , argu);
0130: n.f2.accept(this , argu);
0131: return _ret;
0132: }
0133:
0134: /**
0135: * <PRE>
0136: * f0 -> VariableDeclaration()
0137: * f1 -> ";"
0138: * </PRE>
0139: */
0140: public Object visit(VariableDeclarationBlock n, Object argu) {
0141: Object _ret = null;
0142: n.f0.accept(this , argu);
0143: n.f1.accept(this , argu);
0144: return _ret;
0145: }
0146:
0147: /**
0148: * <PRE>
0149: * f0 -> Expression()
0150: * f1 -> ";"
0151: * </PRE>
0152: */
0153: public Object visit(ExpressionBlock n, Object argu) {
0154: Object _ret = null;
0155: n.f0.accept(this , argu);
0156: n.f1.accept(this , argu);
0157: return _ret;
0158: }
0159:
0160: /**
0161: * <PRE>
0162: * f0 -> "throw"
0163: * f1 -> Expression()
0164: * f2 -> ";"
0165: * </PRE>
0166: */
0167: public Object visit(ThrowBlock n, Object argu) {
0168: Object _ret = null;
0169: n.f0.accept(this , argu);
0170: n.f1.accept(this , argu);
0171: n.f2.accept(this , argu);
0172: return _ret;
0173: }
0174:
0175: /**
0176: * <PRE>
0177:
0178: * f0 -> "import"
0179: * f1 -> Expression()
0180: * f2 -> ";"
0181: * </PRE>
0182: */
0183: public Object visit(ImportBlock n, Object argu) {
0184: Object _ret = null;
0185: n.f0.accept(this , argu);
0186: n.f1.accept(this , argu);
0187: n.f2.accept(this , argu);
0188: return _ret;
0189: }
0190:
0191: /**
0192: * <PRE>
0193:
0194: * f0 -> "mixin"
0195: * f1 -> Expression()
0196: * f2 -> ";"
0197: * </PRE>
0198: */
0199: public Object visit(MixinBlock n, Object argu) {
0200: Object _ret = null;
0201: n.f0.accept(this , argu);
0202: n.f1.accept(this , argu);
0203: n.f2.accept(this , argu);
0204: return _ret;
0205: }
0206:
0207: /**
0208: * <PRE>
0209:
0210: * f0 -> "eval"
0211: * f1 -> Expression()
0212: * f2 -> ";"
0213: * </PRE>
0214: */
0215: public Object visit(EvalBlock n, Object argu) {
0216: Object _ret = null;
0217: n.f0.accept(this , argu);
0218: n.f1.accept(this , argu);
0219: n.f2.accept(this , argu);
0220: return _ret;
0221: }
0222:
0223: /**
0224: * <PRE>
0225:
0226: * f0 -> Permissions(true)
0227: * f1 -> "var"
0228: * f2 -> <IDENTIFIER>
0229: * f3 -> ( "=" Expression() )?
0230: * </PRE>
0231: */
0232: public Object visit(VariableDeclaration n, Object argu) {
0233: Object _ret = null;
0234: n.f0.accept(this , argu);
0235: n.f1.accept(this , argu);
0236: n.f2.accept(this , argu);
0237: n.f3.accept(this , argu);
0238: return _ret;
0239: }
0240:
0241: /**
0242: * <PRE>
0243:
0244: * f0 -> Permissions(true)
0245: * f1 -> "function"
0246: * f2 -> <IDENTIFIER>
0247: * f3 -> "("
0248: * f4 -> ( Arglist() )?
0249: * f5 -> ")"
0250: * f6 -> ( "extends" PrimaryExpressionWithTrailingFxnCallExpList() FunctionCallExpressionList() )?
0251: * f7 -> "{"
0252: * f8 -> Program(true)
0253: * f9 -> "}"
0254: * </PRE>
0255: */
0256: public Object visit(FunctionDeclaration n, Object argu) {
0257: Object _ret = null;
0258: n.f0.accept(this , argu);
0259: n.f1.accept(this , argu);
0260: n.f2.accept(this , argu);
0261: n.f3.accept(this , argu);
0262: n.f4.accept(this , argu);
0263: n.f5.accept(this , argu);
0264: n.f6.accept(this , argu);
0265: n.f7.accept(this , argu);
0266: n.f8.accept(this , argu);
0267: n.f9.accept(this , argu);
0268: return _ret;
0269: }
0270:
0271: /**
0272: * <PRE>
0273: * f0 -> Permissions(false)
0274: * f1 -> <IDENTIFIER>
0275: * f2 -> ( "," Permissions(false) <IDENTIFIER> )*
0276: * f3 -> ( "..." )?
0277: * </PRE>
0278: */
0279: public Object visit(Arglist n, Object argu) {
0280: Object _ret = null;
0281: n.f0.accept(this , argu);
0282: n.f1.accept(this , argu);
0283: n.f2.accept(this , argu);
0284: n.f3.accept(this , argu);
0285: return _ret;
0286: }
0287:
0288: /**
0289: * <PRE>
0290: * f0 -> "try"
0291: * f1 -> EvaluationUnit()
0292: * f2 -> ( "catch" "(" Expression() <IDENTIFIER> ")" EvaluationUnit() )*
0293: * f3 -> ( "catch" "(" <IDENTIFIER> ")" EvaluationUnit() )?
0294: * f4 -> ( "finally" EvaluationUnit() )?
0295: * </PRE>
0296: */
0297: public Object visit(TryStatement n, Object argu) {
0298: Object _ret = null;
0299: n.f0.accept(this , argu);
0300: n.f1.accept(this , argu);
0301: n.f2.accept(this , argu);
0302: n.f3.accept(this , argu);
0303: n.f4.accept(this , argu);
0304: return _ret;
0305: }
0306:
0307: /**
0308: * <PRE>
0309:
0310: * f0 -> "for"
0311: * f1 -> "("
0312: * f2 -> ( PreLoopStatement() )?
0313: * f3 -> ";"
0314: * f4 -> ( Expression() )?
0315: * f5 -> ";"
0316: * f6 -> ( Expression() )?
0317: * f7 -> ")"
0318: * f8 -> EvaluationUnit()
0319: * </PRE>
0320: */
0321: public Object visit(ForLoopStatement n, Object argu) {
0322: Object _ret = null;
0323: n.f0.accept(this , argu);
0324: n.f1.accept(this , argu);
0325: n.f2.accept(this , argu);
0326: n.f3.accept(this , argu);
0327: n.f4.accept(this , argu);
0328: n.f5.accept(this , argu);
0329: n.f6.accept(this , argu);
0330: n.f7.accept(this , argu);
0331: n.f8.accept(this , argu);
0332: return _ret;
0333: }
0334:
0335: /**
0336: * <PRE>
0337:
0338: * f0 -> "for"
0339: * f1 -> "("
0340: * f2 -> PreLoopStatement()
0341: * f3 -> ":"
0342: * f4 -> Expression()
0343: * f5 -> ")"
0344: * f6 -> EvaluationUnit()
0345: * </PRE>
0346: */
0347: public Object visit(CollectionForLoopStatement n, Object argu) {
0348: Object _ret = null;
0349: n.f0.accept(this , argu);
0350: n.f1.accept(this , argu);
0351: n.f2.accept(this , argu);
0352: n.f3.accept(this , argu);
0353: n.f4.accept(this , argu);
0354: n.f5.accept(this , argu);
0355: n.f6.accept(this , argu);
0356: return _ret;
0357: }
0358:
0359: /**
0360: * <PRE>
0361: * f0 -> VariableDeclaration()
0362: * | Expression()
0363: * </PRE>
0364: */
0365: public Object visit(PreLoopStatement n, Object argu) {
0366: Object _ret = null;
0367: n.f0.accept(this , argu);
0368: return _ret;
0369: }
0370:
0371: /**
0372: * <PRE>
0373: * f0 -> "while"
0374: * f1 -> "("
0375: * f2 -> Expression()
0376: * f3 -> ")"
0377: * f4 -> EvaluationUnit()
0378: * </PRE>
0379: */
0380: public Object visit(WhileLoopStatement n, Object argu) {
0381: Object _ret = null;
0382: n.f0.accept(this , argu);
0383: n.f1.accept(this , argu);
0384: n.f2.accept(this , argu);
0385: n.f3.accept(this , argu);
0386: n.f4.accept(this , argu);
0387: return _ret;
0388: }
0389:
0390: /**
0391: * <PRE>
0392: * f0 -> "if"
0393: * f1 -> "("
0394: * f2 -> Expression()
0395: * f3 -> ")"
0396: * f4 -> EvaluationUnit()
0397: * f5 -> ( "else" EvaluationUnit() )?
0398: * </PRE>
0399: */
0400: public Object visit(ConditionalStatement n, Object argu) {
0401: Object _ret = null;
0402: n.f0.accept(this , argu);
0403: n.f1.accept(this , argu);
0404: n.f2.accept(this , argu);
0405: n.f3.accept(this , argu);
0406: n.f4.accept(this , argu);
0407: n.f5.accept(this , argu);
0408: return _ret;
0409: }
0410:
0411: /**
0412: * <PRE>
0413: * f0 -> "synchronized"
0414: * f1 -> "("
0415: * f2 -> Expression()
0416: * f3 -> ")"
0417: * f4 -> EvaluationUnit()
0418: * </PRE>
0419: */
0420: public Object visit(SynchronizedStatement n, Object argu) {
0421: Object _ret = null;
0422: n.f0.accept(this , argu);
0423: n.f1.accept(this , argu);
0424: n.f2.accept(this , argu);
0425: n.f3.accept(this , argu);
0426: n.f4.accept(this , argu);
0427: return _ret;
0428: }
0429:
0430: /**
0431: * <PRE>
0432: * f0 -> "return"
0433: * f1 -> ( Expression() )?
0434: * f2 -> ";"
0435: * </PRE>
0436: */
0437: public Object visit(ReturnStatement n, Object argu) {
0438: Object _ret = null;
0439: n.f0.accept(this , argu);
0440: n.f1.accept(this , argu);
0441: n.f2.accept(this , argu);
0442: return _ret;
0443: }
0444:
0445: /**
0446: * <PRE>
0447: * f0 -> "break"
0448: * f1 -> ";"
0449: * </PRE>
0450: */
0451: public Object visit(BreakStatement n, Object argu) {
0452: Object _ret = null;
0453: n.f0.accept(this , argu);
0454: n.f1.accept(this , argu);
0455: return _ret;
0456: }
0457:
0458: /**
0459: * <PRE>
0460: * f0 -> "continue"
0461: * f1 -> ";"
0462: * </PRE>
0463: */
0464: public Object visit(ContinueStatement n, Object argu) {
0465: Object _ret = null;
0466: n.f0.accept(this , argu);
0467: n.f1.accept(this , argu);
0468: return _ret;
0469: }
0470:
0471: /**
0472: * <PRE>
0473: * f0 -> AssignmentExpression()
0474: * f1 -> ( "," AssignmentExpression() )*
0475: * </PRE>
0476: */
0477: public Object visit(Expression n, Object argu) {
0478: Object _ret = null;
0479: n.f0.accept(this , argu);
0480: n.f1.accept(this , argu);
0481: return _ret;
0482: }
0483:
0484: /**
0485: * <PRE>
0486: * f0 -> "("
0487: * f1 -> ( FunctionCallExpressionListBody() )?
0488: * f2 -> ")"
0489: * </PRE>
0490: */
0491: public Object visit(FunctionCallExpressionList n, Object argu) {
0492: Object _ret = null;
0493: n.f0.accept(this , argu);
0494: n.f1.accept(this , argu);
0495: n.f2.accept(this , argu);
0496: return _ret;
0497: }
0498:
0499: /**
0500: * <PRE>
0501: * f0 -> AssignmentExpression()
0502: * f1 -> ( "," AssignmentExpression() )*
0503: * </PRE>
0504: */
0505: public Object visit(FunctionCallExpressionListBody n, Object argu) {
0506: Object _ret = null;
0507: n.f0.accept(this , argu);
0508: n.f1.accept(this , argu);
0509: return _ret;
0510: }
0511:
0512: /**
0513: * <PRE>
0514: * f0 -> ConditionalExpression()
0515: * f1 -> ( ( "=" | "+=" | "-=" | "*=" | "/=" | "%=" | ">>=" | "<<=" | ">>>=" | "&=" | "^=" | "|=" ) ConditionalExpression() )*
0516: * </PRE>
0517: */
0518: public Object visit(AssignmentExpression n, Object argu) {
0519: Object _ret = null;
0520: n.f0.accept(this , argu);
0521: n.f1.accept(this , argu);
0522: return _ret;
0523: }
0524:
0525: /**
0526: * <PRE>
0527: * f0 -> LogicalOrExpression()
0528: * f1 -> ( "?" LogicalOrExpression() ":" LogicalOrExpression() )?
0529: * </PRE>
0530: */
0531: public Object visit(ConditionalExpression n, Object argu) {
0532: Object _ret = null;
0533: n.f0.accept(this , argu);
0534: n.f1.accept(this , argu);
0535: return _ret;
0536: }
0537:
0538: /**
0539: * <PRE>
0540: * f0 -> LogicalAndExpression()
0541: * f1 -> ( "||" LogicalAndExpression() )*
0542: * </PRE>
0543: */
0544: public Object visit(LogicalOrExpression n, Object argu) {
0545: Object _ret = null;
0546: n.f0.accept(this , argu);
0547: n.f1.accept(this , argu);
0548: return _ret;
0549: }
0550:
0551: /**
0552: * <PRE>
0553: * f0 -> BitwiseOrExpression()
0554: * f1 -> ( "&&" BitwiseOrExpression() )*
0555: * </PRE>
0556: */
0557: public Object visit(LogicalAndExpression n, Object argu) {
0558: Object _ret = null;
0559: n.f0.accept(this , argu);
0560: n.f1.accept(this , argu);
0561: return _ret;
0562: }
0563:
0564: /**
0565: * <PRE>
0566: * f0 -> BitwiseXorExpression()
0567: * f1 -> ( "|" BitwiseXorExpression() )*
0568: * </PRE>
0569: */
0570: public Object visit(BitwiseOrExpression n, Object argu) {
0571: Object _ret = null;
0572: n.f0.accept(this , argu);
0573: n.f1.accept(this , argu);
0574: return _ret;
0575: }
0576:
0577: /**
0578: * <PRE>
0579: * f0 -> BitwiseAndExpression()
0580: * f1 -> ( "^" BitwiseAndExpression() )*
0581: * </PRE>
0582: */
0583: public Object visit(BitwiseXorExpression n, Object argu) {
0584: Object _ret = null;
0585: n.f0.accept(this , argu);
0586: n.f1.accept(this , argu);
0587: return _ret;
0588: }
0589:
0590: /**
0591: * <PRE>
0592: * f0 -> EqualityExpression()
0593: * f1 -> ( "&" EqualityExpression() )*
0594: * </PRE>
0595: */
0596: public Object visit(BitwiseAndExpression n, Object argu) {
0597: Object _ret = null;
0598: n.f0.accept(this , argu);
0599: n.f1.accept(this , argu);
0600: return _ret;
0601: }
0602:
0603: /**
0604: * <PRE>
0605: * f0 -> RelationalExpression()
0606: * f1 -> ( ( "==" | "!=" ) RelationalExpression() )*
0607: * </PRE>
0608: */
0609: public Object visit(EqualityExpression n, Object argu) {
0610: Object _ret = null;
0611: n.f0.accept(this , argu);
0612: n.f1.accept(this , argu);
0613: return _ret;
0614: }
0615:
0616: /**
0617: * <PRE>
0618: * f0 -> ShiftExpression()
0619: * f1 -> ( ( "<" | ">" | ">=" | "<=" | "instanceof" ) ShiftExpression() )*
0620: * </PRE>
0621: */
0622: public Object visit(RelationalExpression n, Object argu) {
0623: Object _ret = null;
0624: n.f0.accept(this , argu);
0625: n.f1.accept(this , argu);
0626: return _ret;
0627: }
0628:
0629: /**
0630: * <PRE>
0631: * f0 -> AdditiveExpression()
0632: * f1 -> ( ( "<<" | ">>" | ">>>" ) AdditiveExpression() )*
0633: * </PRE>
0634: */
0635: public Object visit(ShiftExpression n, Object argu) {
0636: Object _ret = null;
0637: n.f0.accept(this , argu);
0638: n.f1.accept(this , argu);
0639: return _ret;
0640: }
0641:
0642: /**
0643: * <PRE>
0644: * f0 -> MultiplicativeExpression()
0645: * f1 -> ( ( "+" | "-" ) MultiplicativeExpression() )*
0646: * </PRE>
0647: */
0648: public Object visit(AdditiveExpression n, Object argu) {
0649: Object _ret = null;
0650: n.f0.accept(this , argu);
0651: n.f1.accept(this , argu);
0652: return _ret;
0653: }
0654:
0655: /**
0656: * <PRE>
0657: * f0 -> UnaryExpression()
0658: * f1 -> ( ( "*" | "/" | "%" ) UnaryExpression() )*
0659: * </PRE>
0660: */
0661: public Object visit(MultiplicativeExpression n, Object argu) {
0662: Object _ret = null;
0663: n.f0.accept(this , argu);
0664: n.f1.accept(this , argu);
0665: return _ret;
0666: }
0667:
0668: /**
0669: * <PRE>
0670: * f0 -> ( ( "++" | "--" | "+" | "-" | "~" | "!" ) )?
0671: * f1 -> PostfixExpression()
0672: * </PRE>
0673: */
0674: public Object visit(UnaryExpression n, Object argu) {
0675: Object _ret = null;
0676: n.f0.accept(this , argu);
0677: n.f1.accept(this , argu);
0678: return _ret;
0679: }
0680:
0681: /**
0682: * <PRE>
0683: * f0 -> TypeExpression()
0684: * f1 -> ( "++" | "--" )?
0685: * </PRE>
0686: */
0687: public Object visit(PostfixExpression n, Object argu) {
0688: Object _ret = null;
0689: n.f0.accept(this , argu);
0690: n.f1.accept(this , argu);
0691: return _ret;
0692: }
0693:
0694: /**
0695: * <PRE>
0696: * f0 -> AllocationExpression()
0697: * | CastExpression()
0698: * | PrimaryExpression()
0699: * </PRE>
0700: */
0701: public Object visit(TypeExpression n, Object argu) {
0702: Object _ret = null;
0703: n.f0.accept(this , argu);
0704: return _ret;
0705: }
0706:
0707: /**
0708: * <PRE>
0709: * f0 -> "new"
0710: * f1 -> PrimaryExpressionWithTrailingFxnCallExpList()
0711: * f2 -> FunctionCallExpressionList()
0712: * </PRE>
0713: */
0714: public Object visit(AllocationExpression n, Object argu) {
0715: Object _ret = null;
0716: n.f0.accept(this , argu);
0717: n.f1.accept(this , argu);
0718: n.f2.accept(this , argu);
0719: return _ret;
0720: }
0721:
0722: /**
0723: * <PRE>
0724: * f0 -> "("
0725: * f1 -> PrimaryExpressionNotFunction()
0726: * f2 -> ")"
0727: * f3 -> PrimaryExpression()
0728: * </PRE>
0729: */
0730: public Object visit(CastExpression n, Object argu) {
0731: Object _ret = null;
0732: n.f0.accept(this , argu);
0733: n.f1.accept(this , argu);
0734: n.f2.accept(this , argu);
0735: n.f3.accept(this , argu);
0736: return _ret;
0737: }
0738:
0739: /**
0740: * <PRE>
0741: * f0 -> PrimaryPrefix()
0742: * f1 -> ( PrimaryPostfix() )*
0743: * </PRE>
0744: */
0745: public Object visit(PrimaryExpression n, Object argu) {
0746: Object _ret = null;
0747: n.f0.accept(this , argu);
0748: n.f1.accept(this , argu);
0749: return _ret;
0750: }
0751:
0752: /**
0753: * <PRE>
0754: * f0 -> PrimaryPrefixNotFunction()
0755: * f1 -> ( PrimaryPostfix() )*
0756: * </PRE>
0757: */
0758: public Object visit(PrimaryExpressionNotFunction n, Object argu) {
0759: Object _ret = null;
0760: n.f0.accept(this , argu);
0761: n.f1.accept(this , argu);
0762: return _ret;
0763: }
0764:
0765: /**
0766: * <PRE>
0767: * f0 -> PrimaryPrefix()
0768: * f1 -> ( PrimaryPostfixWithTrailingFxnCallExpList() )*
0769: * </PRE>
0770: */
0771: public Object visit(PrimaryExpressionWithTrailingFxnCallExpList n,
0772: Object argu) {
0773: Object _ret = null;
0774: n.f0.accept(this , argu);
0775: n.f1.accept(this , argu);
0776: return _ret;
0777: }
0778:
0779: /**
0780: * <PRE>
0781: * f0 -> PrimaryPrefixNotFunction()
0782: * | FunctionPrimaryPrefix()
0783: * | ShorthandFunctionPrimaryPrefix()
0784: * </PRE>
0785: */
0786: public Object visit(PrimaryPrefix n, Object argu) {
0787: Object _ret = null;
0788: n.f0.accept(this , argu);
0789: return _ret;
0790: }
0791:
0792: /**
0793: * <PRE>
0794: * f0 -> ThisPrimaryPrefix()
0795: * | SuperPrimaryPrefix()
0796: * | CalleePrimaryPrefix()
0797: * | ArrayDeclarationPrimaryPrefix()
0798: * | IdentifierPrimaryPrefix()
0799: * | ParenPrimaryPrefix()
0800: * | Literal()
0801: * </PRE>
0802: */
0803: public Object visit(PrimaryPrefixNotFunction n, Object argu) {
0804: Object _ret = null;
0805: n.f0.accept(this , argu);
0806: return _ret;
0807: }
0808:
0809: /**
0810: * <PRE>
0811: * f0 -> "this"
0812: * </PRE>
0813: */
0814: public Object visit(ThisPrimaryPrefix n, Object argu) {
0815: Object _ret = null;
0816: n.f0.accept(this , argu);
0817: return _ret;
0818: }
0819:
0820: /**
0821: * <PRE>
0822: * f0 -> "super"
0823: * </PRE>
0824: */
0825: public Object visit(SuperPrimaryPrefix n, Object argu) {
0826: Object _ret = null;
0827: n.f0.accept(this , argu);
0828: return _ret;
0829: }
0830:
0831: /**
0832: * <PRE>
0833:
0834: * f0 -> "callee"
0835: * </PRE>
0836: */
0837: public Object visit(CalleePrimaryPrefix n, Object argu) {
0838: Object _ret = null;
0839: n.f0.accept(this , argu);
0840: return _ret;
0841: }
0842:
0843: /**
0844: * <PRE>
0845: * f0 -> <IDENTIFIER>
0846: * </PRE>
0847: */
0848: public Object visit(IdentifierPrimaryPrefix n, Object argu) {
0849: Object _ret = null;
0850: n.f0.accept(this , argu);
0851: return _ret;
0852: }
0853:
0854: /**
0855: * <PRE>
0856: * f0 -> "("
0857: * f1 -> Expression()
0858: * f2 -> ")"
0859: * </PRE>
0860: */
0861: public Object visit(ParenPrimaryPrefix n, Object argu) {
0862: Object _ret = null;
0863: n.f0.accept(this , argu);
0864: n.f1.accept(this , argu);
0865: n.f2.accept(this , argu);
0866: return _ret;
0867: }
0868:
0869: /**
0870: * <PRE>
0871:
0872: * f0 -> "function"
0873: * f1 -> "("
0874: * f2 -> ( Arglist() )?
0875: * f3 -> ")"
0876: * f4 -> ( "extends" PrimaryExpressionWithTrailingFxnCallExpList() FunctionCallExpressionList() )?
0877: * f5 -> "{"
0878: * f6 -> Program(true)
0879: * f7 -> "}"
0880: * </PRE>
0881: */
0882: public Object visit(FunctionPrimaryPrefix n, Object argu) {
0883: Object _ret = null;
0884: n.f0.accept(this , argu);
0885: n.f1.accept(this , argu);
0886: n.f2.accept(this , argu);
0887: n.f3.accept(this , argu);
0888: n.f4.accept(this , argu);
0889: n.f5.accept(this , argu);
0890: n.f6.accept(this , argu);
0891: n.f7.accept(this , argu);
0892: return _ret;
0893: }
0894:
0895: /**
0896: * <PRE>
0897:
0898: * f0 -> "'{"
0899: * f1 -> Program(true)
0900: * f2 -> "}"
0901: * </PRE>
0902: */
0903: public Object visit(ShorthandFunctionPrimaryPrefix n, Object argu) {
0904: Object _ret = null;
0905: n.f0.accept(this , argu);
0906: n.f1.accept(this , argu);
0907: n.f2.accept(this , argu);
0908: return _ret;
0909: }
0910:
0911: /**
0912: * <PRE>
0913: * f0 -> "["
0914: * f1 -> ( FunctionCallExpressionListBody() )?
0915: * f2 -> "]"
0916: * </PRE>
0917: */
0918: public Object visit(ArrayDeclarationPrimaryPrefix n, Object argu) {
0919: Object _ret = null;
0920: n.f0.accept(this , argu);
0921: n.f1.accept(this , argu);
0922: n.f2.accept(this , argu);
0923: return _ret;
0924: }
0925:
0926: /**
0927: * <PRE>
0928: * f0 -> FunctionCallPrimaryPostfix()
0929: * | ArraySubscriptPrimaryPostfix()
0930: * | ThisScopeQualifierPrimaryPostfix()
0931: * | PropertyIdentifierPrimaryPostfix()
0932: * </PRE>
0933: */
0934: public Object visit(PrimaryPostfix n, Object argu) {
0935: Object _ret = null;
0936: n.f0.accept(this , argu);
0937: return _ret;
0938: }
0939:
0940: /**
0941: * <PRE>
0942: * f0 -> ArraySubscriptPrimaryPostfix()
0943: * | ThisScopeQualifierPrimaryPostfix()
0944: * | PropertyIdentifierPrimaryPostfix()
0945: * </PRE>
0946: */
0947: public Object visit(PrimaryPostfixWithTrailingFxnCallExpList n,
0948: Object argu) {
0949: Object _ret = null;
0950: n.f0.accept(this , argu);
0951: return _ret;
0952: }
0953:
0954: /**
0955: * <PRE>
0956: * f0 -> FunctionCallExpressionList()
0957: * </PRE>
0958: */
0959: public Object visit(FunctionCallPrimaryPostfix n, Object argu) {
0960: Object _ret = null;
0961: n.f0.accept(this , argu);
0962: return _ret;
0963: }
0964:
0965: /**
0966: * <PRE>
0967: * f0 -> "["
0968: * f1 -> Expression()
0969: * f2 -> ( ".." Expression() )?
0970: * f3 -> "]"
0971: * </PRE>
0972: */
0973: public Object visit(ArraySubscriptPrimaryPostfix n, Object argu) {
0974: Object _ret = null;
0975: n.f0.accept(this , argu);
0976: n.f1.accept(this , argu);
0977: n.f2.accept(this , argu);
0978: n.f3.accept(this , argu);
0979: return _ret;
0980: }
0981:
0982: /**
0983: * <PRE>
0984: * f0 -> "."
0985: * f1 -> <IDENTIFIER>
0986: * </PRE>
0987: */
0988: public Object visit(PropertyIdentifierPrimaryPostfix n, Object argu) {
0989: Object _ret = null;
0990: n.f0.accept(this , argu);
0991: n.f1.accept(this , argu);
0992: return _ret;
0993: }
0994:
0995: /**
0996: * <PRE>
0997: * f0 -> "."
0998: * f1 -> "this"
0999: * </PRE>
1000: */
1001: public Object visit(ThisScopeQualifierPrimaryPostfix n, Object argu) {
1002: Object _ret = null;
1003: n.f0.accept(this , argu);
1004: n.f1.accept(this , argu);
1005: return _ret;
1006: }
1007:
1008: /**
1009: * <PRE>
1010: * f0 -> <INTEGER_LITERAL>
1011: * | <FLOATING_POINT_LITERAL>
1012: * | <STRING_LITERAL>
1013: * | <REGEXP_LITERAL>
1014: * | "true"
1015: * | "false"
1016: * | "null"
1017: * | "undefined"
1018: * </PRE>
1019: */
1020: public Object visit(Literal n, Object argu) {
1021: Object _ret = null;
1022: n.f0.accept(this , argu);
1023: return _ret;
1024: }
1025:
1026: /**
1027: * <PRE>
1028:
1029: * f0 -> ( "static" | "const" | "private" | "protected" | "public" )*
1030: * </PRE>
1031: */
1032: public Object visit(Permissions n, Object argu) {
1033: Object _ret = null;
1034: n.f0.accept(this, argu);
1035: return _ret;
1036: }
1037:
1038: }
|