Struct doomdooz_lib::types::Parser
source · pub struct Parser {
pub yylexer: Lexer,
pub static_env: StaticEnvironment,
/* private fields */
}Expand description
A Bison parser, automatically generated from src/parser/parser.y.
Fields§
§yylexer: LexerLexer that is used to get tokens
static_env: StaticEnvironmentStack of sets of variables in current scopes. Each stack item represents locals in the scope.
You can use it to pre-define some locals and parse your input as if these locals exist.
For example, you can parse the following code
a = b + c
as
Send(LocalVar(a), "+", LocalVar(b))
by declaring a and b as locals using
parser.static_env.declare("a")
parser.static_env.declare("b")
parser.parse()
Implementations§
source§impl Parser
impl Parser
sourcepub fn new<TInput>(input: TInput, options: ParserOptions) -> Parserwhere
TInput: Into<Vec<u8, Global>>,
pub fn new<TInput>(input: TInput, options: ParserOptions) -> Parserwhere
TInput: Into<Vec<u8, Global>>,
Constructs a parser with given input and options.
Returns an error if given input is invalid.
sourcepub fn do_parse(self) -> ParserResult
pub fn do_parse(self) -> ParserResult
Parses given input and returns:
- AST
- tokens
- diagnostics
- coments
- magic comments