01: package net.sourceforge.jrefactory.build;
02:
03: import net.sourceforge.jrefactory.ast.*;
04:
05: /**
06: * This object builds an expression. The first method builds
07: * an expression based on the name of the argument.
08: *
09: *@author Chris Seguin
10: */
11: public class BuildExpression {
12: /**
13: * Builds an expression based on a name
14: *
15: *@param name the name of the field or parameter
16: *@return the expression
17: */
18: public ASTExpression buildName(String name) {
19: ASTExpression expression = new ASTExpression(0);
20:
21: ASTConditionalExpression condExpression = new ASTConditionalExpression(
22: 0);
23: expression.jjtAddFirstChild(condExpression);
24:
25: ASTConditionalOrExpression condOrExpression = new ASTConditionalOrExpression(
26: 0);
27: condExpression.jjtAddFirstChild(condOrExpression);
28:
29: ASTConditionalAndExpression condAndExpression = new ASTConditionalAndExpression(
30: 0);
31: condOrExpression.jjtAddFirstChild(condAndExpression);
32:
33: ASTInclusiveOrExpression inclOrExpression = new ASTInclusiveOrExpression(
34: 0);
35: condAndExpression.jjtAddFirstChild(inclOrExpression);
36:
37: ASTExclusiveOrExpression exclOrExpression = new ASTExclusiveOrExpression(
38: 0);
39: inclOrExpression.jjtAddFirstChild(exclOrExpression);
40:
41: ASTAndExpression andExpression = new ASTAndExpression(0);
42: exclOrExpression.jjtAddFirstChild(andExpression);
43:
44: ASTEqualityExpression equalExpression = new ASTEqualityExpression(
45: 0);
46: andExpression.jjtAddFirstChild(equalExpression);
47:
48: ASTInstanceOfExpression instanceOfExpression = new ASTInstanceOfExpression(
49: 0);
50: equalExpression.jjtAddFirstChild(instanceOfExpression);
51:
52: ASTRelationalExpression relationalExpression = new ASTRelationalExpression(
53: 0);
54: instanceOfExpression.jjtAddFirstChild(relationalExpression);
55:
56: ASTShiftExpression shiftExpression = new ASTShiftExpression(0);
57: relationalExpression.jjtAddFirstChild(shiftExpression);
58:
59: ASTAdditiveExpression addExpression = new ASTAdditiveExpression(
60: 0);
61: shiftExpression.jjtAddFirstChild(addExpression);
62:
63: ASTMultiplicativeExpression multExpression = new ASTMultiplicativeExpression(
64: 0);
65: addExpression.jjtAddFirstChild(multExpression);
66:
67: ASTUnaryExpression unaryExpression = new ASTUnaryExpression(0);
68: multExpression.jjtAddFirstChild(unaryExpression);
69:
70: ASTUnaryExpressionNotPlusMinus uenpm = new ASTUnaryExpressionNotPlusMinus(
71: 0);
72: unaryExpression.jjtAddFirstChild(uenpm);
73:
74: ASTPostfixExpression postfixExpression = new ASTPostfixExpression(
75: 0);
76: uenpm.jjtAddFirstChild(postfixExpression);
77:
78: ASTPrimaryExpression primaryExpression = new ASTPrimaryExpression(
79: 0);
80: postfixExpression.jjtAddFirstChild(primaryExpression);
81:
82: ASTPrimaryPrefix primaryPrefix = new ASTPrimaryPrefix(0);
83: primaryExpression.jjtAddFirstChild(primaryPrefix);
84:
85: ASTName nameNode = new ASTName();
86: nameNode.addNamePart(name);
87: primaryExpression.jjtAddFirstChild(nameNode);
88:
89: return expression;
90: }
91: }
|