vgrindefs 文件格式
用途
包含用于 弗 grind 命令的语言定义数据库。
描述
弗格林德夫斯 文件格式包含用于 弗 grind 命令的所有语言定义。 该数据库与 特温福 文件格式 (终端功能的文件) 非常相似。
字段
下表包含了每个字段的名称和描述:
| 姓名 | 类型 | 描述 |
|---|---|---|
| ab | STR | 用于注释开始的备用正则表达式。 |
| ae | STR | 用于注释结束的备用正则表达式。 |
| pb | STR | 过程开始时的正则表达式。 |
| bb | STR | 用于词法块开头的正则表达式。 |
| be | STR | 词法块的结束的正则表达式。 |
| cb | STR | 注释开始时的正则表达式。 |
| ce | STR | 注释结束时的正则表达式。 |
| sb | STR | 用于字符串开头的正则表达式。 |
| se | STR | 字符串结束时使用的正则表达式。 |
| lb | STR | 用于字符常量的开头的正则表达式。 |
| le | STR | 用于字符常量结尾的正则表达式。 |
| tl | bool | Presence 表示仅在顶部词法级别定义过程。 |
| oc | bool | Presence 表示大写和小写是等效的。 |
| kw | STR | 以空格分隔的关键字列表。 |
示例
以下条目 (描述 C 语言) 是语言条目的典型条目:
C|c: :pb=^\d?*?\d?\p\d??):bb={:be=}:cb=/*:ce=*/:sb=":se=\e":\
:lb=':le=\e':tl:\
:kw=asm auto break case char continue default do
double else enum\
extern float for fortran goto if int long register
return short\
sizeof static struct switch typedef union unsigned
while #define\
#else #endif #if #ifdef #ifndef #include #undef # define
else endif\
if ifdef ifndef include undef: 第一个字段是语言名称或该名称的任何变体。 因此,可以将 C 语言指定为小写或大写 c 形式的 弗 grind 命令。
通过将 \ (反斜杠) 作为一行的最后一个字符,条目可以继续进入多行。 弗格林德夫斯 文件格式具有以下两种功能:
- 用于指示语言的特定功能部件的布尔功能
- 提供正则表达式或关键字列表的字符串功能。
在 Java™ 语言中,注释可以由开头的 "/*" 或结尾的 "*" 定界,或者由行尾的开头的 "//" 和 "end" 定界, Java 弗格林德夫斯 定义可能为:
cb=/*:ce=*/:ab=//:ae=$正则表达式
弗格林德夫斯 文件格式使用与 前 命令和 法 命令的正则表达式类似的正则表达式。 字符 ^ (插入标记) , $(美元符号) ,: (冒号) 和 \ (反斜杠) 是保留字符,如果要作为普通字符包括在内,那么必须用前面的 \ (反斜杠) 括起来。 元符号及其含义如下所示:
| 项 | 描述 |
|---|---|
| $ | 行的结尾。 |
| ^ | 行的开头。 |
| \d | 定界符 (空格,制表符,换行符,行开头)。 |
| \a | 与任何符号字符串匹配,例如 .* 在 法 命令中。 |
| \p | 匹配任何字母数字名称。 在过程定义 (pb) 中,与此符号相匹配的字符串将用作过程名称。 |
| () | 分组。 |
| | | 交替。 |
| ? | 最后一项是可选的。 |
| \e | 在任何字符串之前,表示如果输入字符串前面有一个转义字符 (\) ,那么该字符串与输入字符串不匹配。 通常用于可以通过对字符串进行转义来将字符串定界符包括在字符串中的语言 (例如 C)。 |
与系统中的其他正则表达式不同,这些元符号与单词匹配,而不是与字符匹配。 因此,图案 "(tramp|蒸笼) flies?" 与 "tramp" , "steamer" ," tramplies "或" steamerlies " 匹配。
关键字列表
关键字列表列出语言中的关键字,以空格分隔。 如果指定 oc 字段 (指示大写和小写是等效的) ,那么所有关键字都应该以小写形式指定。
文件
| 项 | 描述 |
|---|---|
| /usr/share/lib/vgrindefs | 包含终端描述。 |