1
|
package eu.dnetlib.springutils.condbean.parser;
|
2
|
|
3
|
import eu.dnetlib.springutils.condbean.PropertyFinder;
|
4
|
import eu.dnetlib.springutils.condbean.parser.ast.AbstractExpression;
|
5
|
import eu.dnetlib.springutils.condbean.parser.ast.AndExpression;
|
6
|
import eu.dnetlib.springutils.condbean.parser.ast.BooleanNode;
|
7
|
import eu.dnetlib.springutils.condbean.parser.ast.EqualityExpression;
|
8
|
import eu.dnetlib.springutils.condbean.parser.ast.IdentifierNode;
|
9
|
import eu.dnetlib.springutils.condbean.parser.ast.IsdefExpression;
|
10
|
import eu.dnetlib.springutils.condbean.parser.ast.NotExpression;
|
11
|
import eu.dnetlib.springutils.condbean.parser.ast.NumberNode;
|
12
|
import eu.dnetlib.springutils.condbean.parser.ast.OrExpression;
|
13
|
import eu.dnetlib.springutils.condbean.parser.ast.QualNameNode;
|
14
|
import eu.dnetlib.springutils.condbean.parser.ast.RelationalExpression;
|
15
|
import eu.dnetlib.springutils.condbean.parser.ast.StringTypeNode;
|
16
|
import eu.dnetlib.springutils.condbean.parser.ast.SysProperty;
|
17
|
import fri.patterns.interpreter.parsergenerator.semantics.ReflectSemantic;
|
18
|
|
19
|
public class CondBeanParser extends ReflectSemantic { // NOPMD
|
20
|
|
21
|
private PropertyFinder propertyFinder;
|
22
|
|
23
|
public CondBeanParser() {
|
24
|
}
|
25
|
|
26
|
public Object logicalOrExpression(final Object orExp, final Object logicalor, final Object andExp) {
|
27
|
return new OrExpression((AbstractExpression) orExp, (AbstractExpression) andExp);
|
28
|
}
|
29
|
|
30
|
public Object logicalAndExpression(final Object andExp, final Object logicaland, final Object equalExpr) {
|
31
|
return new AndExpression((AbstractExpression) andExp, (AbstractExpression) equalExpr);
|
32
|
}
|
33
|
|
34
|
public Object equalityExpression(final Object equalExpr, final Object operator, final Object relExpr) {
|
35
|
return new EqualityExpression((AbstractExpression) equalExpr, (AbstractExpression) relExpr, (String) operator);
|
36
|
}
|
37
|
|
38
|
public Object relationalExpression(final Object relExpr, final Object operator, final Object unaryExpression) {
|
39
|
return new RelationalExpression((AbstractExpression) relExpr, (AbstractExpression) unaryExpression, (String) operator);
|
40
|
}
|
41
|
|
42
|
public Object unaryExpression(final Object lcb, final Object literal, final Object rcb) {
|
43
|
return new SysProperty(propertyFinder, (QualNameNode) literal);
|
44
|
}
|
45
|
|
46
|
public Object unaryExpression(final Object exmark, final Object unaryExpression) {
|
47
|
return new NotExpression((AbstractExpression) unaryExpression);
|
48
|
}
|
49
|
|
50
|
public Object simpleType(final Object literals) {
|
51
|
return new IdentifierNode((String) literals);
|
52
|
}
|
53
|
|
54
|
public Object qualifiedType(final Object literals) {
|
55
|
return new QualNameNode((String) literals);
|
56
|
}
|
57
|
|
58
|
public Object stringType(final Object astring) {
|
59
|
return new StringTypeNode((String) astring);
|
60
|
}
|
61
|
|
62
|
public Object booleanType(final Object literals) {
|
63
|
return new BooleanNode((String) literals);
|
64
|
}
|
65
|
|
66
|
public Object unaryExpression(final Object isdef, final Object leftpar, final Object identifier, final Object rightpar) {
|
67
|
return new IsdefExpression((AbstractExpression) identifier);
|
68
|
}
|
69
|
|
70
|
public Object primaryExpression(final Object leftpar, final Object expression, final Object rightpar) {
|
71
|
return expression;
|
72
|
}
|
73
|
|
74
|
public Object numberType(final Object number) {
|
75
|
return new NumberNode((String) number);
|
76
|
}
|
77
|
|
78
|
public PropertyFinder getPropertyFinder() {
|
79
|
return propertyFinder;
|
80
|
}
|
81
|
|
82
|
public void setPropertyFinder(PropertyFinder propertyFinder) {
|
83
|
this.propertyFinder = propertyFinder;
|
84
|
}
|
85
|
|
86
|
}
|