英语法语西班牙文

OnWorks 网站图标

otags - 云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管服务提供商中运行 otags

这是可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行的命令 otags,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


otags - 从 OCaml 源为 emacs 和 vi/vim 生成标签文件

概要


标签 [静态选项] ... [文件] ... [动态选项] ... [文件] ...

商品描述


标签 产生 标签 的档案 emacs的标签 的档案 vi/VIM 给这些编辑
能够直接跳转到函数和值定义(使用 M-。 在 Emacs 和 ^] in
vi[m] 光标在符号上)。

标签 使用 营地4 用于解析。 这比基于正则表达式的标记更精确。
在不利方面, 标签 只能标记语法正确的文件。 此外, 标签 is
OCaml 版本特定:要编译的源 OCaml 版本 XY 一般来说,可以
只被标记为 标签 版本 XY.

标签 可以标记所有文件 营地4 可以解析。 内部 标签 保持一个 当前 解析器
名单 可以用选项修改 -pc (清晰的列表), -pa (添加到列表中),以及 -公关
(重置为默认)。 的默认值 当前 解析器 名单 符合标准
OCaml 语法(包含解析器 ro, 请参阅标准 CAMLP4 解析扩展
以下)。 每个源文件都用一个 营地4 解析器,其中所有解析扩展
来自 当前 解析器 名单 已加载。 这 营地4 标准解析器链接到
标签 如果 当前 解析器 名单 只包含这样的解析器,那么解析模块是
内部构建。 否则外部 营地4 过程开始。

标签 标记结构和签名中的所有顶级项目,包括中缀运算符和
嵌套模块和签名。 它还标记类中的实例变量和方法,以及
类类型。 文件名 文件 在命令行上被解析为接口,如果它们有
.mli 后缀和作为实现,如果它们有 .ml 后缀。 (另见动态
选项 -intf-impl.)

标签 可以标记目录树中的所有文件(如果选项 -r 给出)。 文件是
由...生成 卡姆莱克斯 or 卡姆利亚克 或者需要预处理的 营地4
但是,解析器必须标记在运行这些工具的同一目录中。
这是因为行指令 卡姆莱克斯卡姆利亚克 放入生成的文件中
相对于生成进程的当前工作目录。 为了 营地4
解析器 包括 指令可以相对于当前工作来解决
的目录 营地4 过程。 因此,如果您从不同的
目录,您将收到一条错误消息。

当递归标记整个目录树时,可以从
当前 解析器 名单 在解析器提示文件或目录树中,请参阅选项 -解析器提示
解析提示文件如下。

标签文件可以包含绝对和/或相对文件名。 标签 使用来自的文件名
标签文件的命令行。 在命令行上指定相对文件名
因此会给你一个带有相对文件名的标签文件。 显然,一个带有
相对文件名仅当它位于所在目录中时才有效 标签
开始。 标签 支持在父级中写入具有相对文件名的标签文件
通过选项目录 -添加路径,请参见下面的示例。

静态的 配置


静态选项在整个程序运行中生效,无论它们在程序中的位置如何
命令行。

-r 下降到目录。 使用此选项,如果其中之一 文件 参数是一个
目录 标签 将递归标记整个目录树中的所有文件。

-o 文件
将标签写入 文件。 默认是 标签 (用于 emacs的) 以及 标签 vi (如果 -vi
选项)在当前目录中。 如果 文件 是一个破折号 ( - ) 标签是
写入标准输出。

-a 附加到现有的 TAGS 文件(仅适用于 emacs TAGS 文件)。

-vi 生成标签 vi 并将默认输出文件更改为 标签.

-I dir 将目录 dir 添加到 营地4 外部目标文件的搜索路径 营地4
解析调用。

-add-path 路径
添加 在标签文件中每个相关文件名的前面。 有用的时候
您想将标签文件放在父目录中。

-parser-hints 文件
在指定的文件或目录树中应用解析器提示。 每当 标签 标签
出现在解析器提示文件中的文件,它使用那里指定的解析器
而不是 当前 解析器 名单,请参阅下面的解析提示文件。 这个选项可以
多次处理多个提示文件。 如果 文件 是一个目录然后
该树中的所有文件都作为解析器提示文件进行处理。

-版
打印版本并退出。

-v 详细。 在解析文件时打印文件名和外部命令行
开始 营地4 解析进程(如果有的话)。 如果 -v 是第一个命令行参数
如果异常转义,则启用并打印异常的回溯
终止 标签 (这被认为是一个错误,我希望有一个错误
报告)。

