Verilog Parser
|
Contains Declarations of datastructures and functions which represent and operate on the Verilog Abstract Syntax Tree (AST) More...
Go to the source code of this file.
Data Structures | |
struct | ast_assignment |
Top level descriptor for an assignment. More... | |
struct | ast_block_item_declaration |
Describes the declaration of a block item. More... | |
struct | ast_block_reg_declaration |
Describes the declaration of a set of registers within a block. More... | |
struct | ast_case_item |
Describes a single exeuctable item in a case statement. More... | |
struct | ast_case_statement |
Describes the top level of a case statement in terms of its items. More... | |
struct | ast_cmos_switch_instance |
A single CMOS switch (transistor) instance. More... | |
struct | ast_concatenation |
Fully describes a concatenation in terms of type and data. More... | |
struct | ast_conditional_statement |
Describes a single if-then-do statement. More... | |
struct | ast_config_declaration |
Describes a single config declaration in it's entirety. More... | |
struct | ast_config_rule_statement |
Fully describes a config rule statemnet. See Annex 1.2. More... | |
struct | ast_continuous_assignment |
Describes a set of assignments with the same drive strength and delay. More... | |
struct | ast_delay2 |
Describes a 2 point delay distribution. More... | |
struct | ast_delay3 |
Describes a 3 point delay distribution. More... | |
struct | ast_delay_ctrl |
Describes a single delay control statement. More... | |
struct | ast_delay_value |
Describes the type and value of a delay specifier. More... | |
struct | ast_disable_statement |
Contains the identifier from a disable statement. More... | |
struct | ast_edge_sensitive_full_path_declaration |
Describes a parallel edge sensitive path declaration. More... | |
struct | ast_edge_sensitive_parallel_path_declaration |
Describes a single edge sensitive path declaration. More... | |
struct | ast_enable_gate_instance |
A single enable gate. More... | |
struct | ast_enable_gate_instances |
A collection of enable gates with the same type and delay properties. More... | |
struct | ast_event_control |
Describes the type of event triggers. More... | |
struct | ast_event_expression |
Describes a single event expression. More... | |
struct | ast_expression |
Storage type for an entire expression / subexpression tree. More... | |
struct | ast_function_call |
describes a single call to a function, constant function, or system fucntion. More... | |
struct | ast_function_declaration |
Fully describes the declaration of a verilog function. More... | |
struct | ast_function_item_declaration |
Describes a function item declaration, which is either a block item or port declaration. More... | |
struct | ast_gate_instantiation |
Fully describes the instantiation of one or more gate level primitives. More... | |
struct | ast_generate_block |
Simple wrapper and placeholder for generate associated meta-data. More... | |
struct | ast_hybrid_assignment |
caters for procedural_continuous_assignments in Annex A.6.2 of spec. More... | |
struct | ast_identifier |
Structure containing all information on an identifier. More... | |
struct | ast_if_else |
Describes a complete set of if-elseif-else statements. More... | |
struct | ast_library_declaration |
Describes a library declaration of file and include paths. More... | |
struct | ast_library_descriptions |
Super structure for different library construct types. More... | |
struct | ast_loop_statement |
Fully describes a single loop statement. More... | |
struct | ast_lvalue |
Stores and describes an expression l value. More... | |
union | ast_lvalue_data |
Storage for the data describing an assignment L Value. More... | |
struct | ast_metadata |
Stores "meta" information and other tagging stuff about nodes. More... | |
struct | ast_module_declaration |
Fully describes a single module declaration in terms of parameters ports and internal constructs. More... | |
struct | ast_module_instance |
A single instance of a defined module. More... | |
struct | ast_module_instantiation |
Describes the instantiation of one or more modules of the same type with the same parameters. More... | |
struct | ast_module_item |
Describes a single module item, its type and data structure. More... | |
struct | ast_mos_switch_instance |
A single MOS switch (transistor) instance. More... | |
struct | ast_n_input_gate_instance |
An N-input gate instance. e.g. 3-to-1 NAND. More... | |
struct | ast_n_input_gate_instances |
A collection of n-input gates with the same type and delay properties. More... | |
struct | ast_n_output_gate_instance |
Describes a single gate with one input and several outputs. More... | |
struct | ast_n_output_gate_instances |
struct | ast_net_declaration |
Describes a single net declaration. More... | |
struct | ast_node_attributes |
Node data describing an attribute. More... | |
struct | ast_node |
Node type that forms the tree. More... | |
struct | ast_number |
Stores the base, value and width (in bits) of a number. More... | |
struct | ast_parameter_declarations |
Stores the type and characteristics of one or more parameter declarations. More... | |
struct | ast_pass_enable_switch |
A single pass enable switch with pass and enable terminals. More... | |
struct | ast_pass_enable_switches |
Describes a collection of pass enable switches withe the same type and delay characteristics. More... | |
struct | ast_pass_switch_instance |
A single pass transistor instance. More... | |
struct | ast_path_declaration |
Struct which holds the type and data of a path declaration. More... | |
struct | ast_port_connection |
Decribes a single port connection in a module instance. More... | |
struct | ast_port_declaration |
Fully describes a single port declaration. More... | |
struct | ast_primary |
Stores the type and value of an AST primary expression. More... | |
union | ast_primary_value |
The expression primary can produce several different sub-expressions: More... | |
struct | ast_primitive_pull_strength |
Describes the pull strength and direction of a primitive. More... | |
struct | ast_procedural_assignment |
Describes a procedural assignment, can be blocking or nonblocking. More... | |
struct | ast_pull_gate_instance |
Describes a single pull gate instance. More... | |
struct | ast_pull_strength |
Fully describes the pull's of a net going up and down. More... | |
struct | ast_pulse_control_specparam |
Describes the pulse characteristics in signal transmission? More... | |
struct | ast_range_or_type |
Holds either a range or a type data item. More... | |
struct | ast_range |
Describes a range or dimension. More... | |
struct | ast_reg_declaration |
Describes a single reg declaration. More... | |
struct | ast_simple_full_path_declaration |
Describes the declaration of a path. More... | |
struct | ast_simple_parallel_path_declaration |
Describes the declaration of a path. More... | |
struct | ast_single_assignment |
encodes a single assignment. More... | |
struct | ast_source_item |
Contains a source item and it's type. More... | |
struct | ast_statement_block |
Fully describes a single block of statements. More... | |
struct | ast_statement |
Describes a single statement, and can contain sequential statement blocks. More... | |
struct | ast_switch_gate |
Describes a single gate type along with it's delay properties. More... | |
struct | ast_switches |
A collection of CMOS, MOS or PASS switches of the same type. More... | |
struct | ast_task_declaration |
Creates and returns a new task declaration statement. More... | |
struct | ast_task_enable_statement |
Fully describes a task enable statement. More... | |
struct | ast_task_port |
struct | ast_timing_control_statement |
Describes a single procedural timing control statement. More... | |
struct | ast_type_declaration |
Fully describes the declaration of elements one might find inside a module. More... | |
struct | ast_udp_body |
Describes a single UDP body sequentially or combinatorially. More... | |
struct | ast_udp_combinatorial_entry |
Describes a single combinatorial entry in the UDP ast tree. More... | |
struct | ast_udp_declaration |
Describes the declaration of a user defined primitive (UDP) More... | |
struct | ast_udp_initial_statement |
Describes the initial statement of a sequential udp body. More... | |
struct | ast_udp_instance |
Describes a single instance of a UDP. More... | |
struct | ast_udp_instantiation |
Describes an a list of instances of a particular kind of UDP. More... | |
struct | ast_udp_port |
Describes a single port for a user defined primitive. More... | |
struct | ast_udp_sequential_entry |
describes a sequential entry in a udp body. More... | |
struct | ast_var_declaration |
Describes a simple set of declarations of a particular type. More... | |
struct | ast_wait_statement |
Describes a single wait statement. More... | |
struct | verilog_source_tree |
Top level container for parsed source code. More... | |
Typedefs | |
typedef struct ast_delay_value_t | ast_delay_value |
typedef struct ast_pull_strength_t | ast_drive_strength |
typedef char * | ast_file |
Refers to a source code file name. | |
typedef int | ast_line |
Refers to a source code file line number. | |
typedef void * | ast_macro_use |
typedef void * | ast_minmax_exp |
typedef char * | ast_string |
typedef void * | ast_tf_input_declaration |
Enumerations | |
enum | ast_assignment_type { ASSIGNMENT_CONTINUOUS, ASSIGNMENT_BLOCKING, ASSIGNMENT_NONBLOCKING, ASSIGNMENT_HYBRID } |
Describes the type (and implicitly, the location) of an assignment. More... | |
enum | ast_block_item_declaration_type { BLOCK_ITEM_REG, BLOCK_ITEM_PARAM, BLOCK_ITEM_TYPE } |
Describes what sort of block item is being declared. More... | |
enum | ast_block_type { BLOCK_SEQUENTIAL, BLOCK_SEQUENTIAL_INITIAL, BLOCK_SEQUENTIAL_ALWAYS, BLOCK_FUNCTION_SEQUENTIAL, BLOCK_PARALLEL } |
Describes the type of a block of statements. | |
enum | ast_boolean { AST_TRUE =1, AST_FALSE =0 } |
Stores the values of booleans. | |
enum | ast_case_statement_type { CASE, CASEX, CASEZ } |
Records the three different types of case statement Verilog has. | |
enum | ast_charge_strength { CHARGE_SMALL, CHARGE_MEDIUM, CHARGE_LARGE, CHARGE_DEFAULT } |
Describes (coloquially?!) the charge strength on a driver. More... | |
enum | ast_concatenation_type { CONCATENATION_EXPRESSION, CONCATENATION_CONSTANT_EXPRESSION, CONCATENATION_NET, CONCATENATION_VARIABLE, CONCATENATION_MODULE_PATH } |
Describes the type of concatenation being dealt with. More... | |
enum | ast_declaration_type { DECLARE_EVENT, DECLARE_GENVAR, DECLARE_INTEGER, DECLARE_TIME, DECLARE_REALTIME, DECLARE_REAL, DECLARE_NET, DECLARE_REG, DECLARE_UNKNOWN } |
Describes the datatype of the construct being declared. More... | |
enum | ast_delay_ctrl_type { DELAY_CTRL_VALUE, DELAY_CTRL_MINTYPMAX } |
Denotes whether a delay control expression is a single value or a range. | |
enum | ast_delay_value_type { DELAY_VAL_PARAMETER, DELAY_VAL_SPECPARAM, DELAY_VAL_NUMBER, DELAY_VAL_MINTYPMAX } |
Describes the union member of an ast_delay_value structure to be accessed. | |
enum | ast_edge { EDGE_POS, EDGE_NEG, EDGE_NONE, EDGE_ANY } |
Describes a rising or falling edge, or where none is specified. More... | |
enum | ast_enable_gatetype { EN_BUFIF0, EN_BUFIF1, EN_NOTIF0, EN_NOTIF1 } |
Describes a variety of enable gate type. | |
enum | ast_event_control_type { EVENT_CTRL_NONE, EVENT_CTRL_ANY, EVENT_CTRL_TRIGGERS } |
Whether an event control struct contains a list of triggers, no triggers. | |
enum | ast_event_expression_type { EVENT_EXPRESSION, EVENT_POSEDGE, EVENT_NEGEDGE, EVENT_SEQUENCE } |
enum | ast_expression_type { PRIMARY_EXPRESSION, UNARY_EXPRESSION, BINARY_EXPRESSION, RANGE_EXPRESSION_UP_DOWN, RANGE_EXPRESSION_INDEX, MINTYPMAX_EXPRESSION, CONDITIONAL_EXPRESSION, MODULE_PATH_PRIMARY_EXPRESSION, MODULE_PATH_BINARY_EXPRESSION, MODULE_PATH_UNARY_EXPRESSION, MODULE_PATH_CONDITIONAL_EXPRESSION, MODULE_PATH_MINTYPMAX_EXPRESSION, STRING_EXPRESSION } |
Describes the kind of expression a node contains. More... | |
enum | ast_gate_type { GATE_CMOS, GATE_MOS, GATE_PASS, GATE_ENABLE, GATE_N_OUT, GATE_N_IN, GATE_PASS_EN, GATE_PULL_UP, GATE_PULL_DOWN } |
Describes a kind of gate primitive. More... | |
enum | ast_gatetype_n_input { N_IN_AND, N_IN_NAND, N_IN_NOR, N_IN_OR, N_IN_XOR, N_IN_XNOR } |
Describes the logical function performed by a builtin n-input gate. | |
enum | ast_hybrid_assignment_type { HYBRID_ASSIGNMENT_ASSIGN, HYBRID_ASSIGNMENT_DEASSIGN, HYBRID_ASSIGNMENT_FORCE_NET, HYBRID_ASSIGNMENT_FORCE_VAR, HYBRID_ASSIGNMENT_RELEASE_VAR, HYBRID_ASSIGNMENT_RELEASE_NET } |
Describes the different types of procedural continuous assignments. | |
enum | ast_id_range_or_index { ID_HAS_RANGE, ID_HAS_RANGES, ID_HAS_INDEX, ID_HAS_NONE } |
Used to tell if an identifier has a bit vector or index attatched to it. More... | |
enum | ast_identifier_type { ID_ARRAYED, ID_BLOCK, ID_CELL, ID_CONFIG, ID_ESCAPED_ARRAYED, ID_ESCAPED_HIERARCHICAL_BRANCH, ID_ESCAPED_HIERARCHICAL, ID_ESCAPED_HIERARCHICALS, ID_ESCAPED, ID_EVENT, ID_EVENT_TRIGGER, ID_FUNCTION, ID_GATE_INSTANCE, ID_GENERATE_BLOCK, ID_GENVAR, ID_HIERARCHICAL_BLOCK, ID_HIERARCHICAL_EVENT, ID_HIERARCHICAL_FUNCTION, ID_HIERARCHICAL, ID_HIERARCHICAL_NET, ID_HIERARCHICAL_TASK, ID_HIERARCHICAL_VARIABLE, ID_CSV, ID_INOUT_PORT, ID_INPUT, ID_INPUT_PORT, ID_INSTANCE, ID_LIBRARY, ID_MODULE, ID_MODULE_INSTANCE, ID_NAME_OF_GATE_INSTANCE, ID_NAME_OF_INSTANCE, ID_NET, ID_OUTPUT, ID_OUTPUT_PORT, ID_PARAMETER, ID_PORT, ID_REAL, ID_SIMPLE_ARRAYED, ID_SIMPLE_HIERARCHICAL_BRANCH, ID_SIMPLE_HIERARCHICAL, ID_SIMPLE, ID_SPECPARAM, ID_SYSTEM_FUNCTION, ID_SYSTEM_TASK, ID_TASK, ID_TOPMODULE, ID_UNKNOWN, ID_UNEXPANDED_MACRO, ID_UDP, ID_UDP_INSTANCE, ID_VARIABLE } |
Describes the type of contruct that the identifier corresponds to. More... | |
enum | ast_level_symbol { LEVEL_0, LEVEL_1, LEVEL_B, LEVEL_X, LEVEL_Q } |
Describes a single logic level symbol. More... | |
enum | ast_library_item_type { LIB_LIBRARY, LIB_INCLUDE, LIB_CONFIG } |
Describes a library item. | |
enum | ast_loop_type { LOOP_FOREVER, LOOP_REPEAT, LOOP_WHILE, LOOP_FOR, LOOP_GENERATE } |
Describes the different syntactic methods of looping. | |
enum | ast_lvalue_type { SPECPARAM_ID, PARAM_ID, NET_IDENTIFIER, VAR_IDENTIFIER, GENVAR_IDENTIFIER, NET_CONCATENATION, VAR_CONCATENATION } |
Identifies the kind of LValue the ast_lvalue structure holds. More... | |
enum | ast_module_item_type { MOD_ITEM_PORT_DECLARATION, MOD_ITEM_GENERATED_INSTANTIATION, MOD_ITEM_PARAMETER_DECLARATION, MOD_ITEM_SPECIFY_BLOCK, MOD_ITEM_SPECPARAM_DECLARATION, MOD_ITEM_PARAMETER_OVERRIDE, MOD_ITEM_CONTINOUS_ASSIGNMENT, MOD_ITEM_GATE_INSTANTIATION, MOD_ITEM_UDP_INSTANTIATION, MOD_ITEM_MODULE_INSTANTIATION, MOD_ITEM_INITIAL_CONSTRUCT, MOD_ITEM_ALWAYS_CONSTRUCT, MOD_ITEM_NET_DECLARATION, MOD_ITEM_REG_DECLARATION, MOD_ITEM_INTEGER_DECLARATION, MOD_ITEM_REAL_DECLARATION, MOD_ITEM_TIME_DECLARATION, MOD_ITEM_REALTIME_DECLARATION, MOD_ITEM_EVENT_DECLARATION, MOD_ITEM_GENVAR_DECLARATION, MOD_ITEM_TASK_DECLARATION, MOD_ITEM_FUNCTION_DECLARATION } |
Describes the type of data structure representing a module item. More... | |
enum | ast_n_output_gatetype { N_OUT_BUF, N_OUT_NOT } |
Describes the type of an n_output gate. | |
enum | ast_net_type { NET_TYPE_SUPPLY0, NET_TYPE_SUPPLY1, NET_TYPE_TRI, NET_TYPE_TRIAND, NET_TYPE_TRIOR, NET_TYPE_TRIREG, NET_TYPE_WIRE, NET_TYPE_WAND, NET_TYPE_WOR, NET_TYPE_NONE } |
Describes the type of a net in Verilog. More... | |
enum | ast_node_type { ATTRIBUTE_LIST, EXPRESSION, IDENTIFIER, MODULE, NONE } |
Enum type describing the data value that an AST node holds. More... | |
enum | ast_number_base { BASE_BINARY, BASE_OCTAL, BASE_DECIMAL, BASE_HEX } |
Base value of a number representation. | |
enum | ast_number_representation { REP_BITS, REP_INTEGER, REP_FLOAT } |
How is the number represented? More... | |
enum | ast_operator { OPERATOR_STAR, OPERATOR_PLUS, OPERATOR_MINUS, OPERATOR_ASL, OPERATOR_ASR, OPERATOR_LSL, OPERATOR_LSR, OPERATOR_DIV, OPERATOR_POW, OPERATOR_MOD, OPERATOR_GTE, OPERATOR_LTE, OPERATOR_GT, OPERATOR_LT, OPERATOR_L_NEG, OPERATOR_L_AND, OPERATOR_L_OR, OPERATOR_C_EQ, OPERATOR_L_EQ, OPERATOR_C_NEQ, OPERATOR_L_NEQ, OPERATOR_B_NEG, OPERATOR_B_AND, OPERATOR_B_OR, OPERATOR_B_XOR, OPERATOR_B_EQU, OPERATOR_B_NAND, OPERATOR_B_NOR, OPERATOR_TERNARY, OPERATOR_NONE = 0 } |
Stores different Operators. More... | |
enum | ast_parameter_type { PARAM_INTEGER, PARAM_REAL, PARAM_REALTIME, PARAM_TIME, PARAM_GENERIC, PARAM_SPECPARAM } |
Data value types that a module parameter can take on. More... | |
enum | ast_pass_enable_switchtype { PASS_EN_TRANIF0, PASS_EN_TRANIF1, PASS_EN_RTRANIF0, PASS_EN_RTRANIF1 } |
Describes a particular type of pass enable switch. | |
enum | ast_path_declaration_type { SIMPLE_PARALLEL_PATH, SIMPLE_FULL_PATH, EDGE_SENSITIVE_PARALLEL_PATH, EDGE_SENSITIVE_FULL_PATH, STATE_DEPENDENT_PARALLEL_PATH, STATE_DEPENDENT_FULL_PATH, STATE_DEPENDENT_EDGE_PARALLEL_PATH, STATE_DEPENDENT_EDGE_FULL_PATH } |
Describes the type of path being declared. | |
enum | ast_port_direction { PORT_INPUT, PORT_OUTPUT, PORT_INOUT, PORT_NONE } |
Describes the direction of a port. More... | |
enum | ast_primary_type { CONSTANT_PRIMARY, PRIMARY, MODULE_PATH_PRIMARY } |
Describes the kind of expression primary being represented, and hence the sort of expression we are dealing with. | |
enum | ast_primary_value_type { PRIMARY_NUMBER, PRIMARY_IDENTIFIER, PRIMARY_CONCATENATION, PRIMARY_FUNCTION_CALL, PRIMARY_MINMAX_EXP, PRIMARY_MACRO_USAGE } |
The kind of production the expression primary holds. | |
enum | ast_primitive_strength { STRENGTH_HIGHZ0, STRENGTH_HIGHZ1, STRENGTH_SUPPLY0, STRENGTH_STRONG0, STRENGTH_PULL0, STRENGTH_WEAK0, STRENGTH_SUPPLY1, STRENGTH_STRONG1, STRENGTH_PULL1, STRENGTH_WEAK1, STRENGTH_NONE } |
Describes the drive strength of a single primitive. | |
enum | ast_pull_direction { PULL_UP, PULL_DOWN, PULL_NONE } |
Describes pull direction. | |
enum | ast_source_item_type { SOURCE_MODULE = 0, SOURCE_UDP = 1 } |
Describes the type of a item in the list of source entries. More... | |
enum | ast_statement_type { STM_GENERATE =0, STM_ASSIGNMENT =1, STM_CASE =2, STM_CONDITIONAL =3, STM_DISABLE =4, STM_EVENT_TRIGGER =5, STM_LOOP =6, STM_BLOCK =7, STM_BLOCK_ALWAYS =8, STM_BLOCK_INITIAL =9, STM_TIMING_CONTROL =10, STM_FUNCTION_CALL =11, STM_TASK_ENABLE =12, STM_WAIT =13, STM_MODULE_ITEM =14 } |
Describes the kind of statement in a statement struct. More... | |
enum | ast_switchtype { SWITCH_CMOS, SWITCH_RCMOS, SWITCH_NMOS, SWITCH_PMOS, SWITCH_RNMOS, SWITCH_RPMOS, SWITCH_TRAN, SWITCH_RTRAN } |
describes the type of a single MOS switch. | |
enum | ast_task_port_type { PORT_TYPE_TIME, PORT_TYPE_REAL, PORT_TYPE_REALTIME, PORT_TYPE_INTEGER, PORT_TYPE_NONE } |
Return value type for a task. More... | |
enum | ast_timing_control_statement_type { TIMING_CTRL_DELAY_CONTROL, TIMING_CTRL_EVENT_CONTROL, TIMING_CTRL_EVENT_CONTROL_REPEAT } |
What sort of procedural timing control statement is this? | |
enum | ast_udp_body_type { UDP_BODY_SEQUENTIAL, UDP_BODY_COMBINATORIAL } |
Is the body of the UDP specified combinatorially or sequentially. | |
enum | ast_udp_init_val { UDP_INIT_1, UDP_INIT_0, UDP_INIT_X } |
Describes the initial value of a UDP output. | |
enum | ast_udp_next_state { UDP_NEXT_STATE_X, UDP_NEXT_STATE_0, UDP_NEXT_STATE_1, UDP_NEXT_STATE_DC, UDP_NEXT_STATE_QM } |
Describes the possible output values for a UDP element. More... | |
enum | ast_udp_seqential_entry_prefix { PREFIX_EDGES, PREFIX_LEVELS } |
Whether a sequential body entry starts with level or edge symbols. | |
Functions | |
void | ast_append_attribute (ast_node_attributes *parent, ast_node_attributes *toadd) |
Creates and returns a new attribute node with the specified value and name. More... | |
ast_identifier | ast_append_identifier (ast_identifier parent, ast_identifier child) |
Used to construct linked lists of hierarchical identifiers. More... | |
char * | ast_expression_tostring (ast_expression *exp) |
A utility function for converting an ast expression tree back into a string representation. More... | |
void | ast_extend_concatenation (ast_concatenation *element, ast_expression *repeat, void *data) |
Adds a new data element on to the front of a concatenation. More... | |
void | ast_extend_if_else (ast_if_else *conditional_statements, ast_list *new_statement) |
Adds an additional conditional (ha..) to an existing if-else statement. More... | |
ast_statement_block * | ast_extract_statement_block (ast_statement_type type, ast_statement *body) |
Takes a body statement (type = STM_BLK) and splits it into it's event trigger and statements. | |
int | ast_identifier_cmp (ast_identifier a, ast_identifier b) |
Acts like strcmp but works on ast identifiers. | |
void | ast_identifier_set_index (ast_identifier id, ast_expression *index) |
Used to set the index field of an identifier. More... | |
void | ast_identifier_set_range (ast_identifier id, ast_range *range) |
Used to set the range field of an identifier. More... | |
char * | ast_identifier_tostring (ast_identifier id) |
Simply returns the fully qualified representation of an identifier as a string. More... | |
ast_node_attributes * | ast_new_attributes (ast_identifier name, ast_expression *value) |
Creates and returns as a pointer a new attribute descriptor. More... | |
ast_expression * | ast_new_binary_expression (ast_expression *left, ast_expression *right, ast_operator operation, ast_node_attributes *attr, ast_boolean constant) |
Creates a new binary infix expression with the supplied operands. More... | |
ast_block_item_declaration * | ast_new_block_item_declaration (ast_block_item_declaration_type type, ast_node_attributes *attributes) |
Creates and returns a new block item declaration of the specified type. More... | |
ast_block_reg_declaration * | ast_new_block_reg_declaration (ast_boolean is_signed, ast_range *range, ast_list *identifiers) |
Creates and returns a new block register declaration descriptor. More... | |
ast_assignment * | ast_new_blocking_assignment (ast_lvalue *lval, ast_expression *expression, ast_timing_control_statement *delay_or_event) |
Creates and returns a new blocking procedural assignment object. More... | |
ast_case_item * | ast_new_case_item (ast_list *conditions, ast_statement *body) |
Create and return a new item in a cast statement. More... | |
ast_case_statement * | ast_new_case_statement (ast_expression *expression, ast_list *cases, ast_case_statement_type type) |
Creates and returns a new case statement. More... | |
ast_cmos_switch_instance * | ast_new_cmos_switch_instance (ast_identifier name, ast_lvalue *output_terminal, ast_expression *ncontrol_terminal, ast_expression *pcontrol_terminal, ast_expression *input_terminal) |
A single CMOS switch (transistor) instance. | |
ast_concatenation * | ast_new_concatenation (ast_concatenation_type type, ast_expression *repeat, void *first_value) |
Creates a new AST concatenation element with the supplied type and initial starting value. More... | |
ast_expression * | ast_new_conditional_expression (ast_expression *condition, ast_expression *if_true, ast_expression *if_false, ast_node_attributes *attr) |
Creates a new conditional expression node. More... | |
ast_conditional_statement * | ast_new_conditional_statement (ast_statement *statement, ast_expression *condition) |
Creates and returns a new conditional statement. More... | |
ast_config_declaration * | ast_new_config_declaration (ast_identifier identifier, ast_identifier design_statement, ast_list *rule_statements) |
Creates and returns a new config declaration node. | |
ast_config_rule_statement * | ast_new_config_rule_statement (ast_boolean is_default, ast_identifier clause_1, ast_identifier clause_2) |
Creates and returns a new configuration rule statment node. More... | |
ast_primary * | ast_new_constant_primary (ast_primary_value_type type) |
Creates a new ast primary which is part of a constant expression tree with the supplied type and value. More... | |
ast_assignment * | ast_new_continuous_assignment (ast_list *assignments, ast_drive_strength *strength, ast_delay3 *delay) |
Creates and returns a new continuous assignment object. More... | |
ast_delay2 * | ast_new_delay2 (ast_delay_value *min, ast_delay_value *max) |
Create a new delay2 instance. | |
ast_delay3 * | ast_new_delay3 (ast_delay_value *min, ast_delay_value *avg, ast_delay_value *max) |
Create a new delay3 instance. | |
ast_delay_ctrl * | ast_new_delay_ctrl_mintypmax (ast_expression *mintypmax) |
creates and returns a new delay control statement. | |
ast_delay_ctrl * | ast_new_delay_ctrl_value (ast_delay_value *value) |
creates and returns a new delay control statement. | |
ast_delay_value * | ast_new_delay_value (ast_delay_value_type type, void *data) |
Create a new delay value. | |
ast_disable_statement * | ast_new_disable_statement (ast_identifier id) |
Creates and returns a pointer to a new disable statement. | |
ast_edge_sensitive_full_path_declaration * | ast_new_edge_sensitive_full_path_declaration (ast_edge edge, ast_list *input_terminal, ast_operator polarity, ast_list *output_terminal, ast_expression *data_source, ast_list *delay_value) |
Describes a parallel edge sensitive path declaration. More... | |
ast_edge_sensitive_parallel_path_declaration * | ast_new_edge_sensitive_parallel_path_declaration (ast_edge edge, ast_identifier input_terminal, ast_operator polarity, ast_identifier output_terminal, ast_expression *data_source, ast_list *delay_value) |
Describes a single edge sensitive path declaration. More... | |
ast_concatenation * | ast_new_empty_concatenation (ast_concatenation_type type) |
Creates and returns a new empty concatenation of the specified type. More... | |
ast_enable_gate_instance * | ast_new_enable_gate_instance (ast_identifier name, ast_lvalue *output_terminal, ast_expression *enable_terminal, ast_expression *input_terminal) |
A single Enable gate instance. | |
ast_enable_gate_instances * | ast_new_enable_gate_instances (ast_gatetype_n_input type, ast_delay3 *delay, ast_drive_strength *drive_strength, ast_list *instances) |
Creates collection of enable gates with the same type and properties. | |
ast_event_control * | ast_new_event_control (ast_event_control_type type, ast_event_expression *expression) |
Creates and returns a new event control specifier. | |
ast_event_expression * | ast_new_event_expression (ast_edge trigger_edge, ast_expression *expression) |
Creates a new event expression node. More... | |
ast_event_expression * | ast_new_event_expression_sequence (ast_event_expression *left, ast_event_expression *right) |
Creates a new event expression node, which is itself a sequence of sub-expressions. | |
ast_expression * | ast_new_expression_primary (ast_primary *p) |
Creates and returns a new expression primary. More... | |
ast_loop_statement * | ast_new_for_loop_statement (ast_statement *inner_statements, ast_single_assignment *initial_condition, ast_single_assignment *modify_assignment, ast_expression *continue_condition) |
Creates and returns a new for loop statement. More... | |
ast_loop_statement * | ast_new_forever_loop_statement (ast_statement *inner_statement) |
Creates and returns a new forever loop statement. More... | |
ast_function_call * | ast_new_function_call (ast_identifier id, ast_boolean constant, ast_boolean system, ast_node_attributes *attr, ast_list *arguments) |
Creates and returns a new node representing a function call. More... | |
ast_function_declaration * | ast_new_function_declaration (ast_boolean automatic, ast_boolean is_signed, ast_boolean function_or_block, ast_range_or_type *rot, ast_identifier identifier, ast_list *item_declarations, ast_statement *statements) |
Creates and returns a function declaration node. More... | |
ast_function_item_declaration * | ast_new_function_item_declaration () |
Creates and returns a new function item declaration. More... | |
ast_gate_instantiation * | ast_new_gate_instantiation (ast_gate_type type) |
Creates and returns a new gate instantiation descriptor. More... | |
ast_generate_block * | ast_new_generate_block (ast_identifier identifier, ast_list *generate_items) |
Creates and returns a new block of generate items. | |
ast_statement * | ast_new_generate_item (ast_statement_type type, void *construct) |
Creates and returns a new item which exists inside a generate statement. More... | |
ast_loop_statement * | ast_new_generate_loop_statement (ast_list *inner_statements, ast_single_assignment *initial_condition, ast_single_assignment *modify_assignment, ast_expression *continue_condition) |
Creates and returns a new generate loop statement. More... | |
ast_assignment * | ast_new_hybrid_assignment (ast_hybrid_assignment_type type, ast_single_assignment *assignment) |
Creates a new hybrid assignment of the specified type. More... | |
ast_assignment * | ast_new_hybrid_lval_assignment (ast_hybrid_assignment_type type, ast_lvalue *lval) |
Creates a new hybrid assignment of the specified type. More... | |
ast_identifier | ast_new_identifier (char *identifier, unsigned int from_line) |
Creates and returns a new node representing an identifier. More... | |
ast_if_else * | ast_new_if_else (ast_conditional_statement *if_condition, ast_statement *else_condition) |
Creates a new if-then-else-then statement. More... | |
ast_expression * | ast_new_index_expression (ast_expression *left) |
Creates a new range index expression with the supplied operands. More... | |
ast_library_declaration * | ast_new_library_declaration (ast_identifier identifier, ast_list *file_paths, ast_list *incdirs) |
Creates a new library declaration node. | |
ast_library_descriptions * | ast_new_library_description (ast_library_item_type type) |
Creates and returns a new library description object. | |
ast_lvalue * | ast_new_lvalue_concat (ast_lvalue_type type, ast_concatenation *id) |
Creates and returns a new ast_lvalue pointer, with the data type being a concatenation holder of either NET_CONCATENATION or VAR_CONCATENATION. | |
ast_lvalue * | ast_new_lvalue_id (ast_lvalue_type type, ast_identifier id) |
Creates and returns a new ast_lvalue pointer, with the data type being a single identifier of either NET_IDENTIFIER or VAR_IDENTIFIER. | |
ast_expression * | ast_new_mintypmax_expression (ast_expression *min, ast_expression *typ, ast_expression *max) |
Creates a new (min,typical,maximum) expression. More... | |
ast_module_declaration * | ast_new_module_declaration (ast_node_attributes *attributes, ast_identifier identifier, ast_list *parameters, ast_list *ports, ast_list *constructs) |
Creates a new module instantiation. More... | |
ast_module_instance * | ast_new_module_instance (ast_identifier instance_identifier, ast_list *port_connections) |
Creates and returns a new instance of a module with a given identifer and set of port connections. | |
ast_module_instantiation * | ast_new_module_instantiation (ast_identifier module_identifer, ast_list *module_parameters, ast_list *module_instances) |
Creates and returns a new set of module instances with shared parameters. | |
ast_module_item * | ast_new_module_item (ast_node_attributes *attributes, ast_module_item_type type) |
Creates and returns a new module item descriptor. More... | |
ast_primary * | ast_new_module_path_primary (ast_primary_value_type type) |
Creates a new ast primary which is part of a constant expression tree with the supplied type and value. More... | |
ast_mos_switch_instance * | ast_new_mos_switch_instance (ast_identifier name, ast_lvalue *output_terminal, ast_expression *enable_terminal, ast_expression *input_terminal) |
A single MOS switch (transistor) instance. | |
ast_n_input_gate_instance * | ast_new_n_input_gate_instance (ast_identifier name, ast_list *input_terminals, ast_lvalue *output_terminal) |
An N-input gate instance. e.g. 3-to-1 NAND. | |
ast_n_input_gate_instances * | ast_new_n_input_gate_instances (ast_gatetype_n_input type, ast_delay3 *delay, ast_drive_strength *drive_strength, ast_list *instances) |
Creates collection of n-input gates with the same type and properties. | |
ast_n_output_gate_instance * | ast_new_n_output_gate_instance (ast_identifier name, ast_list *outputs, ast_expression *input) |
Creates and returns a new n_output gate instance. More... | |
ast_n_output_gate_instances * | ast_new_n_output_gate_instances (ast_n_output_gatetype type, ast_delay2 *delay, ast_drive_strength *drive_strength, ast_list *instances) |
Creates and returns a set of n_output gates with the same properties. | |
ast_port_connection * | ast_new_named_port_connection (ast_identifier port_name, ast_expression *expression) |
Creates and returns a new port connection representation. More... | |
ast_list * | ast_new_net_declaration (ast_type_declaration *type_dec) |
Creates a new net declaration object. More... | |
ast_assignment * | ast_new_nonblocking_assignment (ast_lvalue *lval, ast_expression *expression, ast_timing_control_statement *delay_or_event) |
Creates and returns a new nonblocking procedural assignment object. More... | |
ast_number * | ast_new_number (ast_number_base base, ast_number_representation representation, char *digits) |
Creates a new number representation object. More... | |
ast_parameter_declarations * | ast_new_parameter_declarations (ast_list *assignments, ast_boolean signed_values, ast_boolean local, ast_range *range, ast_parameter_type type) |
creates and returns a new set of parameter declarations of the same type More... | |
ast_pass_enable_switch * | ast_new_pass_enable_switch (ast_identifier name, ast_lvalue *terminal_1, ast_lvalue *terminal_2, ast_expression *enable) |
Creates and returns a new pass enable switch instance. | |
ast_pass_enable_switches * | ast_new_pass_enable_switches (ast_pass_enable_switchtype type, ast_delay2 *delay, ast_list *switches) |
Creates and returns a collection of pass enable switches. | |
ast_pass_switch_instance * | ast_new_pass_switch_instance (ast_identifier name, ast_lvalue *terminal_1, ast_lvalue *terminal_2) |
A single pass transistor instance. | |
ast_path_declaration * | ast_new_path_declaration (ast_path_declaration_type type) |
Creates and returns a new path declaration type. Expects that the data be filled in manually;. | |
ast_port_declaration * | ast_new_port_declaration (ast_port_direction direction, ast_net_type net_type, ast_boolean net_signed, ast_boolean is_reg, ast_boolean is_variable, ast_range *range, ast_list *port_names) |
Creates and returns a new port declaration representation. More... | |
ast_primary * | ast_new_primary (ast_primary_value_type type) |
Creates a new ast primary which is part of an expression tree with the supplied type and value. More... | |
ast_primary * | ast_new_primary_function_call (ast_function_call *call) |
Creates a new AST primary wrapper around a function call. More... | |
ast_primitive_pull_strength * | ast_new_primitive_pull_strength (ast_pull_direction direction, ast_primitive_strength strength_1, ast_primitive_strength strength_0) |
Creates and returns a new structure describing primitive net strength. | |
ast_pull_gate_instance * | ast_new_pull_gate_instance (ast_identifier name, ast_lvalue *output_terminal) |
Describes a single pull gate instance. | |
ast_pull_strength * | ast_new_pull_stregth (ast_primitive_strength strength_1, ast_primitive_strength strength_2) |
Create and return a new pull strength indicator for 1 and 0. | |
ast_pulse_control_specparam * | ast_new_pulse_control_specparam (ast_expression *reject_limit, ast_expression *error_limit) |
Creates and returns a new pulse control data structure. | |
ast_range * | ast_new_range (ast_expression *upper, ast_expression *lower) |
Creates and returns a new range or dimension representation node. | |
ast_expression * | ast_new_range_expression (ast_expression *left, ast_expression *right) |
Creates a new range expression with the supplied operands. More... | |
ast_range_or_type * | ast_new_range_or_type (ast_boolean is_range) |
Creates and returns a new object storing either a range or a type. More... | |
ast_list * | ast_new_reg_declaration (ast_type_declaration *type_dec) |
Creates a new reg declaration object. More... | |
ast_loop_statement * | ast_new_repeat_loop_statement (ast_statement *inner_statement, ast_expression *continue_condition) |
Creates and returns a repeat loop statement. More... | |
ast_simple_full_path_declaration * | ast_new_simple_full_path_declaration (ast_list *input_terminals, ast_operator polarity, ast_list *output_terminals, ast_list *delay_value) |
Creates and returns a pointer to a new simple full path declaration. | |
ast_simple_parallel_path_declaration * | ast_new_simple_parallel_path_declaration (ast_identifier input_terminal, ast_operator polarity, ast_identifier output_terminal, ast_list *delay_value) |
Creates and returns a pointer to a new simple parallel path declaration. | |
ast_single_assignment * | ast_new_single_assignment (ast_lvalue *lval, ast_expression *expression) |
Creates and returns a new continuous assignment. More... | |
ast_source_item * | ast_new_source_item (ast_source_item_type type) |
Creates and returns a new source item representation. More... | |
ast_statement * | ast_new_statement (ast_node_attributes *attr, ast_boolean is_function_statement, void *data, ast_statement_type type) |
Creates a new AST statement and returns it. More... | |
ast_statement_block * | ast_new_statement_block (ast_block_type type, ast_identifier block_identifier, ast_list *declarations, ast_list *statements) |
Creates and returns a new statement block of the specified type. More... | |
ast_expression * | ast_new_string_expression (ast_string string) |
Creates a new string expression. More... | |
ast_switch_gate * | ast_new_switch_gate_d2 (ast_switchtype type, ast_delay2 *delay) |
Instances a new switch type with a delay2. | |
ast_switch_gate * | ast_new_switch_gate_d3 (ast_switchtype type, ast_delay3 *delay) |
Instances a new switch type with a delay3. | |
ast_switches * | ast_new_switches (ast_switch_gate *type, ast_list *switches) |
creates and returns a new collection of AST switches. More... | |
ast_identifier | ast_new_system_identifier (char *identifier, unsigned int from_line) |
Creates and returns a new node representing an identifier. More... | |
ast_task_declaration * | ast_new_task_declaration (ast_boolean automatic, ast_identifier identifier, ast_list *ports, ast_list *declarations, ast_statement *statements) |
Creates and returns a new task declaration statement. More... | |
ast_task_enable_statement * | ast_new_task_enable_statement (ast_list *expressions, ast_identifier identifier, ast_boolean is_system) |
creates and returns a pointer to a new task-enable statement. | |
ast_task_port * | ast_new_task_port (ast_port_direction direction, ast_boolean reg, ast_boolean is_signed, ast_range *range, ast_task_port_type type, ast_list *identifiers) |
ast_timing_control_statement * | ast_new_timing_control_statement_delay (ast_timing_control_statement_type type, ast_statement *statement, ast_delay_ctrl *delay_ctrl) |
Creates and returns a new timing control statement node. | |
ast_timing_control_statement * | ast_new_timing_control_statement_event (ast_timing_control_statement_type type, ast_expression *repeat, ast_statement *statement, ast_event_control *event_ctrl) |
Creates and returns a new timing control statement node. | |
ast_type_declaration * | ast_new_type_declaration (ast_declaration_type type) |
Creates and returns a node to represent the declaration of a new module item construct. More... | |
ast_udp_body * | ast_new_udp_combinatoral_body (ast_list *combinatorial_entries) |
Creates and returns a new combinatorial UDP body representation. | |
ast_udp_combinatorial_entry * | ast_new_udp_combinatoral_entry (ast_list *input_levels, ast_udp_next_state output_symbol) |
Creates a new combinatorial entry for a UDP node. | |
ast_udp_declaration * | ast_new_udp_declaration (ast_node_attributes *attributes, ast_identifier identifier, ast_list *ports, ast_udp_body *body) |
Creates a new UDP declaration node. More... | |
ast_udp_initial_statement * | ast_new_udp_initial_statement (ast_identifier output_port, ast_number *initial_value) |
Creates a new initial statement node. | |
ast_udp_port * | ast_new_udp_input_port (ast_list *identifiers, ast_node_attributes *attributes) |
Creates a new UDP input port AST node. More... | |
ast_udp_instance * | ast_new_udp_instance (ast_identifier identifier, ast_range *range, ast_lvalue *output, ast_list *inputs) |
Creates a new instance of a UDP. More... | |
ast_udp_instantiation * | ast_new_udp_instantiation (ast_list *instances, ast_identifier identifier, ast_drive_strength *drive_strength, ast_delay2 *delay) |
Creates a new list of UDP instances with shared properties. More... | |
ast_udp_port * | ast_new_udp_port (ast_port_direction direction, ast_identifier identifier, ast_node_attributes *attributes, ast_boolean reg, ast_expression *default_value) |
Creates a new UDP port AST node. More... | |
ast_udp_body * | ast_new_udp_sequential_body (ast_udp_initial_statement *initial_statement, ast_list *sequential_entries) |
Creates and returns a new sequential UDP body representation. | |
ast_udp_sequential_entry * | ast_new_udp_sequential_entry (ast_udp_seqential_entry_prefix prefix_type, ast_list *levels_or_edges, ast_level_symbol current_state, ast_udp_next_state output) |
Creates a new sequntial body entry for a UDP node. | |
ast_expression * | ast_new_unary_expression (ast_primary *operand, ast_operator operation, ast_node_attributes *attr, ast_boolean constant) |
Creates a new unary expression with the supplied operation. More... | |
ast_list * | ast_new_var_declaration (ast_type_declaration *type_dec) |
Creates a new variable declaration object. More... | |
ast_wait_statement * | ast_new_wait_statement (ast_expression *wait_for, ast_statement *statement) |
Creates and returns a new wait statement. | |
ast_loop_statement * | ast_new_while_loop_statement (ast_statement *inner_statement, ast_expression *continue_condition) |
Creates and returns a while loop statement. More... | |
ast_node * | ast_node_new () |
Creates a new empty ast_node and returns it. More... | |
char * | ast_number_tostring (ast_number *n) |
A utility function for converting an ast number into a string. More... | |
char * | ast_operator_tostring (ast_operator op) |
Returns the string representation of an operator;. | |
char * | ast_primary_tostring (ast_primary *p) |
A utility function for converting an ast expression primaries back into a string representation. More... | |
void | verilog_free_source_tree (verilog_source_tree *tofree) |
Releases a source tree object from memory. More... | |
verilog_source_tree * | verilog_new_source_tree () |
Creates and returns a new, empty source tree. More... | |
Variables | |
ast_metadata | meta |
Node metadata. | |
verilog_source_tree * | yy_verilog_source_tree |
This is where we put all of the parsed constructs. More... | |
int | yylineno |
Contains Declarations of datastructures and functions which represent and operate on the Verilog Abstract Syntax Tree (AST)
Contains definitions of functions which operate on the Verilog Abstract Syntax Tree (AST)
enum ast_edge |
enum ast_operator |
enum ast_port_direction |