TXL编译器/解释器
TXL是一种专门用于支持转换编程的编程语言。
TXL编译器/解释器是TXL语言程序的解释器和编译器。
1 TXL命令概述
TXL转换系统提供了四个命令,用于编译、执行和调试TXL程序,所有TXL命令都实现了几个标准选项,包括-help。 -help选项打印命令用法,选项和暂停的简短说明。
命令 | 功能 |
---|---|
txl | 调用TXL解释器在输入文件上编译,加载和执行TXL程序。 |
txldb | 调用TXL规则调试器,以允许在交互式命令行调试环境中逐步执行TXL程序。 |
txlp | 调用TXL解释器来编译、加载和运行带有语法和规则集分析的TXL程序,为给定输入程序的语法分析和规则集执行进行详细的时间和空间分析。 |
txlc | 调用TXL编译器将TXL程序直接转换为可独立于TXL运行的独立可执行应用程序。 |
txl
和 txldb
命令通常只接受一个文件参数,即要转换的输入文件的名称。命令格式为
txl inputfile.dialect
或
txl inputfile.c dialect.txl
其中 dialect 是要在文件上运行的TXL转换的名称,也即相应的TXL程序在文件 dialect.txl 中。
举例
txl Expression.Calculator
上述命令表示,TXL处理器将要运行的TXL程序是Calculator.txl。
txl count.c c2p.Txl
上述命令表示,TXL处理器将对文件count.c运行 c2p TXL程序。
要运行的TXL程序可以再当前目录、用户的TXL库目录或系统的TXL库目录中。TXL程序中include语句引用的文件以类似的方式解析。
TXL程序目录 | 路径 | 解析优先级 |
---|---|---|
当前目录 | . | 高 |
用户的TXL目录 | ~/lib/txl | 中 |
系统的TXL目录 | /usr/local/lib/txl | 低 |
2 TXL命令详解
txl [ options ] [ -o outputfile ] inputfile [ txlfile ] [ - useroptions ]
参数 | 说明 |
---|---|
inputfile | 指定要由TXL程序转换的输入文件 |
txlfile | TXL程序本身,必须以“.Txl”结尾命名。 如果省略txlfile,则从给定输入文件的文件名后缀推断出它。 |
-o outputfile | 转换后的输出 |
options 说明:
选项 | 说明 |
---|---|
-q[uiet] | 禁止消息,仅打印错误消息 |
-v[erbose] | 打印更详细的进度消息,提供各处理阶段的空间和文件信息 |
-c[ompile] | 仅将TXL程序编译为TXL虚拟机字节码,不执行,生成.CTxl文件 |
-l[oad] | 使用先前编译的TXL程序(.CTxl文件)加载和转换输入。 |
-d SYMBOL | 定义TXL预处理器符号SYMBOL |
-commont | 将输入文件中的注释视为输入项 |
-char | 将所有输入字符(包括换行符和空格)视为重要字符 |
-newline | 仅将换行符(不是制表符和空格)视为重要字符 |
-multiline | 允许 token 跨行(默认) |
-token | 仅将换行符和空格视为分隔符(默认) |
-attr | 在转换后的输出中打印属性 |
-raw | 输出时,关闭由TXL内置的间距规则 |
-id[chars] ‘CCC’ | 将字符“CCC”视为[id]标记中的有效字符。 |
-sp[chars] ‘CCC’ | 将字符“CCC”视为等效于空格字符并被视为分隔符的字符集 |
-esc[char] ‘C’ | 使用’C’作为字符串和字符文字中的转义字符 |
-upper | 在输入时,将除[stringlit]和[charlit]之外的所有输入标记转换为大写 |
-lower | 在输入时,将[stringlit]和[charlit]之外的所有输入标记转换为输入的小写 |
-case | 在输入时,忽略大小写 |
-w[idth] NNN | 设置每行最多输出字符,范围在20到32767之间 |
-in[dent] NN | 将缩进量设置为NN个字符,默认为4 |
-tabnl | 如果需要,允许[TAB_NN]指令在输出中强制换行以对齐 |
-xml | 将转换结果输出为XML分析树 |
-i[nclude] DIR | 将DIR添加到TXL包含文件搜索路径 |
-s[ize] MM | 将分配给TXL编译器和变换器数据结构的虚拟内存设置为指定的大小 |
-u[sage] | 运行结束时报告TXL资源使用情况统计信息 |
-noOPTION | 关闭命令行选项OPTION |
- USERARGS | 将剩余的命令参数传递给预定义全局变量TXLargs 对应命令 txl eg.in in.Txl -s 100 - -myopt foo -otheropt TXLargs 将成为 [repeat stringlit] 的变量,值为"-myopt" “foo” “-otheropt” |