文件名称:Rust 解析器组合器框架
文件大小:5.44MB
文件格式:ZIP
更新时间:2024-07-18 12:08:29
rust parser parse parser-combinators grammar
nom,逐字节吃数据nom 是一个用 Rust 编写的解析器组合库。它的目标是提供工具来构建安全的解析器,而不会影响速度或内存消耗。为此,它广泛使用 Rust 的强类型和内存安全来生成快速且正确的解析器,并提供函数、宏和特征来抽象大部分容易出错的管道。nom 会很高兴地从你的文件中取出一个字节:)例子十六进制颜色解析器:externcrate nom;use nom:: {
IResult,
bytes:: complete:: {tag, take_while_m_n},
combinator:: map_res,
sequence:: tuple
};
#[derive(Debug,PartialEq)]pubstructColor {pub red:u8 ,pub green:u8 ,pub blue:u8 ,
}fnfrom_hex (input:&str ) ->Result
【文件预览】:
nom-master
----.travis.yml(3KB)
----build.rs(155B)
----rustfmt.toml(31B)
----.github()
--------PULL_REQUEST_TEMPLATE.md(2KB)
--------ISSUE_TEMPLATE.md(1KB)
--------workflows()
----assets()
--------small.mp4(375KB)
--------nom.png(35KB)
--------nom.svg(39KB)
--------bigbuckbunny.mp4(5.26MB)
--------testfile.txt(47B)
--------links.txt(2KB)
----tests()
--------multiline.rs(703B)
--------blockbuf-arithmetic.rs(7KB)
--------escaped.rs(732B)
--------json.rs(6KB)
--------inference.rs(1KB)
--------css.rs(918B)
--------custom_errors.rs(1KB)
--------arithmetic_ast.rs(4KB)
--------float.rs(1KB)
--------named_args.rs(3KB)
--------ini_str.rs(5KB)
--------mp4.rs(7KB)
--------issues.rs(8KB)
--------fnmut.rs(672B)
--------ini.rs(5KB)
--------reborrow_fold.rs(513B)
--------overflow.rs(4KB)
--------arithmetic.rs(2KB)
--------test1.rs(950B)
--------bitstream.rs(737B)
----LICENSE(1KB)
----CONTRIBUTING.md(2KB)
----src()
--------sequence()
--------regexp()
--------error.rs(27KB)
--------util.rs(5KB)
--------str.rs(13KB)
--------combinator()
--------bits()
--------multi()
--------bytes()
--------traits.rs(38KB)
--------character()
--------internal.rs(12KB)
--------branch()
--------lib.rs(17KB)
--------number()
----Cargo.toml(3KB)
----benches()
--------json.rs(5KB)
--------http.rs(4KB)
--------ini_str.rs(6KB)
--------number.rs(589B)
--------ini_complete.rs(7KB)
--------ini.rs(7KB)
--------arithmetic.rs(2KB)
----doc()
--------error_management.md(6KB)
--------choosing_a_combinator.md(18KB)
--------home.md(726B)
--------how_nom_macros_work.md(5KB)
--------archive()
--------making_a_new_parser_from_scratch.md(9KB)
--------custom_input_types.md(2KB)
--------FAQ.md(425B)
--------upgrading_to_nom_5.md(7KB)
--------nom_recipes.md(7KB)
----examples()
--------macro.rs(335B)
--------json.rs(10KB)
--------iterator.rs(2KB)
--------custom_error.rs(813B)
--------json_iterator.rs(8KB)
--------s_expression.rs(13KB)
--------string.rs(7KB)
----.gitignore(107B)
----CHANGELOG.md(54KB)
----fuzz()
--------fuzz_targets()
--------Cargo.toml(395B)
--------.gitignore(24B)
----README.md(13KB)