неверный синтаксис в файле правил в pyke
Я новичок в Пайке, и я пытаюсь запустить простой код, но он дает мне
syntax error
. Я установил pyke3 из исходного кода с sourceforge.com, и я использую python 3.10, python 3.97, и оба выдают одну и ту же ошибку. Вот код всех файлов:
1- driver.py
from pyke import knowledge_engine
engine = knowledge_engine.engine(__file__)
def rules():
engine.reset()
engine.activate('rules.krb')
2- fact.kfb
has_age_of("some name", 38)
was_born_in("some name", 1976)
has_number_of_file("some name", 470)
has_gravidity_of("some name", Gs)
has_parity_of("some name", "p9 + 0")
has_gestational_age_of("some name", "10 weeks + 3 days")
works_as("some name", "some occupation")
has_blood_group("some name", "A+ve")
3-rules.krb
# KRB.krb
the_age
use aged_with($age, $name)
when
facts.has_age_of($name, $age)
и где я запускаю драйвер, это происходит:
writing [compiled_krb]/facts.fbc
Traceback (most recent call last):
File "e:\work\hospital_project\project\driver.py", line 5, in <module>
engine = knowledge_engine.engine(__file__)
File "C:\Users\serag\AppData\Local\Programs\Python\Python310\lib\site-packages\pyke\knowledge_engine.py", line 113, in __init__
target_package.compile(self)
File "C:\Users\serag\AppData\Local\Programs\Python\Python310\lib\site-packages\pyke\target_pkg.py", line 285, in compile
self.do_by_ext('compile',
File "C:\Users\serag\AppData\Local\Programs\Python\Python310\lib\site-packages\pyke\target_pkg.py", line 265, in do_by_ext
return getattr(self, "%s_%s" % (prefix, ext))(filename, *args)
File "C:\Users\serag\AppData\Local\Programs\Python\Python310\lib\site-packages\pyke\target_pkg.py", line 298, in compile_krb
return krb_compiler.compile_krb(rb_name, self.package_name,
File "C:\Users\serag\AppData\Local\Programs\Python\Python310\lib\site-packages\pyke\krb_compiler\__init__.py", line 114, in compile_krb
ast = krbparser.parse(krbparser, filename)
File "C:\Users\serag\AppData\Local\Programs\Python\Python310\lib\site-packages\pyke\krb_compiler\krbparser.py", line 601, in parse
return parser.parse(f.read() + '\n', lexer=scanner.lexer, tracking=True,
File "C:\Users\serag\AppData\Local\Programs\Python\Python310\lib\site-packages\pyke\krb_compiler\ply\yacc.py", line 263, in parse
return self.parseopt(input,lexer,debug,tracking,tokenfunc)
File "C:\Users\serag\AppData\Local\Programs\Python\Python310\lib\site-packages\pyke\krb_compiler\ply\yacc.py", line 792, in parseopt
tok = self.errorfunc(errtoken)
File "C:\Users\serag\AppData\Local\Programs\Python\Python310\lib\site-packages\pyke\krb_compiler\krbparser.py", line 553, in p_error
raise SyntaxError("invalid syntax",
File "e:\work\hospital_project\project\rules.krb", line 6
facts.has_age_of($name, $age)
^
SyntaxError: invalid syntax
Пожалуйста помоги.