person_struct_parser
Parser for Rust source code
- GITHUB: https://github.com/DavydKod/person_struct_parser
- CRATES.IO: https://crates.io/crates/person_struct_parser
Person_struct_parser(PSP) is a parsing library for parsing a String into a person object.
- PSP has structure Person(
person_struct_parser::person_module::Person) for containing the information about a person(name,age,city)
- There is a function
person_struct_parser::person_module::normalizeimplemented for Person to reduce object data to normal form:
- Function
person_struct_parser::person_module::parseis implemented for Person, it's main method for parsing String into the Person object with normalization:
-
std::fmt::Displayis implemented for Person -
The grammar for parsing is placed in
grammar.pestfile insrcfolder. Grammar:
alpha = { 'a'..'z' | 'A'..'Z' }
digit = { '0'..'9' }
non_digit = { !digit ~ . }
non_alpha = { !alpha ~ . }
all_characters_without_digits = { non_digit+ }
all_characters_without_alpha = { non_alpha+ }
name = {(all_characters_without_digits)+ ~ (alpha)+ ~ (all_characters_without_digits)+}
age = {(all_characters_without_alpha)+ ~ (digit)+ ~ (all_characters_without_alpha)+}
city = {(all_characters_without_digits)+ ~ (alpha)+ ~ (all_characters_without_digits)+}
person = {name ~ age ~ city}