Add empty methods to go through "fpga_hdl_defect/"
This commit is contained in:
parent
403d0d3112
commit
c93df679d3
|
@ -0,0 +1,8 @@
|
|||
use crate::cst::ModuleContext;
|
||||
use json::JsonValue;
|
||||
|
||||
pub struct ConditionalStatement {}
|
||||
|
||||
impl ConditionalStatement {
|
||||
pub fn codegen(_json: &JsonValue, _context: &ModuleContext) {}
|
||||
}
|
|
@ -1,19 +1,23 @@
|
|||
mod always_statement;
|
||||
mod conditional_statement;
|
||||
mod context;
|
||||
mod description_list;
|
||||
mod event_expression_list;
|
||||
mod module_declaration;
|
||||
mod procedural_timing_control_statement;
|
||||
mod seq_block;
|
||||
mod statement;
|
||||
mod tags;
|
||||
mod tools;
|
||||
|
||||
use always_statement::AlwaysStatement;
|
||||
use conditional_statement::ConditionalStatement;
|
||||
use context::{ArgInfo, ModuleContext};
|
||||
pub use description_list::DescriptionList;
|
||||
use event_expression_list::EventExpressionList;
|
||||
use module_declaration::ModuleDeclaration;
|
||||
use procedural_timing_control_statement::ProceduralTimingControlStatement;
|
||||
use seq_block::SeqBlock;
|
||||
use statement::Statement;
|
||||
pub use tags::Tag;
|
||||
pub use tools::{CodeReporter, Tools};
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
use crate::cst::{ModuleContext, Statement, Tag, Tools};
|
||||
use json::JsonValue;
|
||||
|
||||
pub struct SeqBlock {}
|
||||
|
||||
impl SeqBlock {
|
||||
pub fn codegen(json: &JsonValue, context: &ModuleContext) {
|
||||
let json_block_item_statement_list = {
|
||||
let json_nodes = Tools::match_tags(
|
||||
vec![json],
|
||||
vec![Tag::SEQ_BLOCK, Tag::BLOCK_ITEM_STATEMENT_LIST],
|
||||
);
|
||||
assert_eq!(json_nodes.len(), 1);
|
||||
json_nodes[0]
|
||||
};
|
||||
for json_statement in json_block_item_statement_list["children"].members() {
|
||||
Statement::codegen(json_statement, context);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,8 +1,17 @@
|
|||
use crate::cst::ModuleContext;
|
||||
use crate::cst::{ConditionalStatement, ModuleContext, SeqBlock, Tag};
|
||||
use json::JsonValue;
|
||||
|
||||
pub struct Statement {}
|
||||
|
||||
impl Statement {
|
||||
pub fn codegen(_json: &JsonValue, _context: &ModuleContext) {}
|
||||
pub fn codegen(json: &JsonValue, context: &ModuleContext) {
|
||||
match json["tag"].as_str() {
|
||||
Some(Tag::SEQ_BLOCK) => SeqBlock::codegen(json, context),
|
||||
Some(Tag::CONDITIONAL_STATEMENT) => ConditionalStatement::codegen(json, context),
|
||||
Some(x) => {
|
||||
println!("{}", x);
|
||||
}
|
||||
_ => panic!(),
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
@ -28,6 +28,7 @@ impl Tag {
|
|||
pub const EVENT_EXPRESSION_LIST: &'static str = "kEventExpressionList";
|
||||
pub const SEQ_BLOCK: &'static str = "kSeqBlock";
|
||||
pub const BLOCK_ITEM_STATEMENT_LIST: &'static str = "kBlockItemStatementList";
|
||||
pub const CONDITIONAL_STATEMENT: &'static str = "kConditionalStatement";
|
||||
|
||||
pub const SYMBOL_IDENTIFIER: &'static str = "SymbolIdentifier";
|
||||
pub const DEC_NUMBER: &'static str = "TK_DecNumber";
|
||||
|
|
Loading…
Reference in New Issue