coffeescript对象表示法(cson)的解析器
cson的Python项目详细描述
#Pycson
[![构建状态](https://travis-ci.org/avakar/pycson.svg?branch=master)(https://travis ci.org/avakar/pycson)
coffeescript对象表示法(cson)的python解析器。
导入cson
>;>cson.loads('a:1')
{'a':1}
>;>obj=cson.load(fin)
>;>obj
{a':1}
遗憾的是[coffescript][2]也没有格式语法,而是有一个规范的实现。
声称它使语法更简单。不幸的是,它在语言中添加了奇怪的角大小写。
这个解析器去掉了角大小写,
作为交换,在一些不太可能的情况下更改了文档的语义。
换言之,一些文档可能被coffescript解析器和pycson以不同的方式解析。
(有关详细信息,请参见[形式语法][3]。
*允许字符串插值(`“{test}”`)。但按字面意思处理。
*空格在数组和大括号括起来的对象中被忽略
(coffeescripts要求一致的缩进)。
*无空格对象贪婪地消耗尽可能多的键/值对。
*无空格对象中的所有行都必须具有相同的缩进。这是唯一
空格有意义的地方。对于两个具有相同缩进的行,不存在特殊的规定,它们的最大前导序列和制表符
必须相同(CopeScript只跟踪空白字符的数目)。可以在不更改输出的情况下删除行的。
#包含三个元素的数组:一个键的对象。
[
a:1
b:2
c:3
]
第一个有一个键。
[a:1
b:2
c:3]
注意pycson可以正确解析所有json文档(coffeescript不能,因为
空格和字符串插值)。
[1]:https://github.com/bevry/cson
[2]:http://coffeescript.org/
[3]:grammar.md
[![构建状态](https://travis-ci.org/avakar/pycson.svg?branch=master)(https://travis ci.org/avakar/pycson)
coffeescript对象表示法(cson)的python解析器。
导入cson
>;>cson.loads('a:1')
{'a':1}
>;>obj=cson.load(fin)
>;>obj
{a':1}
遗憾的是[coffescript][2]也没有格式语法,而是有一个规范的实现。
声称它使语法更简单。不幸的是,它在语言中添加了奇怪的角大小写。
这个解析器去掉了角大小写,
作为交换,在一些不太可能的情况下更改了文档的语义。
换言之,一些文档可能被coffescript解析器和pycson以不同的方式解析。
(有关详细信息,请参见[形式语法][3]。
*允许字符串插值(`“{test}”`)。但按字面意思处理。
*空格在数组和大括号括起来的对象中被忽略
(coffeescripts要求一致的缩进)。
*无空格对象贪婪地消耗尽可能多的键/值对。
*无空格对象中的所有行都必须具有相同的缩进。这是唯一
空格有意义的地方。对于两个具有相同缩进的行,不存在特殊的规定,它们的最大前导序列和制表符
必须相同(CopeScript只跟踪空白字符的数目)。可以在不更改输出的情况下删除行的。
#包含三个元素的数组:一个键的对象。
[
a:1
b:2
c:3
]
第一个有一个键。
[a:1
b:2
c:3]
注意pycson可以正确解析所有json文档(coffeescript不能,因为
空格和字符串插值)。
[1]:https://github.com/bevry/cson
[2]:http://coffeescript.org/
[3]:grammar.md