我在Python中创建一个简单的迷你语言解析器,在问题域附近进行编程以及所有这些.
无论如何,我想知道这里的人们会如何做到这一点 - 在Python中做这种事情的首选方式是什么?
我不会详细说明我所追求的内容,因为目前我只是在研究整个领域在Python中的容易程度.
感谢您的输入!
好的,所以我问过一些关于这个项目的小问题,但我对我想出的设计仍然没有多少信心,所以我会在更广泛的范围内提出一个问题.
我正在解析课程目录的先决条件描述.描述几乎总是遵循某种形式,这使我认为我可以解析其中的大多数.
从文本中,我想生成一个关于课程必备关系的图表.(在我解析数据之后,那部分会很简单.)
一些样本输入和输出:
"CS 2110" => ("CS", 2110) # 0
"CS 2110 and INFO 3300" => [("CS", 2110), ("INFO", 3300)] # 1
"CS 2110, INFO 3300" => [("CS", 2110), ("INFO", 3300)] # 1
"CS 2110, 3300, 3140" => [("CS", 2110), ("CS", 3300), ("CS", 3140)] # 1
"CS 2110 or INFO 3300" => [[("CS", 2110)], [("INFO", 3300)]] # 2
"MATH 2210, 2230, 2310, or 2940" => [[("MATH", 2210), ("MATH", 2230), ("MATH", 2310)], [("MATH", 2940)]] # 3
Run Code Online (Sandbox Code Playgroud)
如果整个描述只是一个过程,则直接输出.
如果课程是连接的("和"),则它们都输出在同一列表中
如果课程脱离("或"),则它们位于不同的列表中
在这里,我们有"和"和"或". …
我一直在互联网上搜索文本编辑器中特定文件的语法突出显示,我读到了Lexers和Yacc.我对语法高亮的概念很困惑.
我使用PyQt4创建了一个简单的文本编辑器,我希望它能够启用语法高亮的编程语言,如HTML,CSS,Python,C/C++.但我不知道如何开始实施这个以及从哪里开始.请有人指出我正确的方向,并清楚我对语法高亮的疑虑.请.