一个很酷的分析工具。它是pyparsing的扩展。人们可以用它来构建自己的编程语言。

pyparsing-ext的Python项目详细描述


简介[PyParsing]的扩展(https://github.com/PyParsing/PyParsing)。你可以很容易地建立自己的语言。:v:

关键字
----
*peg
*正则表达式
*语法分析器
*形式语法
*操作语义



混合表达
2。构建语言(参见示例)


需求
----
pyparsing



工具

content
==



classes::


tokens:

charsnot:powerful charsnotin
precedby:as followedby(移到pyparsing)
同时:
linenstart:


操作:
base action:base class of actions
bifixaction:action forbifix运算符,如<;x,y>;




函数::

``python
keyrange
ordrange
chrrange
cjk,用于匹配中日韩语
枚举项
tupleexpression元组,如python中的元组(1,),(1,2)…
带两个sep的delimitedmatrix分隔符列表(称之为二阶列表)
````

ch2=pp.Regex('\n+').leaveWhitespace())
p = M.parseString('a b\n c d')
print(p.asList())

s = '''
[1]hello, world
[2]hello, kitty
'''
print(enumeratedItems().parseString(s))

cjk = ordRange(0x4E00, 0x9FD5)
cjk.parseString('我爱你, I love you') # => ['我爱你']

cjk = ordRanges((0x4E00, 0x9FD5,0,256)
cjk.parseString(‘我爱你’’我爱你’’cjk.parseString(‘我爱你’’’我爱你’’cjk.parseString;[‘我爱你’]




>将pyparsing导入到pp
integer=pp.pyparsing=pp.pyparsing=pp.pyparsing=pp.pyparsing=pp.pyparsing.identifier



>arithopslist=[(“-”,1,pp.opassoc.opassoc.1,1,pp.opassoc.opassoc.opassoc.opassoc.right*/’,2页,pp.opassoc.left),
(pp.one of('+-’),2页,pp.opassoc.left)


def func(exp):
return pp.group('<;'+exp+pp.suppress(','+exp+'+exp+gt;')pp.group(''124;'+exp+''124;'+pp.group(';'+exp+'''+exp+exp+“));pp.group(iden+'('+pp.delimitedlist(exp)++')')))
baseexpbr/>baseexpr=inte整数;varname
exp=mixedexpression(baseexpr,func=func,


a=exp.parsestring('5*g(-3)-4,5>;+f(6)'+f(6)'
print(a)

a
a
[[[5,“*”,['g',“(',['124',['-',['-',['-',3],'[124;']],“,']]],“+”,“+”,['4,[<;'4,5,5,'>;'>;']],“+”,“+”,['f',['f','f','[5,是的')']]]
```



## build your own languages

run `example1.py` for a simple example

output:
```C
Example 1:
|-1| -> ('|', '|')(-(1))
Example 2:
parse source code:

x=|-1|; # absolute value
y=x*2+1;
if x == 1
{z=[3.3_]; # the floor value
}
print "z =", z;

结果:
z=3
请参阅变量字典:
{x':十进制('1'),'y':十进制('3'),'z':3}
````


以命令行模式解析文本文件“test.spy”或“test1.py”

`example2.smallpy.cmdline()`

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java重启/加载另一个片段| Android   数据中带分号的java字符串正则表达式解析   Javascript与Java字符串编码   java双值反转关闭   java如何为记录定制equals/hashCode?   范围上的java NullPointerException。在生成的Excel文件(JExcel/Apache POI)上插入ZK API   Java scanner提供的简单注册验证表单   java实现无主关系googleappengine   java如何使用hibernate更新单个单元格   如何衡量(Java)应用程序的文件访问性能(和容量)   检查复杂列表的java REST服务   用户界面JavaGUI运行不平稳   投资银行业中的java摇摆   java将ArrayList从字母顺序排序到最频繁/最不频繁   Trie数据结构Java   java在JNA定义需要回调的地方传递原始函数指针?   使用Guice在所有对象中注入java实例   在java中无法获取正确的文本高度。awt。BufferdImage/Graphics2D