Struct lib_ruby_parser::Parser
source · pub struct Parser {
pub yylexer: Lexer,
pub static_env: StaticEnvironment,
/* private fields */
}
Expand description
A Bison parser, automatically generated from src/parser/parse.y.
Fields§
§yylexer: Lexer
Lexer that is used to get tokens
static_env: StaticEnvironment
Stack 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) -> Self
pub fn new<TInput>(input: TInput, options: ParserOptions) -> Self
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
- comments
- magic comments
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Parser
impl !RefUnwindSafe for Parser
impl !Send for Parser
impl !Sync for Parser
impl Unpin for Parser
impl !UnwindSafe for Parser
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more