RainbowLexer是一个可配置的词法分析器💾
RainbowLexer接收一个RainbowLexer可识别的规则描述文档[*.RL文件📃]
RainbowLexer可以基于 RL文件所描述的规则 调试你的 被解析目标文件
RainbowLexer可以编译出对应 RL文件所描述的规则 对应的C文件,其中包含可以解析对应文档的C代码.
每一个词法描述单元应以如下方式定义\
type union index_series;
// 说明:
// type 为 静态词和分隔词
// 静态词type为 sw/staticWord
// 分隔词type为 sp/sperator
// union 为 集合单词
// index_series 为id序列
// 例如[1,2,3,4]对应4个词素id分别为1,2,3,4
// [4:]表示任意数量词素 id 从4递增
// [:4]表示任意数量词素 id 从4逆向递减
// [:]表示任意数量词素 id 从0递增
// IGNORE 表示该词素不会进入结果列表
sw {"hello","world","test","hel"} [1,2,3,4];
sw {"dididi","hahaha","ppp",__VAR__} [4:];
sp {"%","/","*"} [20:];
sp {" ","\n","\t"} IGNORE;
}
需要注意的是 任何词素都需要用" "包裹
提供了一些已经定义的集合描述\
{}
包括上述集合
type "token" id
在命令行中使用
参数列表\
对于编译所得的C文件,其中包含3个接口
略
MIT License
Copyright (c) 2020-* GuoZi
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
如果在使用RainbowLexer的过程中遇到了问题,您可以在此处或issue中寻找解决方法
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。