diff options
author | Aleksey Kladov <[email protected]> | 2019-08-18 19:44:24 +0100 |
---|---|---|
committer | Aleksey Kladov <[email protected]> | 2019-08-18 19:44:24 +0100 |
commit | 229d7943d8471eb114f961ab419c318736772da4 (patch) | |
tree | 183655c53e09b82d308b89fecccea7bbf725a344 /crates/ra_tools/src/codegen.rs | |
parent | 839d9cce89adcae23dfd108acf231dca00724f08 (diff) |
switch to new codegen
Diffstat (limited to 'crates/ra_tools/src/codegen.rs')
-rw-r--r-- | crates/ra_tools/src/codegen.rs | 20 |
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 @@ | |||
1 | use std::path::Path; | 1 | use std::{fs, path::Path}; |
2 | 2 | ||
3 | use crate::{Mode, Result}; | 3 | use ron; |
4 | 4 | ||
5 | pub fn generate_ast(grammar_src: &Path, dst: &Path, mode: Mode) -> Result<()> { | 5 | use crate::{project_root, Mode, Result, AST, GRAMMAR}; |
6 | |||
7 | pub 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 | |||
14 | fn 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 | } |