pub trait Tokens: Clone + Iterator<Item = TokenAndSpan> {
Show 15 methods
// Required methods
fn set_ctx(&mut self, ctx: Context);
fn ctx(&self) -> Context;
fn syntax(&self) -> Syntax;
fn target(&self) -> EsVersion;
fn set_expr_allowed(&mut self, allow: bool);
fn set_next_regexp(&mut self, start: Option<BytePos>);
fn token_context(&self) -> &TokenContexts;
fn token_context_mut(&mut self) -> &mut TokenContexts;
fn set_token_context(&mut self, _c: TokenContexts);
fn add_error(&self, error: Error);
fn add_module_mode_error(&self, error: Error);
fn end_pos(&self) -> BytePos;
fn take_errors(&mut self) -> Vec<Error>;
fn take_script_module_errors(&mut self) -> Vec<Error>;
// Provided method
fn start_pos(&self) -> BytePos { ... }
}
Expand description
Clone should be cheap if you are parsing typescript because typescript syntax requires backtracking.
Required Methods§
fn set_ctx(&mut self, ctx: Context)
fn ctx(&self) -> Context
fn syntax(&self) -> Syntax
fn target(&self) -> EsVersion
fn set_expr_allowed(&mut self, allow: bool)
fn set_next_regexp(&mut self, start: Option<BytePos>)
fn token_context(&self) -> &TokenContexts
fn token_context_mut(&mut self) -> &mut TokenContexts
fn set_token_context(&mut self, _c: TokenContexts)
sourcefn add_error(&self, error: Error)
fn add_error(&self, error: Error)
Implementors should use Rc<RefCell<Vec
It is required because parser should backtrack while parsing typescript code.
sourcefn add_module_mode_error(&self, error: Error)
fn add_module_mode_error(&self, error: Error)
Add an error which is valid syntax in script mode.
This errors should be dropped if it’s not a module.
Implementor should check for if Context.module, and buffer errors if module is false. Also, implementors should move errors to the error buffer on set_ctx if the parser mode become module mode.
fn end_pos(&self) -> BytePos
fn take_errors(&mut self) -> Vec<Error>
sourcefn take_script_module_errors(&mut self) -> Vec<Error>
fn take_script_module_errors(&mut self) -> Vec<Error>
If the program was parsed as a script, this contains the module errors should the program be identified as a module in the future.
Provided Methods§
Object Safety§
This trait is not object safe.