Skip to content

Commit

Permalink
Polished rules
Browse files Browse the repository at this point in the history
  • Loading branch information
Polina Volkhontseva committed Oct 13, 2022
1 parent 55fac16 commit fc77a32
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 43 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ SOFTWARE.
<plugin>
<groupId>org.cqfn</groupId>
<artifactId>astranaut-maven-plugin</artifactId>
<version>0.1.5</version>
<version>0.1.6</version>
<configuration>
<dsl>${basedir}/src/main/dsl/rules.dsl</dsl>
<output>${basedir}/src/main/java</output>
Expand Down
59 changes: 17 additions & 42 deletions src/main/dsl/rules.dsl
Original file line number Diff line number Diff line change
Expand Up @@ -238,8 +238,8 @@ Plus(#1) -> Positive(#1);
PrimitiveType<#1> -> PrimitiveType<#1>;

VariableDeclarationExpr(VariableDeclarator(#1, #2, #3)) -> VariableDeclaration(#1, DeclaratorList(Declarator(#2, #3)));
VariableDeclarationExpr(Modifier<#1>, VariableDeclarator(#2, #3, #4))
-> VariableDeclaration(ModifierBlock(Modifier<#1>), #2, DeclaratorList(Declarator(#3, #4)));
VariableDeclarationExpr(Modifier#1, VariableDeclarator(#2, #3, #4))
-> VariableDeclaration(ModifierBlock(#1), #2, DeclaratorList(Declarator(#3, #4)));

ExpressionStmt(#1) -> ExpressionStatement(#1);
ExpressionStmt(#1) -> #1;
Expand All @@ -263,62 +263,38 @@ MethodCallExpr(#1, #2...) -> FunctionCall(#1, ExpressionList(#2));
ClassType(#1) -> ClassType(Name(#1));
ClassOrInterfaceType(#1) -> ClassType(Name(#1));
ArrayType(#1) -> ArrayType(#1, DimensionList(Dimension));
Parameter(#1, #2) -> Parameter(#1, #2);
Parameter(Modifier<#1>, #2, #3) -> Parameter(ModifierBlock(Modifier<#1>), #2, #3);
Parameter(Modifier#1, #2, #3) -> Parameter(ModifierBlock(#1), #2, #3);
VoidType -> VoidType;
Modifier<#1> -> Modifier<#1>;

CompilationUnit(#1) -> Program(#1);

// Class declaration ClassDeclaration <- [ModifierBlock], Identifier, [ExtendsBlock], [ImplementsBlock], ClassBody;

ClassOrInterfaceDeclaration(Modifier<#1>, #2, #3) ->
ClassDeclaration(ModifierBlock(Modifier<#1>), #2, ClassBody(#3));
ClassOrInterfaceDeclaration(Modifier#1, #2, InterfaceType(#3)) ->
ClassDeclaration(ModifierBlock(#1), #2, ImplementsBlock(ClassType(Name(#3))), ClassBody);

ClassOrInterfaceDeclaration(Modifier<#1>, #2, #3...) ->
ClassDeclaration(ModifierBlock(Modifier<#1>), #2, ClassBody(#3));
ClassOrInterfaceDeclaration(Modifier#1, #2, ClassType(#3)) ->
ClassDeclaration(ModifierBlock(#1), #2, ExtendsBlock(ClassType(#3)), ClassBody);

ClassOrInterfaceDeclaration(Modifier<#1>, #2) ->
ClassDeclaration(ModifierBlock(Modifier<#1>), #2, ClassBody);
ClassOrInterfaceDeclaration(Modifier#1, #2, #3...) ->
ClassDeclaration(ModifierBlock(#1), #2, ClassBody(#3));

ClassOrInterfaceDeclaration(#2) -> ClassDeclaration(#2, ClassBody);
ClassOrInterfaceDeclaration(#1, #2...) -> ClassDeclaration(#1, ClassBody(#2));

ClassOrInterfaceDeclaration(Modifier<#1>, #2, InterfaceType(#3)) ->
ClassDeclaration(ModifierBlock(Modifier<#1>), #2, ImplementsBlock(ClassType(Name(#3))), ClassBody);

ClassOrInterfaceDeclaration(Modifier<#1>, #2, ClassType(#3)) ->
ClassDeclaration(ModifierBlock(Modifier<#1>), #2, ExtendsBlock(ClassType(#3)), ClassBody);

FieldDeclaration(VariableDeclarator(#1, #2)) -> FieldDeclaration(#1, DeclaratorList(Declarator(#2)));
FieldDeclaration(VariableDeclarator(#1, #2, #3)) -> FieldDeclaration(#1, DeclaratorList(Declarator(#2, #3)));

FieldDeclaration(Modifier<#3>, VariableDeclarator(#1, #2)) -> FieldDeclaration(ModifierBlock(Modifier<#3>), #1, DeclaratorList(Declarator(#2)));
FieldDeclaration(#1, #2, VariableDeclarator(#3, #4)) -> FieldDeclaration(ModifierBlock(#1, #2), #3, DeclaratorList(Declarator(#4)));
FieldDeclaration(Modifier<#4>, VariableDeclarator(#1, #2, #3)) -> FieldDeclaration(ModifierBlock(Modifier<#4>), #1, DeclaratorList(Declarator(#2, #3)));
FieldDeclaration(Modifier#3, VariableDeclarator(#1, #2)) -> FieldDeclaration(ModifierBlock(#3), #1, DeclaratorList(Declarator(#2)));
FieldDeclaration(Modifier#4, VariableDeclarator(#1, #2, #3)) -> FieldDeclaration(ModifierBlock(#4), #1, DeclaratorList(Declarator(#2, #3)));

// Function declaration FunctionDeclaration <- [modifiers@ModifierBlock], [typename@TypeName], name@Identifier, parameters@ParameterBlock, body@StatementBlock;

MethodDeclaration(Modifier<#1>, Modifier<#2>, #3, #4, #5, #6) ->
FunctionDeclaration(ModifierBlock(Modifier<#1>, Modifier<#2>), #5, #3, ParameterBlock(#4), #6);

MethodDeclaration(Modifier<#1>, Modifier<#2>, #3, #4, #5, #6) ->
FunctionDeclaration(ModifierBlock(Modifier<#1>, Modifier<#2>), #5, #3, ParameterBlock(#4), #6);

MethodDeclaration(Modifier<#1>, #2, #3, #4) ->
FunctionDeclaration(ModifierBlock(Modifier<#1>), #3, #2, ParameterBlock, #4);
MethodDeclaration(Modifier#1, #2, Parameter#3, #4, #5) ->
FunctionDeclaration(ModifierBlock(#1), #4, #2, ParameterBlock(#3), #5);

MethodDeclaration(Modifier<#1>, #2, #3, #4, #5) ->
FunctionDeclaration(ModifierBlock(Modifier<#1>), #4, #2, ParameterBlock(#3), #5);
MethodDeclaration(Modifier<#1>, #2, #3, #4, #5, #6) ->
FunctionDeclaration(ModifierBlock(Modifier<#1>), #5, #2, ParameterBlock(#3, #4), #6);
MethodDeclaration(Modifier<#1>, #2, #3, #4, #5, #6, #7) ->
FunctionDeclaration(ModifierBlock(Modifier<#1>), #6, #2, ParameterBlock(#3, #4, #5), #7);
MethodDeclaration(Modifier<#1>, #2, #3, #4, #5, #6, #7, #8) ->
FunctionDeclaration(ModifierBlock(Modifier<#1>), #7, #2, ParameterBlock(#3, #4, #5, #6), #8);

ConstructorDeclaration(#1, #2, #3, #4, #5) ->
FunctionDeclaration(ModifierBlock(#1), #2, ParameterBlock(#3, #4), #5);
ConstructorDeclaration(Modifier#1, #2, Parameter#3, #4) ->
FunctionDeclaration(ModifierBlock(#1), #2, ParameterBlock(#3), #4);

js:

Expand Down Expand Up @@ -355,7 +331,7 @@ singleExpression(#1, literal<"/">, singleExpression(#2)) -> Division(#1, Variabl
singleExpression(#1, literal<"%">, #2) -> Modulus(#1, #2);
singleExpression(singleExpression(#1), literal<"%">, singleExpression(#2)) -> Modulus(Variable(Name(#1)), Variable(Name(#2)));
singleExpression(singleExpression(#1), literal<"%">, #2) -> Modulus(Variable(Name(#1)), #2);
singleExpression(#1, literal<"%">, singleExpression(#2)) -> Modulusfor(#1, Variable(Name(#2)));
singleExpression(#1, literal<"%">, singleExpression(#2)) -> Modulus(#1, Variable(Name(#2)));

singleExpression(#1, literal<"==">, #2) -> IsEqualTo(#1, #2);
singleExpression(singleExpression(#1), literal<"==">, singleExpression(#2)) -> IsEqualTo(Variable(Name(#1)), Variable(Name(#2)));
Expand Down Expand Up @@ -501,7 +477,6 @@ returnStatement(literal<"return">, expressionSequence(#1)) -> Return(#1);

// Class declaration ClassDeclaration <- [ModifierBlock], Identifier, [ExtendsBlock], [ImplementsBlock], ClassBody;

classDeclaration(literal<"class">, #1, classTail) -> ClassDeclaration(#1, ClassBody);
classDeclaration(literal<"class">, #1, classTail(literal<"extends">, Variable(#2)))
-> ClassDeclaration(#1, ExtendsBlock(ClassType(#2)), ClassBody);
classDeclaration(literal<"class">, #1, classTail(#2, classElement(emptyStatement_)))
Expand All @@ -513,11 +488,11 @@ classElement(#1) -> #1;

// Function declaration FunctionDeclaration <- [modifiers@ModifierBlock], [typename@TypeName], name@Identifier, parameters@ParameterBlock, body@StatementBlock;

functionBody(sourceElements(#1...)) -> StatementBlock(#1);
functionBody(sourceElements(sourceElement(statement(expressionStatement(expressionSequence(#1)))))) ->
StatementBlock(#1);
functionBody(sourceElements(sourceElement(statement(#1)))) ->
StatementBlock(#1);
functionBody(sourceElements(#1...)) -> StatementBlock(#1);

functionDeclaration(literal<"function">, #1, #2) ->
FunctionDeclaration(#1, ParameterBlock, #2);
Expand Down

0 comments on commit fc77a32

Please sign in to comment.