描述问卷的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=langtype是对上一个问题的引用)。在

问题的类型可以是自由形式(由___指定)或choice if 给出了枚举选项。在

问题和选项都可以跨越多行(就像最后一个问题一样)。在

对于自由形式的问题,可以在//内给出一个可选的正则表达式 (见上文Package name)。这个正则表达式是一个输入验证器。在

此软件包提供了问卷的解释程序 txquestionnaire.questionnaire_interpreter(model, data=None)它接受 使用此语言和 可选的默认答案字典,由任一问题ID(如果给定)键入 或问题编号。口译员将在控制台上运行调查问卷 并返回收集的数据字典。选项的值是序数 如果给定了数字或ID(如上面的Project type,即langgen)中的数字或id。在

请看 tests用于 详细用法。在

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

推荐PyPI第三方库


热门话题
如何在java中调用Paint组件方法   多层次POM中的java覆盖依赖项/插件管理   java模式识别   JavaSpringMVC+Log4j2定义了Log4j2。未标识非类路径位置中的属性文件   java我们如何将IntelliJ IDEA中的maven和gradle项目与源代码浏览支持集成?   Maven mvn exec:java在Windows上工作,但不是Ubuntu 20   java在Jaxb2Marshaller上使用带有packagesToScan属性的JAXBElement时没有端点适配器   java删除方法和节点   java如何为某些场景创建正则表达式模式   java如何通过gridView中的intent()传递ArrayList数据。setOnItemClickListener()   java UnsupportedClassVersionError 1.7/1.5   java为什么JVM参数是http。tomcat servlet没有使用proxyHost?   java将ArrayList从字母顺序排序到最频繁/最不频繁   java动态字段列表迭代   java如何将字节转换为位?   hadoop java。mapreduce作业中的lang.NullPointerException   javasocketIO无法与Android中的LocationListener一起使用   java在卸载时清除内部存储   java池回收错误2个精灵同时碰撞到一个精灵