描述问卷的DSL
textx-lang-questionnaire的Python项目详细描述
DSL问卷
用一个简单的终端解释器描述问卷的DSL。在
示例:
Q[type]: Project type
1[lang]. Language project
2[gen]. Generator project
Q[type=lang, extension]: File extension (e.g. "*.que"):
___ /\*\.[a-z0-9]+/
Q[package]: Package name
___ /[a-z][a-z0-9_]*$/
Q: Author name
___
Q: Author email
___
Q: This question is to
test multiline feature and indenting.
1. Working
2. Not working.
This is also to test multiline in choices.
每个问题的形式是Q:
或Q[<comma separated terms>]
。如果[]
与
给定术语,每个术语要么是问题ID,要么是
表单<lhs>=<rhs>
,其中<lhs>
是对前面问题ID的引用,而
<rhs>
是上一个问题的值,必须满足该值
要使用的问题。如果下面的问题取决于
回答。请参阅上面的File extension
问题,该问题仅针对语言
项目(因此type=lang
,type
是对上一个问题的引用)。在
问题的类型可以是自由形式(由___
指定)或choice if
给出了枚举选项。在
问题和选项都可以跨越多行(就像最后一个问题一样)。在
对于自由形式的问题,可以在//
内给出一个可选的正则表达式
(见上文Package name
)。这个正则表达式是一个输入验证器。在
此软件包提供了问卷的解释程序
txquestionnaire.questionnaire_interpreter(model, data=None)
它接受
使用此语言和
可选的默认答案字典,由任一问题ID(如果给定)键入
或问题编号。口译员将在控制台上运行调查问卷
并返回收集的数据字典。选项的值是序数
如果给定了数字或ID(如上面的Project type
,即lang
,gen
)中的数字或id。在
请看 tests用于 详细用法。在
- 项目
标签: