一个很酷的分析工具。它是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。util。同时发生的叉子在游泳池里。常见的并行性准则,用于选择正确的并行度大小   java如何将空白字符追加到指定长度?   安卓应用程序中出现错误,SSLHandshakeException,找不到证书路径的信任锚点   java如何使用JUnit Mockito验证检查方法是否未被调用   java如何使用不同的@RequestMapping解析多个控制器中的静态页面   Selenium中的javascript需要验证搜索结果   访问数据库SQLiteopenHelper方法时java应用程序崩溃(nullpointerexception)   在二叉树中验证最小堆时出现java空指针异常   Java 7的SSL连接失败   java用RestEasyWebTarget替换ProxyFactory不起作用   在Java应用程序中单击“否”按钮后,数组程序冻结(无响应)   数组中的前缀Java初学者前进和   Java HTML解析器,包括脚本标记和LineNumberReader   在java中为长类型数字加前导零   正则表达式无法映射正则表达式java。lang.IllegalArgumentException:模式段中捕获组的数量