aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_tools/src/codegen.rs
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2019-08-18 19:44:24 +0100
committerAleksey Kladov <[email protected]>2019-08-18 19:44:24 +0100
commit229d7943d8471eb114f961ab419c318736772da4 (patch)
tree183655c53e09b82d308b89fecccea7bbf725a344 /crates/ra_tools/src/codegen.rs
parent839d9cce89adcae23dfd108acf231dca00724f08 (diff)
switch to new codegen
Diffstat (limited to 'crates/ra_tools/src/codegen.rs')
-rw-r--r--crates/ra_tools/src/codegen.rs20
1 files changed, 17 insertions, 3 deletions
diff --git a/crates/ra_tools/src/codegen.rs b/crates/ra_tools/src/codegen.rs
index edb01aceb..405fb623c 100644
--- a/crates/ra_tools/src/codegen.rs
+++ b/crates/ra_tools/src/codegen.rs
@@ -1,7 +1,21 @@
1use std::path::Path; 1use std::{fs, path::Path};
2 2
3use crate::{Mode, Result}; 3use ron;
4 4
5pub fn generate_ast(grammar_src: &Path, dst: &Path, mode: Mode) -> Result<()> { 5use crate::{project_root, Mode, Result, AST, GRAMMAR};
6
7pub fn generate(mode: Mode) -> Result<()> {
8 let grammar = project_root().join(GRAMMAR);
9 // let syntax_kinds = project_root().join(SYNTAX_KINDS);
10 let ast = project_root().join(AST);
11 generate_ast(&grammar, &ast, mode)
12}
13
14fn generate_ast(grammar_src: &Path, dst: &Path, mode: Mode) -> Result<()> {
15 let src: ron::Value = {
16 let text = fs::read_to_string(grammar_src)?;
17 ron::de::from_str(&text)?
18 };
19 eprintln!("{:?}", src);
6 Ok(()) 20 Ok(())
7} 21}