mirror of
https://github.com/swc-project/swc.git
synced 2024-10-05 20:58:35 +03:00
fixup! Add a test for #503
This commit is contained in:
parent
126b6bc761
commit
5076249c90
48
ecmascript/parser/examples/typescript.rs
Normal file
48
ecmascript/parser/examples/typescript.rs
Normal file
@ -0,0 +1,48 @@
|
||||
use swc_common;
|
||||
|
||||
use std::sync::Arc;
|
||||
use swc_common::{
|
||||
errors::{ColorConfig, Handler},
|
||||
FileName, SourceMap,
|
||||
};
|
||||
use swc_ecma_parser::{lexer::Lexer, Capturing, Parser, Session, SourceFileInput, Syntax};
|
||||
|
||||
fn main() {
|
||||
swc_common::GLOBALS.set(&swc_common::Globals::new(), || {
|
||||
let cm: Arc<SourceMap> = Default::default();
|
||||
let handler = Handler::with_tty_emitter(ColorConfig::Auto, true, false, Some(cm.clone()));
|
||||
|
||||
let session = Session { handler: &handler };
|
||||
|
||||
// Real usage
|
||||
// let fm = cm
|
||||
// .load_file(Path::new("test.js"))
|
||||
// .expect("failed to load test.js");
|
||||
|
||||
let fm = cm.new_source_file(
|
||||
FileName::Custom("test.js".into()),
|
||||
"interface Foo {}".into(),
|
||||
);
|
||||
|
||||
let lexer = Lexer::new(
|
||||
session,
|
||||
Syntax::Typescript(Default::default()),
|
||||
Default::default(),
|
||||
SourceFileInput::from(&*fm),
|
||||
None,
|
||||
);
|
||||
|
||||
let capturing = Capturing::new(lexer);
|
||||
|
||||
let mut parser = Parser::new_from(session, capturing);
|
||||
|
||||
let _module = parser
|
||||
.parse_typescript_module()
|
||||
.map_err(|mut e| {
|
||||
e.emit();
|
||||
})
|
||||
.expect("Failed to parse module.");
|
||||
|
||||
println!("Tokens: {:?}", parser.input().take());
|
||||
});
|
||||
}
|
Loading…
Reference in New Issue
Block a user