We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see ourdocumentation.
There was an error while loading.Please reload this page.
1 parent361d261 commitd11d863Copy full SHA for d11d863
pyformlang/cfg/cfg.py
@@ -1081,16 +1081,19 @@ def _read_line(cls, line, productions, terminals, variables):
1081
body_component=body_component[5:-1]
1082
else:
1083
type_component=""
1084
-ifbody_componentnotinEPSILON_SYMBOLSortype_component \
1085
-=="TER":
1086
-body_ter=Terminal(body_component)
+ifnotbody_component[0].isupper()ortype_component=="TER":
+ifbody_componentinEPSILON_SYMBOLS:
+body_ter=Epsilon()
1087
+else:
1088
+body_ter=Terminal(body_component)
1089
terminals.add(body_ter)
1090
body.append(body_ter)
-elifbody_component[0]instring.ascii_uppercaseor \
-type_component=="VAR":
1091
+elifbody_component[0].isupper()ortype_component=="VAR":
1092
body_var=Variable(body_component)
1093
variables.add(body_var)
1094
body.append(body_var)
1095
1096
+raiseValueError(f"Invalid rule definition:{body_component}")
1097
productions.add(Production(head,body))
1098
1099
defis_normal_form(self):