Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
sarah.grebing
ProofScriptParser
Commits
35f07285
Commit
35f07285
authored
May 23, 2018
by
Alexander Weigl
Browse files
magic variables for rule command
parent
26e50bd5
Pipeline
#22014
passed with stages
in 5 minutes and 37 seconds
Changes
2
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
lang/src/main/java/edu/kit/iti/formal/psdbg/parser/ast/Variable.java
View file @
35f07285
...
...
@@ -41,6 +41,8 @@ import org.antlr.v4.runtime.Token;
@RequiredArgsConstructor
@EqualsAndHashCode
(
callSuper
=
false
)
public
class
Variable
extends
Literal
implements
Comparable
<
Variable
>
{
public
static
final
String
MAGIC_PREFIX
=
"#"
;
@NonNull
private
String
identifier
;
public
Variable
(
Token
variable
)
{
...
...
rt-key/src/main/java/edu/kit/iti/formal/psdbg/interpreter/funchdl/RuleCommandHandler.java
View file @
35f07285
...
...
@@ -24,6 +24,7 @@ import edu.kit.iti.formal.psdbg.interpreter.data.State;
import
edu.kit.iti.formal.psdbg.interpreter.data.VariableAssignment
;
import
edu.kit.iti.formal.psdbg.interpreter.exceptions.ScriptCommandNotApplicableException
;
import
edu.kit.iti.formal.psdbg.parser.ast.CallStatement
;
import
edu.kit.iti.formal.psdbg.parser.ast.Variable
;
import
lombok.Getter
;
import
lombok.RequiredArgsConstructor
;
import
org.apache.logging.log4j.LogManager
;
...
...
@@ -41,9 +42,11 @@ import java.util.Set;
*/
@RequiredArgsConstructor
public
class
RuleCommandHandler
implements
CommandHandler
<
KeyData
>
{
public
static
final
String
[]
MAGIC_PARAMETER_NAMES
=
new
String
[]{
"on"
,
"formula"
};
private
static
final
Logger
LOGGER
=
LogManager
.
getLogger
(
RuleCommandHandler
.
class
);
@Getter
private
final
Map
<
String
,
Rule
>
rules
;
...
...
@@ -85,15 +88,15 @@ public class RuleCommandHandler implements CommandHandler<KeyData> {
@Override
public
boolean
handles
(
CallStatement
call
,
KeyData
data
)
throws
IllegalArgumentException
{
if
(
rules
.
containsKey
(
call
.
getCommand
()))
return
true
;
//static/rigid rules
try
{
if
(
data
!=
null
)
{
Goal
goal
=
data
.
getGoal
();
Set
<
String
>
rules
=
findTaclets
(
data
.
getProof
(),
goal
);
return
rules
.
contains
(
call
.
getCommand
());
}
try
{
if
(
data
!=
null
)
{
Goal
goal
=
data
.
getGoal
();
Set
<
String
>
rules
=
findTaclets
(
data
.
getProof
(),
goal
);
return
rules
.
contains
(
call
.
getCommand
());
}
}
catch
(
NullPointerException
npe
)
{
System
.
out
.
println
(
"npe = "
+
npe
);
return
false
;
return
false
;
}
return
false
;
}
...
...
@@ -111,7 +114,8 @@ public class RuleCommandHandler implements CommandHandler<KeyData> {
State
<
KeyData
>
state
=
interpreter
.
getCurrentState
();
GoalNode
<
KeyData
>
expandedNode
=
state
.
getSelectedGoalNode
();
KeyData
kd
=
expandedNode
.
getData
();
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
Map
<
String
,
Object
>
map
=
createParameters
(
expandedNode
.
getAssignments
());
params
.
asMap
().
forEach
((
k
,
v
)
->
map
.
put
(
k
.
getIdentifier
(),
v
.
getData
()));
LOGGER
.
info
(
"Execute {} with {}"
,
call
,
map
);
try
{
...
...
@@ -147,4 +151,12 @@ public class RuleCommandHandler implements CommandHandler<KeyData> {
}
}
private
Map
<
String
,
Object
>
createParameters
(
VariableAssignment
assignments
)
{
Map
<
String
,
Object
>
params
=
new
HashMap
<>();
for
(
String
s
:
MAGIC_PARAMETER_NAMES
)
{
params
.
put
(
s
,
assignments
.
getValue
(
new
Variable
(
Variable
.
MAGIC_PREFIX
+
s
)));
}
return
params
;
}
}
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment