Julio Biason
2 years ago
5 changed files with 237 additions and 0 deletions
@ -0,0 +1,205 @@ |
|||||||
|
# This file is automatically @generated by Cargo. |
||||||
|
# It is not intended for manual editing. |
||||||
|
version = 3 |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "block-buffer" |
||||||
|
version = "0.10.3" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" |
||||||
|
dependencies = [ |
||||||
|
"generic-array", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "cfg-if" |
||||||
|
version = "1.0.0" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "cpufeatures" |
||||||
|
version = "0.2.5" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" |
||||||
|
dependencies = [ |
||||||
|
"libc", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "crypto-common" |
||||||
|
version = "0.1.6" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" |
||||||
|
dependencies = [ |
||||||
|
"generic-array", |
||||||
|
"typenum", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "digest" |
||||||
|
version = "0.10.6" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" |
||||||
|
dependencies = [ |
||||||
|
"block-buffer", |
||||||
|
"crypto-common", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "generic-array" |
||||||
|
version = "0.14.6" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" |
||||||
|
dependencies = [ |
||||||
|
"typenum", |
||||||
|
"version_check", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "libc" |
||||||
|
version = "0.2.139" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79" |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "once_cell" |
||||||
|
version = "1.17.0" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66" |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "pest" |
||||||
|
version = "2.5.5" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "028accff104c4e513bad663bbcd2ad7cfd5304144404c31ed0a77ac103d00660" |
||||||
|
dependencies = [ |
||||||
|
"thiserror", |
||||||
|
"ucd-trie", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "pest_derive" |
||||||
|
version = "2.5.5" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "2ac3922aac69a40733080f53c1ce7f91dcf57e1a5f6c52f421fadec7fbdc4b69" |
||||||
|
dependencies = [ |
||||||
|
"pest", |
||||||
|
"pest_generator", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "pest_generator" |
||||||
|
version = "2.5.5" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "d06646e185566b5961b4058dd107e0a7f56e77c3f484549fb119867773c0f202" |
||||||
|
dependencies = [ |
||||||
|
"pest", |
||||||
|
"pest_meta", |
||||||
|
"proc-macro2", |
||||||
|
"quote", |
||||||
|
"syn", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "pest_meta" |
||||||
|
version = "2.5.5" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "e6f60b2ba541577e2a0c307c8f39d1439108120eb7903adeb6497fa880c59616" |
||||||
|
dependencies = [ |
||||||
|
"once_cell", |
||||||
|
"pest", |
||||||
|
"sha2", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "pestfoamtest" |
||||||
|
version = "0.1.0" |
||||||
|
dependencies = [ |
||||||
|
"pest", |
||||||
|
"pest_derive", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "proc-macro2" |
||||||
|
version = "1.0.51" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "5d727cae5b39d21da60fa540906919ad737832fe0b1c165da3a34d6548c849d6" |
||||||
|
dependencies = [ |
||||||
|
"unicode-ident", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "quote" |
||||||
|
version = "1.0.23" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b" |
||||||
|
dependencies = [ |
||||||
|
"proc-macro2", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "sha2" |
||||||
|
version = "0.10.6" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" |
||||||
|
dependencies = [ |
||||||
|
"cfg-if", |
||||||
|
"cpufeatures", |
||||||
|
"digest", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "syn" |
||||||
|
version = "1.0.107" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5" |
||||||
|
dependencies = [ |
||||||
|
"proc-macro2", |
||||||
|
"quote", |
||||||
|
"unicode-ident", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "thiserror" |
||||||
|
version = "1.0.38" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0" |
||||||
|
dependencies = [ |
||||||
|
"thiserror-impl", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "thiserror-impl" |
||||||
|
version = "1.0.38" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f" |
||||||
|
dependencies = [ |
||||||
|
"proc-macro2", |
||||||
|
"quote", |
||||||
|
"syn", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "typenum" |
||||||
|
version = "1.16.0" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "ucd-trie" |
||||||
|
version = "0.1.5" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "unicode-ident" |
||||||
|
version = "1.0.6" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "version_check" |
||||||
|
version = "0.9.4" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" |
@ -0,0 +1,10 @@ |
|||||||
|
[package] |
||||||
|
name = "pestfoamtest" |
||||||
|
version = "0.1.0" |
||||||
|
edition = "2021" |
||||||
|
|
||||||
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html |
||||||
|
|
||||||
|
[dependencies] |
||||||
|
pest = "2.5.5" |
||||||
|
pest_derive = "2.5.5" |
@ -0,0 +1,3 @@ |
|||||||
|
# PestFoamTest |
||||||
|
|
||||||
|
Testing writing a Pest parser for Foamfiles. |
@ -0,0 +1,4 @@ |
|||||||
|
multi_comment = { "/*" ~ (!"*/" ~ ANY)* ~ "*/" } |
||||||
|
single_comment = { "//" ~ (!NEWLINE ~ ANY)* } |
||||||
|
|
||||||
|
field = { (ASCII_DIGIT | "." | "-")+ } |
@ -0,0 +1,15 @@ |
|||||||
|
use pest::Parser; |
||||||
|
use pest_derive::Parser; |
||||||
|
|
||||||
|
#[derive(Parser)] |
||||||
|
#[grammar = "foam.pest"] |
||||||
|
pub struct Foam; |
||||||
|
|
||||||
|
fn main() { |
||||||
|
let parse = Foam::parse(Rule::multi_comment, "/* this is comment */"); |
||||||
|
println!("{:?}", parse); |
||||||
|
let parse = Foam::parse(Rule::single_comment, "// this is comment"); |
||||||
|
println!("{:?}", parse); |
||||||
|
let parse = Foam::parse(Rule::field, "-273.15"); |
||||||
|
println!("{:?}", parse); |
||||||
|
} |
Loading…
Reference in new issue