XML是一种用于存储文档的良好文件格式:具有元数据的内容。 JSON是一种用于存储数据的良好文件格式。
是否有类似的文件格式标准,擅长编码操作?换句话说,是否有一种标准的文件格式可以用于编码小型轻量级域特定语言?我想到的是简单的DSL,它只包含字符串数据和不超过十几个简单的命令。我的语言包括以一种非常简单的方式调用一个接一个的命令(没有条件或循环)。
目前,我已经使用XML来编码一系列操作,其中每个标记代表不同的命令。 SAX解析器将每个元素调度为函数调用。这很难看;只是感觉不是一个优雅的解决方案。
理想情况下,我将使用python而不是编写自己的解析器...试图获得使用已建立的标准文件格式的好处。一个后备是使用python本身,但当然我更喜欢一个语言中立的标准,如果要找到它。
答案 0 :(得分:1)
答案 1 :(得分:0)
Qt的QML框架通过扩展DSL development元素集以包含由C ++对象支持的自定义元素,提供了QML language的备用路径。 PySide提供了Python绑定。
即使QML主要用于UI开发,QML也可以扩展为表示任意对象树。
例如,这个snippet定义了一个新的QML元素(PieChart),然后在QML系统中注册并用于QML语言。
import sys
from PySide.QtCore import *
from PySide.QtGui import *
from PySide.QtDeclarative import *
class PieChart (QDeclarativeItem):
...
PieChart已在QML系统注册:
qmlRegisterType(PieChart, 'Charts', 1, 0, 'PieChart');
在QML(DSL)端,我们可以导入和使用PieChart:
import Charts 1.0
import Qt 4.7
Item {
...
PieChart {
id: aPieChart
anchors.centerIn: parent
width: 100; height: 100
name: "A simple pie chart"
color: "red"
}
...
答案 2 :(得分:0)
最后,我使用S表达式在Python中实现了一个简单的解释器。解析器很容易在网上找到(大约半页代码),并且通过使用函数装饰器可以简化语言的实现功能。