我对 Pyke 完全陌生,我正在尝试运行一个简单的代码,但它给了我一个syntax error
. 我从 sourceforge.com 的源代码安装了 pyke3,我使用了 python 3.10、python 3.97 并且都给出了相同的错误。这是所有文件的代码:
1-驱动程序.py
from pyke import knowledge_engine
engine = knowledge_engine.engine(__file__)
def rules():
engine.reset()
engine.activate('rules.krb')
2-facts.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
请帮忙。