DSL模式列表

我的关于特定领域语言的书使用模式结构来组织我用来描述DSL的概念。这是那本书的图案列表。每个都链接到每个模式的一个页面。页面不包含太多细节,只不过是对书中相关章节的说明。我的主要目的是为每个模式提供一个参考URI。

自适应模型

在数据结构中排列代码块以实现模拟计算模型。

替代标记化技术

从解析器中更改词法分析行为。

注释

关于程序元素的数据,例如类和方法,可以在编译或执行期间进行处理。

脑钠肽

正式定义编程语言的语法。

类符号表

使用类及其字段实现符号表,以便在静态类型语言中支持类型感知的自动完成。

关闭

可以表示为对象(或第一类数据结构)并通过允许代码引用其词法范围无缝地放入代码流中的代码块。

建筑施工单位

使用在字段中存储构造函数参数的生成器增量创建不可变对象。

上下文变量

使用变量保存分析过程中所需的上下文。

决策表

以表格形式表示条件语句的组合。

定界符定向翻译

通过将源文本分解成块(通常是行),然后解析每个块来翻译源文本。

依赖关系网络

由依赖关系链接的任务列表。运行ATASK,你调用它的依赖关系,运行这些任务。

动态接收

处理消息而不在ReceivingClass中定义它们。

嵌入式解释

将解释器动作嵌入语法中,因此,执行解析器会直接解释文本以产生响应。

嵌入式翻译

将输出生产代码嵌入解析器,以便在分析运行时逐渐生成输出。

嵌入助手

通过向模板化机制提供所有需要的函数,使模板化系统中的代码最小化的对象。

表达式生成器

一个物体,或对象族,它提供了一个普通命令查询API的FluentInterface。

外码

将一些外部代码嵌入到外部DSL中,以提供比在DSL中指定的更精细的行为。

功能序列

作为语句序列的函数调用的组合。

代沟

通过继承将生成的代码与未生成的代码分开。

文字扩展名

向程序文本添加方法。

文字列表

用文本列表表示语言表达式。

文字地图

将表达式表示为文本映射。

在语言处理之前,使用模板化生成.

方法涟

使修饰符方法返回宿主对象,这样就可以在一个表达式中调用多个修饰符。

模型无知的一代

将所有逻辑硬编码到生成的代码中,这样就不存在语义模型.

模型感知生成

使用DSL语义模型的显式模拟生成代码,这样生成的代码就具有通用的特定分离。

嵌套闭包

通过将函数调用的语句子元素放入参数的闭包中来表示它们。

嵌套函数

通过将函数调用嵌套为其他调用的参数来组合函数。

嵌套运算符表达式

可以递归地包含表达式相同形式的运算符表达式(例如,算术和布尔表达式)。

换行符

使用换行符作为语句分隔符。

通知

收集错误和其他消息以向调用者报告。

对象范围

放置DSL脚本,以便将裸引用解析为单个对象。

解析树操作

捕获代码片段的解析树,以使用DSL处理代码对其进行操作。

分析器组合器

通过解析器对象的组合创建自顶向下的解析器。

分析器生成器

构建一个语法文件驱动的解析器作为DSL。

生产规则体系

通过一套生产规则组织逻辑,每个都有一个条件和一个动作。

递归下降分析器

使用语法运算符的控制流和非终端识别器的递归函数创建自顶向下的解析器。

regex表lexer

使用正则表达式列表实现词汇分析器。

语义模型

由DSL填充的模型。

状态机

将系统建模为一组显式状态,并在它们之间进行转换。

符号表

解析过程中存储所有可识别对象以解析引用的位置。

语法定向翻译

通过定义语法并使用该语法构造翻译来翻译源文本。

模板化生成

通过手写输出文件和放置模板标注生成输出,以生成可变部分。

文字打磨

在更严重的处理之前执行简单的文本替换。

变压器发电

通过编写导航输入模型并生成输出的转换器来生成代码。

树木构造

解析器创建并返回源文本的语法树表示,这些源文本稍后由树遍历代码操作。