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
dcfaaaeb
Commit
dcfaaaeb
authored
Mar 31, 2020
by
Kateřina Sloupová
Browse files
strange emptyset bug
parent
e71ba9bd
Pipeline
#57391
failed with stage
in 19 seconds
Changes
4
Pipelines
2
Hide whitespace changes
Inline
Side-by-side
RegExLexer.py
View file @
dcfaaaeb
...
...
@@ -9,26 +9,27 @@ import sys
def
serializedATN
():
with
StringIO
()
as
buf
:
buf
.
write
(
"
\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2\f
"
)
buf
.
write
(
"
\67\b\1\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t
"
)
buf
.
write
(
"
\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t\13\3\2\3\2\3\3\3\3\3
"
)
buf
.
write
(
"
\4\3\4\3\4\5\4\37\n\4\3\5\3\5\3\5\3\6\3\6\3\7\3\7\3\b
"
)
buf
.
write
(
"
\3\b\3\t\3\t\3\t\5\t
-
\n\t\3\n\3\n\3\13\6\13\62\n\13\r
"
)
buf
.
write
(
"
\13\16\13\63\3\13\3\13\2\2\f\3\3\5\4\7\5\t\6\13\7\r\b
"
)
buf
.
write
(
"
\17\t\21\n\23\13\25\f\3\2\4\5\2\62
;C
\\
c|
\5\2\13\f\17\17
"
)
buf
.
write
(
"
\"\"\2
9
\2\3\3\2\2\2\2\5\3\2\2\2\2\7\3\2\2\2\2\t\3\2\2
"
)
buf
.
write
(
"
\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2\2\2\21\3\2\2\2
"
)
buf
.
write
(
"
\2\23\3\2\2\2\2\25\3\2\2\2\3\27\3\2\2\2\5\31\3\2\2\2\7
"
)
buf
.
write
(
"
\36\3\2\2\2\t
\3\2\2\2\13
#
\3\2\2\2\r
%
\3\2\2\2\17\'\3\2
"
)
buf
.
write
(
"
\2\2\21
,
\3\2\2\2\23
.
\3\2\2\2\25\61\3\2\2\2\27\30\7
*
\2
"
)
buf
.
write
(
"
\2\30\4\3\2\2\2\31\32\7
+
\2\2\32\6\3\2\2\2\33\37\7
,
\2\2
"
)
buf
.
write
(
"
\34\35\7
`
\2\2\35\37\7
,
\2\2\36\33\3\2\2\2\36\34\3\2\2\2
"
)
buf
.
write
(
"
\37\b\3\2\2\2
!
\7
`
\2\2
!
\"\7
-
\2\2\"\n\3\2\2\2
#$
\7\60\2
"
)
buf
.
write
(
"
\2
$
\f\3\2\2\2
%&
\7
-
\2\2
&
\16\3\2\2\2\'
(
\t\2\2\2
(
\20\3\2
"
)
buf
.
write
(
"
\2\2
)-
\7\u03b7\2\2
*+
\7
^
\2\2
+-
\7
g
\2\2
,)
\3\2\2\2
,*
\3\2\2
"
)
buf
.
write
(
"
\2
-
\22\3\2\2\2
./
\7\u2207\2\2
/
\24\3\2\2\2\60\62\t\3\2\2
"
)
buf
.
write
(
"
\61\60\3\2\2\2\62\63\3\2\2\2\63\61\3\2\2\2\63\64\3\2\2
"
)
buf
.
write
(
"
\2\64\65\3\2\2\2\65\66\b\13\2\2\66\26\3\2\2\2\6\2\36
,"
)
buf
.
write
(
"
\63\3\b\2\2
"
)
buf
.
write
(
":
\b\1\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7
"
)
buf
.
write
(
"
\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t\13\3\2\3\2\3\3\3\3\3\4
"
)
buf
.
write
(
"
\3\4\3\4\5\4\37\n\4\3\5\3\5\3\5\3\6\3\6\3\7\3\7\3\b\3
"
)
buf
.
write
(
"
\b\3\t\3\t\3\t\5\t
-
\n\t\3\n\3\n\3\n\5\n\62\n\n\3\13\6
"
)
buf
.
write
(
"
\13\65\n\13\r\13\16\13\66\3\13\3\13\2\2\f\3\3\5\4\7\5
"
)
buf
.
write
(
"
\t\6\13\7\r\b\17\t\21\n\23\13\25\f\3\2\4\5\2\62
;C
\\
c|"
)
buf
.
write
(
"
\5\2\13\f\17\17\"\"\2
=
\2\3\3\2\2\2\2\5\3\2\2\2\2\7\3\2
"
)
buf
.
write
(
"
\2\2\2\t\3\2\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2\2
"
)
buf
.
write
(
"
\2\21\3\2\2\2\2\23\3\2\2\2\2\25\3\2\2\2\3\27\3\2\2\2\5
"
)
buf
.
write
(
"
\31\3\2\2\2\7\36\3\2\2\2\t
\3\2\2\2\13
#
\3\2\2\2\r
%
\3\2
"
)
buf
.
write
(
"
\2\2\17\'\3\2\2\2\21
,
\3\2\2\2\23\61\3\2\2\2\25\64\3\2
"
)
buf
.
write
(
"
\2\2\27\30\7
*
\2\2\30\4\3\2\2\2\31\32\7
+
\2\2\32\6\3\2\2
"
)
buf
.
write
(
"
\2\33\37\7
,
\2\2\34\35\7
`
\2\2\35\37\7
,
\2\2\36\33\3\2\2
"
)
buf
.
write
(
"
\2\36\34\3\2\2\2\37\b\3\2\2\2
!
\7
`
\2\2
!
\"\7
-
\2\2\"\n\3
"
)
buf
.
write
(
"
\2\2\2
#$
\7\60\2\2
$
\f\3\2\2\2
%&
\7
-
\2\2
&
\16\3\2\2\2\'
(
\t
"
)
buf
.
write
(
"
\2\2\2
(
\20\3\2\2\2
)-
\7\u03b7\2\2
*+
\7
^
\2\2
+-
\7
g
\2\2
,)
\3
"
)
buf
.
write
(
"
\2\2\2
,*
\3\2\2\2
-
\22\3\2\2\2
.
\62\7\u2207\2\2
/
\60\7
^
\2
"
)
buf
.
write
(
"
\2\60\62\7\62\2\2\61
.
\3\2\2\2\61
/
\3\2\2\2\62\24\3\2\2
"
)
buf
.
write
(
"
\2\63\65\t\3\2\2\64\63\3\2\2\2\65\66\3\2\2\2\66\64\3\2
"
)
buf
.
write
(
"
\2\2\66\67\3\2\2\2\67
8
\3\2\2\2
89
\b\13\2\2
9
\26\3\2\2\2
"
)
buf
.
write
(
"
\7\2\36
,
\61\66\3\b\2\2
"
)
return
buf
.
getvalue
()
...
...
@@ -54,7 +55,7 @@ class RegExLexer(Lexer):
modeNames
=
[
"DEFAULT_MODE"
]
literalNames
=
[
"<INVALID>"
,
"'('"
,
"')'"
,
"'^+'"
,
"'.'"
,
"'+'"
,
"'
\u2205
'"
]
"'('"
,
"')'"
,
"'^+'"
,
"'.'"
,
"'+'"
]
symbolicNames
=
[
"<INVALID>"
,
"LEFT_PAR"
,
"RIGHT_PAR"
,
"ITER"
,
"POS_ITER"
,
"CONCAT"
,
"UNION"
,
...
...
RegExParser.py
View file @
dcfaaaeb
...
...
@@ -44,7 +44,7 @@ class RegExParser ( Parser ):
sharedContextCache
=
PredictionContextCache
()
literalNames
=
[
"<INVALID>"
,
"'('"
,
"')'"
,
"<INVALID>"
,
"'^+'"
,
"'.'"
,
"'+'"
,
"<INVALID>"
,
"'
\u03B5
'"
,
"'
\u2205
'"
]
"'+'"
]
symbolicNames
=
[
"<INVALID>"
,
"LEFT_PAR"
,
"RIGHT_PAR"
,
"ITER"
,
"POS_ITER"
,
"CONCAT"
,
"UNION"
,
"ALPHABET"
,
"EPSILON"
,
"EMPTYSET"
,
...
...
@@ -102,12 +102,6 @@ class RegExParser ( Parser ):
if
hasattr
(
listener
,
"exitStart"
):
listener
.
exitStart
(
self
)
def
accept
(
self
,
visitor
:
ParseTreeVisitor
):
if
hasattr
(
visitor
,
"visitStart"
):
return
visitor
.
visitStart
(
self
)
else
:
return
visitor
.
visitChildren
(
self
)
...
...
@@ -175,12 +169,6 @@ class RegExParser ( Parser ):
if
hasattr
(
listener
,
"exitExpr"
):
listener
.
exitExpr
(
self
)
def
accept
(
self
,
visitor
:
ParseTreeVisitor
):
if
hasattr
(
visitor
,
"visitExpr"
):
return
visitor
.
visitExpr
(
self
)
else
:
return
visitor
.
visitChildren
(
self
)
def
expr
(
self
,
_p
:
int
=
0
):
...
...
@@ -293,12 +281,6 @@ class RegExParser ( Parser ):
if
hasattr
(
listener
,
"exitConcatenated"
):
listener
.
exitConcatenated
(
self
)
def
accept
(
self
,
visitor
:
ParseTreeVisitor
):
if
hasattr
(
visitor
,
"visitConcatenated"
):
return
visitor
.
visitConcatenated
(
self
)
else
:
return
visitor
.
visitChildren
(
self
)
...
...
@@ -369,12 +351,6 @@ class RegExParser ( Parser ):
if
hasattr
(
listener
,
"exitIterable"
):
listener
.
exitIterable
(
self
)
def
accept
(
self
,
visitor
:
ParseTreeVisitor
):
if
hasattr
(
visitor
,
"visitIterable"
):
return
visitor
.
visitIterable
(
self
)
else
:
return
visitor
.
visitChildren
(
self
)
...
...
@@ -434,12 +410,6 @@ class RegExParser ( Parser ):
if
hasattr
(
listener
,
"exitParentheses"
):
listener
.
exitParentheses
(
self
)
def
accept
(
self
,
visitor
:
ParseTreeVisitor
):
if
hasattr
(
visitor
,
"visitParentheses"
):
return
visitor
.
visitParentheses
(
self
)
else
:
return
visitor
.
visitChildren
(
self
)
...
...
@@ -490,12 +460,6 @@ class RegExParser ( Parser ):
if
hasattr
(
listener
,
"exitSymbol"
):
listener
.
exitSymbol
(
self
)
def
accept
(
self
,
visitor
:
ParseTreeVisitor
):
if
hasattr
(
visitor
,
"visitSymbol"
):
return
visitor
.
visitSymbol
(
self
)
else
:
return
visitor
.
visitChildren
(
self
)
...
...
demo.py
View file @
dcfaaaeb
...
...
@@ -299,6 +299,8 @@ def main():
regex_test
(
"(b)(a)(c)"
)
regex_test
(
"b+a+c+a+c"
)
regex_test
(
"∅"
)
regex_test
(
"\e"
)
regex_test
(
'
\0
'
)
regex_test
(
"(∅ + ∅^*).(∅^* + ∅∅^+)"
)
...
...
fja_checker.py
View file @
dcfaaaeb
...
...
@@ -116,8 +116,15 @@ def main():
exit
(
0
)
elif
student_solution
.
characters
!=
teacher_solution
.
characters
:
print
(
"Abecedy zadaného jazyka a studentova řešení se liší "
"(abeceda je odvozena ze všech písmen objevujících se v přechodové funkci)."
)
# pravidlech/regulárním výrazu
if
task
==
"REG"
:
print
(
"Abecedy zadaného jazyka a studentova řešení se liší "
"(abeceda je odvozena ze všech písmen objevujících se v regulárním výrazu)."
)
elif
task
==
"GRA"
:
print
(
"Abecedy zadaného jazyka a studentova řešení se liší "
"(abeceda je odvozena ze všech terminálů objevujících se v pravidlech gramatiky)."
)
else
:
print
(
"Abecedy zadaného jazyka a studentova řešení se liší "
"(abeceda je odvozena ze všech písmen objevujících se v přechodové funkci)."
)
print
(
"Nesprávné řešení."
)
exit
(
1
)
...
...
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