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 always_statement;
|
||||||
|
mod conditional_statement;
|
||||||
mod context;
|
mod context;
|
||||||
mod description_list;
|
mod description_list;
|
||||||
mod event_expression_list;
|
mod event_expression_list;
|
||||||
mod module_declaration;
|
mod module_declaration;
|
||||||
mod procedural_timing_control_statement;
|
mod procedural_timing_control_statement;
|
||||||
|
mod seq_block;
|
||||||
mod statement;
|
mod statement;
|
||||||
mod tags;
|
mod tags;
|
||||||
mod tools;
|
mod tools;
|
||||||
|
|
||||||
use always_statement::AlwaysStatement;
|
use always_statement::AlwaysStatement;
|
||||||
|
use conditional_statement::ConditionalStatement;
|
||||||
use context::{ArgInfo, ModuleContext};
|
use context::{ArgInfo, ModuleContext};
|
||||||
pub use description_list::DescriptionList;
|
pub use description_list::DescriptionList;
|
||||||
use event_expression_list::EventExpressionList;
|
use event_expression_list::EventExpressionList;
|
||||||
use module_declaration::ModuleDeclaration;
|
use module_declaration::ModuleDeclaration;
|
||||||
use procedural_timing_control_statement::ProceduralTimingControlStatement;
|
use procedural_timing_control_statement::ProceduralTimingControlStatement;
|
||||||
|
use seq_block::SeqBlock;
|
||||||
use statement::Statement;
|
use statement::Statement;
|
||||||
pub use tags::Tag;
|
pub use tags::Tag;
|
||||||
pub use tools::{CodeReporter, Tools};
|
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;
|
use json::JsonValue;
|
||||||
|
|
||||||
pub struct Statement {}
|
pub struct Statement {}
|
||||||
|
|
||||||
impl 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 EVENT_EXPRESSION_LIST: &'static str = "kEventExpressionList";
|
||||||
pub const SEQ_BLOCK: &'static str = "kSeqBlock";
|
pub const SEQ_BLOCK: &'static str = "kSeqBlock";
|
||||||
pub const BLOCK_ITEM_STATEMENT_LIST: &'static str = "kBlockItemStatementList";
|
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 SYMBOL_IDENTIFIER: &'static str = "SymbolIdentifier";
|
||||||
pub const DEC_NUMBER: &'static str = "TK_DecNumber";
|
pub const DEC_NUMBER: &'static str = "TK_DecNumber";
|
||||||
|
|
Loading…
Reference in New Issue