| <#OCTAL_LITERAL: "0" (["0"-"7"])*>
| <FLOATING_POINT_LITERAL: (["0"-"9"])+ "." (["0"-"9"])* (<EXPONENT>)? (["f","F","d","D"])? | "." (["0"-"9"])+ (<EXPONENT>)? (["f","F","d","D"])? | (["0"-"9"])+ <EXPONENT> (["f","F","d","D"])? | (["0"-"9"])+ (<EXPONENT>)? ["f","F","d","D"]>
| <#EXPONENT: ["e","E"] (["+","-"])? (["0"-"9"])+>
-| <CHARACTER_LITERAL: "\'" (~["\'","\\","\n","\r"] | "\\" (["n","t","b","r","f","\\","\'","\""] | ["0"-"7"] (["0"-"7"])? | ["0"-"3"] ["0"-"7"] ["0"-"7"])) "\'">
-| <STRING_LITERAL: "\"" ( ~["\"","\\","\n","\r"] | "\\" ( ["n","t","b","r","f","\\","\'","\""] | ["0"-"7"] (["0"-"7"])? | ["0"-"3"] ["0"-"7"] ["0"-"7"] | ( ["\n","\r"] | "\r\n")))* "\"" ( ( ["\r","\n"," "] )* "\"" ( ~["\"","\\","\n","\r"] | "\\" ( ["n","t","b","r","f","\\","\'","\""] | ["0"-"7"] (["0"-"7"])? | ["0"-"3"] ["0"-"7"] ["0"-"7"] | ( ["\n","\r"] | "\r\n")))* "\"" )* >
+|
+ < CHARACTER_LITERAL:
+ "'"
+ ( (~["'","\\","\n","\r"])
+ | ("\\"
+ ( ["n","t","b","r","f","\\","'","\""]
+ | ["0"-"7"] ( ["0"-"7"] )?
+ | ["0"-"3"] ["0"-"7"] ["0"-"7"]
+ )
+ )
+ )
+ "'"
+ >
+| < STRING_LITERAL:
+ "\""
+ ( (~["\"","\\","\n","\r"])
+ | ("\\"
+ ( ["n","t","b","r","f","\\","'","\""]
+ | ["0"-"7"] ( ["0"-"7"] )?
+ | ["0"-"3"] ["0"-"7"] ["0"-"7"]
+ )
+ )
+ )*
+ "\""
+ >
}
TOKEN : {
void ParameterDeclaration() : {}
{
- TypeSpecifier() <IDENTIFIER> [ Array () ]
+ TypeSpecifier() [<IDENTIFIER> [ Array () ]]
}
void VariableDeclaration() : {}
import org.gnunet.seaspider.parser.nodes.LogicalANDExpression;
import org.gnunet.seaspider.parser.nodes.LogicalORExpression;
import org.gnunet.seaspider.parser.nodes.MultiplicativeExpression;
+import org.gnunet.seaspider.parser.nodes.Node;
import org.gnunet.seaspider.parser.nodes.NodeChoice;
import org.gnunet.seaspider.parser.nodes.NodeSequence;
import org.gnunet.seaspider.parser.nodes.NodeToken;
public void visit(ParameterDeclaration n) {
skip_mode = false;
assert current_expression == null;
- current_expression = new ExpressionBuilder();
- n.f1.accept(this);
- LineNumberInfo lin = LineNumberInfo.get(n);
- current_expression.commit(lin.lineEnd);
+ if (n.f1.present())
+ {
+ NodeSequence ns = (NodeSequence) n.f1.node;
+ Node var = ns.elementAt(0);
+ current_expression = new ExpressionBuilder();
+ var.accept(this);
+ LineNumberInfo lin = LineNumberInfo.get(var);
+ current_expression.commit(lin.lineEnd);
+ }
current_expression = null;
skip_mode = true;
}