Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
fja
eval
Commits
eebcc1bc
Commit
eebcc1bc
authored
Mar 09, 2020
by
Kateřina Sloupová
Browse files
fja_checker fix (task type recognition)
parent
0e509fd4
Pipeline
#55094
failed with stage
in 26 seconds
Changes
2
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
fja_checker.py
View file @
eebcc1bc
...
...
@@ -2,22 +2,30 @@ from parser import Parser
from
reg_automata
import
DFA
from
antlr4
import
RecognitionException
# type: ignore
import
sys
import
signal
def
transformation
(
solution
:
str
,
solution_type
:
str
)
->
DFA
:
if
solution_type
==
"DFA"
:
if
solution_type
in
{
"DFA"
,
"TOT"
}:
parser
=
Parser
()
return
parser
.
str_to_dfa
(
solution
)
elif
solution_type
==
"NFA"
:
parser
=
Parser
()
nfa
=
parser
.
str_to_nfa
(
solution
)
return
nfa
.
determinize
()
#elif solution_type == "EFA":
# parser = Parser()
# efa = parser.str_to_efa(solution)
# return efa.eliminate_epsilon.determinize()
else
:
print
(
solution_type
,
"type of formalism is not recognized by fja_checker"
)
def
main
():
signal
.
alarm
(
60
)
with
open
(
sys
.
argv
[
1
])
as
student_file
:
student_solution
=
student_file
.
read
()
...
...
@@ -33,6 +41,7 @@ def main():
try
:
parser
=
Parser
()
result
=
student_dfa
.
is_equivalent
(
teacher_dfa
)
print
(
parser
.
dfa_to_str
(
teacher_dfa
))
if
result
:
exit
(
0
)
else
:
...
...
parser.py
View file @
eebcc1bc
...
...
@@ -101,7 +101,6 @@ class Parser:
else
:
return
init
+
" "
+
transition
+
" "
+
final
def
str_to_dfa
(
self
,
string
:
str
)
->
DFA
:
chars
=
antlr4
.
InputStream
(
string
)
lexer
=
DFA_grammarLexer
(
chars
)
...
...
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