-q 保持安静。

-help 打印选项列表。

--help 别名 -救命

动态 配置


动态选项只影响命令行中跟在它们后面的参数。

-intf 文件
解析和标记 文件 作为接口。

-impl 文件
解析和标记 文件 作为实施。

-pc 清除 当前 解析器 名单.

-pa 解析器
添加 解析器 以及 当前 解析器 名单。 如果 解析器 不是标准之一
分布的解析器 营地4 然后解析以下文件
分开 营地4 过程。 解析器 必须被接受 营地4 -解析器,即,
它必须是标准的camlp4解析器名称或字节码文件(.cmo) 或图书馆
(.cma).

-pr 重置 当前 解析器 名单 为其默认值(解析标准 OCaml 也完全不需要
扩展名)。

-pp 打印 当前 解析器 名单.

-外部
标签 使用外部解析所有以下文件 营地4 的过程。

-实习生
切换回(默认)内部解析。

解析 HINTS FILES


解析提示文件是为特定文件指定解析器的简单文本文件。 这是
使用选项递归标记时很有用 -r. 这是一些文件的示例
OCaml 分配:

oq:
camlp4/示例/parse_files.ml
o rq g:
camlp4/示例/macros.ml
camlp4/例子/arith.ml
射频调试:
camlp4/Camlp4Bin.ml
camlp4/mkcamlp4.ml
camlp4/camlp4prof.ml
camlp4/camlp4prof.mli

解析器提示文件的格式如下。 空行和以“#”开头的行
被忽略。 解析器提示文件由任意数量的部分组成。 每个部分
以冒号终止的行开头,该行指定要使用空格的解析器
解析器名称的分隔列表(如选项接受的那些 -pa)。 剩下的
部分包含文件名,每行一个。 前导和尾随空格将被忽略。

示例


标签 一些 in 原版的 一些 in 修订 句法:

标签 原始文件 -pc -pa r 修订版.ml -公关 原始文件

这款 -pc 是必要的,因为,对于 营地4, 原本的 OCaml 语法是
修订的语法。 因此,默认 当前 解析器 名单 包含解析器 r 已经
并添加 r 不会改变 当前 解析器 名单.

标签 - 报价 (原始主机语法和修改后的引用语法):

标签 -pa rq 报价文件

标签 使用 性别库 延期:

标签 -I /usr/lib/ocaml/类型转换 -I /usr/lib/ocaml/sexplib -pa pa_type_conv.cmo
-pa pa_sexp_conv.cmo 使用_sexp.ml

这款 -I 选项指定目录 pa_type_conv.cmopa_sexp_conv.cmo 旨在
位于系统上。

标签 in a 子目录 保持 标签 文件 in 目录

cd 子目录; 标签 -o ../标签 -添加路径 子目录 ...

这个复杂的过程只有在里面有文件时才需要 子目录 带线
包含相对文件名的指令(例如,由 卡姆莱克斯 or
卡姆利亚克 在里面跑 子目录) 并且当有其他目录的材料时
应该添加到 ../标签. 如果没有具有相关行指令的文件,则可以
只需使用“标签 -r" 在包含的目录中 子目录. 如果没有其他
可以将标签文件放入的子目录 子目录 不使用 -o 或 -add-path。

标准 CAMLP4 解析 EXTENSIONS


目前没有关于引用标准的名称和别名的文档 营地4
解析模块。 此外,这些模块之间的依赖关系大多没有记录。 这
唯一的信息来源是文件 camlp4/Camlp4Bin.ml ,在 OCaml 分布。

下面的列表描述了标识符 营地4 -解析器 具体对待。 这个
因此是标准清单 营地4 解析器。 对于这些标识符的情况不是
重要的(它们通过管道输送 字符串.小写 匹配前)。 依赖关系
这里列出的被自动神奇地处理 营地4标签.

r, 卡姆勒, 已修正, pa_r.cmo, camlp4ocaml 修订的解析器.cmo
修改了没有流解析器的语法。

rr, 重载, 重新加载, camlp4ocamlreloadedparser.cmo
修改后的语法的变体(用法未知)。

o, 卡姆, pa_o.cmo, camlp4camlparser.cmo
没有流解析器的原始语法。 取决于解析器 r.

