Rule typeBodyDeclarations() { return Sequence( ZeroOrMore(typeBodyMember().label("member")).label("members"), set(actions.createNormalTypeBody(values("members/member")))); }
public Rule methodDeclarationModifiers() { return Sequence( TestNot(Ch('}')), ZeroOrMore(anyModifier().label("modifier")), set(actions.createModifiers(values("ZeroOrMore/modifier")))); }
public Rule typeDeclarationModifiers() { return Sequence( TestNot(Ch('}')), ZeroOrMore(anyModifier().label("modifier")), set(actions.createModifiers(values("ZeroOrMore/modifier")))); }
public Rule compilationUnit() { return Sequence( group.basics.optWS(), Optional(packageDeclaration()).label("package"), ZeroOrMore(importDeclaration().label("import")).label("imports"), ZeroOrMore(anyTypeDeclaration().label("type")).label("types"), set(actions.createCompilationUnit(value("package"), values("imports/import"), values("types/type")))); } }
public Rule fieldDeclarationModifiers() { return Sequence( TestNot(Ch('}')), ZeroOrMore(anyModifier().label("modifier")), set(actions.createModifiers(values("ZeroOrMore/modifier")))); }
public Rule variableDefinitionModifiers() { return Sequence( TestNot(Ch('}')), ZeroOrMore(anyModifier().label("modifier")), set(actions.createModifiers(values("ZeroOrMore/modifier")))); }
public Rule packageDeclaration() { return Sequence( Sequence( ZeroOrMore(annotation().label("annotation")).label("annotations"), String("package"), group.basics.testLexBreak(), group.basics.optWS()), group.basics.identifier().label("head"), ZeroOrMore(group.basics.dotIdentifier().label("tail")), Ch(';'), group.basics.optWS(), set(actions.createPackageDeclaration(values("Sequence/annotations/annotation"), value("head"), values("ZeroOrMore/tail")))); }
Rule variableDefinitionPartNoAssign() { return Sequence( group.basics.identifier().label("varName"), ZeroOrMore(Sequence(Ch('['), group.basics.optWS(), Ch(']'), group.basics.optWS()).label("dim")).label("dims"), set(actions.createVariableDefinitionPart(value("varName"), texts("dims/dim"), null))); }
/** * Add your own modifiers! */ Rule variableDefinition() { return Sequence( group.types.type().label("type"), variableDefinitionPart().label("head"), ZeroOrMore(Sequence( Ch(','), group.basics.optWS(), variableDefinitionPart()).label("tail")), set(actions.createVariableDefinition(value("type"), value("head"), values("ZeroOrMore/tail")))); }
/** * Add your own modifiers! */ Rule variableDefinition() { return Sequence( group.types.type().label("type"), variableDefinitionPart().label("head"), ZeroOrMore(Sequence( Ch(','), group.basics.optWS(), variableDefinitionPart()).label("tail")), set(actions.createVariableDefinition(value("type"), value("head"), values("ZeroOrMore/tail")))); }
Rule implementsClause() { return Sequence( Sequence(String("implements"), group.basics.testLexBreak(), group.basics.optWS()), group.types.type().label("head"), ZeroOrMore(Sequence( Ch(','), group.basics.optWS(), group.types.type()).label("tail")), set(actions.createImplementsClause(value("head"), values("ZeroOrMore/tail")))); }
Rule extendsClause() { return Sequence( Sequence(String("extends"), group.basics.testLexBreak(), group.basics.optWS()), group.types.type().label("head"), ZeroOrMore(Sequence( Ch(','), group.basics.optWS(), group.types.type()).label("tail")), set(actions.createExtendsClause(value("head"), values("ZeroOrMore/tail")))); }
Rule enumConstant() { return Sequence( ZeroOrMore(annotation().label("annotation")).label("annotations"), group.basics.identifier().label("name"), Optional(methodArguments()).label("arguments"), Optional(typeBody()).label("body"), set(actions.createEnumConstant(values("annotations/annotation"), value("name"), value("arguments"), value("body")))); }
Rule enumConstant() { return Sequence( ZeroOrMore(annotation().label("annotation")).label("annotations"), group.basics.identifier().label("name"), Optional(methodArguments()).label("arguments"), Optional(typeBody()).label("body"), set(actions.createEnumConstant(values("annotations/annotation"), value("name"), value("arguments"), value("body")))); }
Rule methodParameters() { return Sequence( Ch('('), group.basics.optWS(), Optional(Sequence( methodParameter().label("head"), ZeroOrMore(Sequence( Ch(','), group.basics.optWS(), methodParameter().label("tail"))))), Ch(')'), group.basics.optWS(), set(actions.createMethodParameters(value("Optional/Sequence/head"), values("Optional/Sequence/ZeroOrMore/Sequence/tail")))); }
public Rule enumDeclaration() { return Sequence( typeDeclarationModifiers().label("modifiers"), String("enum"), group.basics.testLexBreak(), group.basics.optWS(), group.basics.identifier().label("typeName"), ZeroOrMore(FirstOf( extendsClause(), implementsClause()).label("addon")).label("addons"), enumBody().label("body"), set(actions.createEnumDeclaration(value("modifiers"), value("typeName"), value("body"), values("addons/addon")))); }
public Rule enumDeclaration() { return Sequence( typeDeclarationModifiers().label("modifiers"), String("enum"), group.basics.testLexBreak(), group.basics.optWS(), group.basics.identifier().label("typeName"), ZeroOrMore(FirstOf( extendsClause(), implementsClause()).label("addon")).label("addons"), enumBody().label("body"), set(actions.createEnumDeclaration(value("modifiers"), value("typeName"), value("body"), values("addons/addon")))); }
Rule variableDefinitionPart() { return Sequence( group.basics.identifier().label("varName"), ZeroOrMore(Sequence(Ch('['), group.basics.optWS(), Ch(']'), group.basics.optWS()).label("dim")).label("dims"), Optional(Sequence( Ch('='), group.basics.optWS(), FirstOf( group.expressions.arrayInitializer(), group.expressions.anyExpression()))).label("initializer"), set(actions.createVariableDefinitionPart(value("varName"), texts("dims/dim"), value("initializer")))); }
public Rule annotationDeclaration() { return Sequence( typeDeclarationModifiers().label("modifiers"), Ch('@'), group.basics.optWS(), String("interface"), group.basics.testLexBreak(), group.basics.optWS(), group.basics.identifier().label("name"), Ch('{').label("typeOpen"), group.basics.optWS(), ZeroOrMore(annotationElementDeclaration().label("member")).label("members"), Ch('}').label("typeClose"), group.basics.optWS(), set(actions.createAnnotationDeclaration(value("modifiers"), value("name"), values("members/member"), node("typeOpen"), node("typeClose")))); }
public Rule importDeclaration() { return Sequence( Sequence(String("import"), group.basics.testLexBreak(), group.basics.optWS()), Optional(Sequence(String("static"), group.basics.testLexBreak(), group.basics.optWS())).label("static"), group.basics.identifier().label("head"), ZeroOrMore(group.basics.dotIdentifier().label("tail")), Optional(Sequence( Ch('.'), group.basics.optWS(), Ch('*'), group.basics.optWS())).label("dotStar"), Ch(';'), group.basics.optWS(), set(actions.createImportDeclaration(text("static"), value("head"), values("ZeroOrMore/tail"), text("dotStar")))); }