rp, 解析器, pa_rp.cmo, camlp4ocamlrevisedparserparser.cmo
使用流解析器修改语法。 (请参阅 OCaml 5134 及更早版本的错误 #3.12.0。)
取决于解析器 r.

op, 解析器, pa_op.cmo, camlp4ocamlparserparser.cmo
流解析器的原始语法。 取决于解析器 r, o, rp

g, 语法, pa_extend.cmo, pa_extend_m.cmo, camlp4grammarparser.cmo
语法扩展。

m, , pa_macro.cmo, camlp4macroparser.cmo
宏和条件。

q, camlp4quotationexpander.cmo
反思语录。 此解析扩展采用当前主机语法和
使用该当前语法添加引用扩展器,以便生成的语法
是反射性的:之后更改主机语法也会影响引用
句法。 取决于模块 Camplp4报价通用 (通用报价基础设施)。

rq, q_mlast.cmo, camlp4ocaml 修订后的报价扩展器.cmo
修订后的报价。 在修订后的语法中添加引号。 主机及报价
解析保持独立。 取决于模块 Camplp4报价通用 (共同
报价基础设施)。

oq, camlp4camloriginalquotationexpander.cmo
原始 OCaml 与原始报​​价。 加载原始 OCaml(无流
解析器)作为主机语法和引用语法。 主机和引号语法是
独立(不反思)。 取决于解析器 卡姆勒, 卡姆 和模块
Camplp4报价通用

rf 全面修订。 使用流解析器、语法扩展、列表设置修改后的语法
理解和宏,并添加反思性引用。 取决于
解析器/模块 r, rp, Camplp4报价通用, q, g, 补偿, m.

of 原汁原味。 使用流解析器、语法扩展、列表设置原始 OCaml
理解和宏并添加反思性引用(即,引用在
原始语法)。 (请参阅 OCaml 5129 及更早版本的错误 #3.12.0。)取决于
解析器/模块 r, o, rp, op, Camplp4报价通用, q, g, 补偿m.

补偿, camlp4list理解.cmo
列出理解。

调试, camlp4调试解析器, camlp4debugparser.cmo
调试语句 调试camlp4_调试. 这些语句的扩展
取决于环境变量的值 STATIC_CAMLP4_DEBUG 这样也
生成的标签条目可能取决于此变量。

诊断


解析错误报告正常 营地4 错误信息。 没有生成标签
产生错误的文件。 在这种情况下,标记会继续下一个文件。

如果文件所在的行
找不到指令引用。 这可能发生,如果 标签 在不同的地方开始
目录而不是生成错误文件的程序。

标签 尝试处理带有
空的 当前 解析器 名单. 这发生在没有 -pa 选项如下 -pc.

标签 打印“在...跳过文件中找到的顶级指令。” 对于包含顶级的文件
指令。 问题是抽象语法树中的位置信息是
在顶级指令之后不正确,请参阅错误 #5127。

转义终止的异常和断言 标签 被视为错误。 如果他们
发生,请使用选项 -v as 第一 命令行开关以获取异常回溯
并将所有相关信息作为错误报告提交。

退出 状态


0 一切顺利

1 发生解析错误或其他错误,并且 标签 跳过受影响的文件

2 导致的致命错误 标签 中止

3 一些错误导致崩溃,从中 标签 只能勉强恢复

问题


这款 营地4OCaml 解析器总是以微妙的方式不同。 制作 营地4 独立于
OCaml 加剧了问题。 营地4 4.02.3 版只接受很少的属性。 它
不接受块或独立属性(那些具有 [@@[@@@) 或扩展节点 (
[% or [%%). 标签 因此在许多失败中失败 OCaml 标准库。

失踪 功能


附加到 vi 标签文件需要重新读取现有的标签文件,因为 vi 标签
文件被排序。

不相容 营地4 语法树(来自外部 营地4 解析进程)被检测到
与魔术数字。 然而,一个不兼容的 营地4 尝试加载时可能会死
标签 具体的 营地4 打印机。 这种致命的动态加载器错误被视为
解析错误,因为 营地4 在这两种情况下产生相同的退出状态。

鸣谢


Cuihtlauac Alvarado 和 Jean-Francois Monin 是第一个利用 营地4 用于标记
OCaml 文件。 这个版本是一个完整的重写,基于新的 营地4OCaml
3.10 及更高版本。

使用 onworks.net 服务在线使用 otags


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad