A | |
| add_frame [Bmdfc] |
Adds a frame to the environment
|
| add_loc [Bmdfc] |
Adds the location information of the given variable to the current stack frame
|
| annotate_data_type [Bmdtc] |
Annotates the data type AST element with information that will be needed by the IR
|
| append_link_buffer [Bmdtc] |
Appends a string to the linker buffer
|
| append_string [Bmdfsmc] |
Appends the first string to the second
|
| apply_arrow_type [Bmdtc] |
Apply argtypes to the arrow type, making sure there are no
template inconsistencies, and get the return type
|
| are_assoclists_compatible [Bmdl] |
Checks if two association lists are compatible (do not contain conflicting key/value pairs
|
| are_assoclists_compatible [Bmdtc] |
Checks if association list l1 has no conflicting key/value pairs with association list l2
|
C | |
| check_connected [Bmdfsmc] |
Check if the graph node_list with root(s) start_nodes is connected
|
| check_consistent [Bmdl] |
Checks that all provide/require definitions in the linker syntax tree are consistent with each other
|
| check_duplicates [Bmdl] |
Checks for duplicate function definitions.
|
| check_require [Bmdl] |
Check required function against provided functions (just names, not types.
|
| check_types [Bmdl] |
Checks that the name/type list types is consistent with the name/type list of provided_types
|
| check_unified [Bmdl] |
Returns an association list of template types to link_types.
|
| compile_binary_operation [Bmdirc] |
Compiles a binary operation expression
|
| compile_buffer [Bmdfc] |
Compiles a complete buffer of IR instructions, including the compiler signal to allocate global fields
|
| compile_callbacks [Bmdfsmc] |
Compiles the callback list of a state
|
| compile_conditional [Bmdirc] |
Compiles a conditional.
|
| compile_continued_conditional [Bmdirc] |
Compiles an else case
|
| compile_datatype_init [Bmdirc] |
Compiles the initialization code of data type dt
|
| compile_datatypes_pushing [Bmdirc] |
Compiles each data type in dt_list, inserting push instructions between each compilation result
|
| compile_expression [Bmdirc] |
Compiles an expression
|
| compile_expression_list [Bmdirc] |
Compiles a list of expressions
|
| compile_fsm [Bmdfsmc] |
Compiles each state machine described in the AST, leaving other syntax elements untouched.
|
| compile_function_call [Bmdirc] |
Compiles a function call.
|
| compile_function_definition [Bmdirc] |
Compiles a function definition.
|
| compile_get_variable_identifier [Bmdirc] |
Get a variable identifier into the accumulator
|
| compile_global_expression [Bmdirc] |
Compile global expression
|
| compile_global_expression_list [Bmdirc] |
Compile a global expression list
|
| compile_ir [Bmdirc] |
Compile a source program to IR representation, including the init buffer
|
| compile_ir_instruction [Bmdfc] |
Compiles the given IR instruction
|
| compile_ir_instruction_list [Bmdfc] |
Compiles a list of IR instructions
|
| compile_list_value_producer [Bmdirc] |
Compiles a list value producer
|
| compile_loop [Bmdirc] |
Compiles a loop
|
| compile_prefix_unary_operation [Bmdirc] |
Compiles unary operations
|
| compile_return [Bmdirc] |
Compiles a return statement
|
| compile_set_statelist [Bmdfsmc] |
Produces code to set the state list of the finite state machine to the given state names
|
| compile_set_variable_identifier [Bmdirc] |
Produces code that sets the variable identifier to the value in the accumulator.
|
| compile_states [Bmdfsmc] |
Compiles the state list and sets the initial state of the FSM.
|
| compile_states_helper [Bmdfsmc] |
Compiles all states.
|
| compile_transition [Bmdfsmc] |
Compiles a given transition in a state.
|
| compile_transition_target [Bmdfsmc] |
Compile a transition target of a state.
|
| compile_transition_targets [Bmdfsmc] |
Compiles all transition targets of a given state.
|
| compile_transitions [Bmdfsmc] |
Compiles all transitions of a given state.
|
| compile_value [Bmdirc] |
Compiles a value
|
| compile_value_producer [Bmdirc] |
Compiles a value produder
|
| compile_value_producer_list_pushing [Bmdirc] |
Compiles each value producer in order, pushing the results onto the stack
|
| compile_variable_assignment [Bmdirc] |
Compiles a variable assignment
|
| compile_variable_declaration [Bmdirc] |
Compiles a variable declarations
|
| concat [Bmdl] |
Shorthand for String.concat ""
|
| concat [Bmdtc] |
Renaming of String.concat ""
|
| concat [Bmdirc] |
Shorthand for String.concat ""
|
| concat [Bmdfsmc] | |
| concat [Ast] | |
| concat_commas [Bmdtc] |
Concatenates a list with commas.
|
| cur_id [Bmdfsmc] |
Used by make_id()
|
E | |
| elim_repeats [Bmdtc] |
Eliminates duplicate entries in a list
|
| expanded_string_of_enum [Bmdtc] |
Gives an expanded string representation of the given enum type detailing its total number of values
|
| expanded_string_of_struct [Bmdtc] |
Gives an expanded string representation of the given struct type which includes the expanded representation
of each of its fields
|
| expanded_string_of_type [Bmdtc] |
Gives a string representation of the given type with expanded represnetations of structs and enums
|
| extract_code [Bmdl] |
Extracts the assembler code from the linker syntax tree
|
| extract_provide [Bmdl] |
Extracts a list of the name of a provided function from the linker syntax tree element.
|
| extract_provide_type [Bmdl] |
Extracts the name/type pair of a provided function from the linker syntax tree element.
|
| extract_type [Bmdl] |
Extracts a name/type pairs from a linker syntax tree element.
|
G | |
| get_break_label [Bmdfc] |
Gets the relevant break label
|
| get_breakcontinue_restore [Bmdfc] |
Gets the restore code needed to exit all frames that have been entered since the loop frame
before breaking/continuing
|
| get_continue_label [Bmdfc] |
Gets the relevant continue label
|
| get_cur_defs [Bmdfc] |
Gets all variable definitions of the current stack frame and its parents
|
| get_enum_value [Bmdtc] |
Casts enum value s1.s2 to an integer.
|
| get_first [Bmdtc] |
Replaces an association list by a list of keys
|
| get_first [Bmdfsmc] |
Returns the first element of any 2-tuple
|
| get_id [Bmdfsmc] |
Checks if the id is associated with some name in the environment.
|
| get_link_buffer [Bmdtc] |
Gets the contents of the linker header infromation
|
| get_loc [Bmdfc] |
Gets the location of the given variable
|
| get_nvalues_enum [Bmdtc] |
Gets the total number of values of enum type ename.
|
| get_restore_code [Bmdfc] |
Gets the number of pops needed to restore the current stack frame to its parent
|
| get_second [Bmdtc] |
Replaces an association list by a list of values
|
| get_stack_offset [Bmdfc] |
Gets the change in stack pointer resulting from the given instruction.
|
| get_state [Bmdfsmc] |
Retrieves the state_node object with the given id from the globally defined graph
|
| get_state_helper [Bmdfsmc] |
Retrieves the state_node object with the given id from the given graph
|
| get_state_name [Bmdfsmc] |
Returns the state name given an id
|
| get_state_names [Bmdfsmc] |
Gets a string list of state names from a list of state_nodes
|
| get_struct_data_type_list [Bmdtc] |
Gets the AST data types of the struct fields
|
| getfield_struct [Bmdtc] |
Returns the integer index of field s2 in struct s1 as determined by environment env
|
| getfields_struct [Bmdtc] |
Returns the (string * bmdtype) list of struct fields of struct s1.
|
| gettype_binop [Bmdtc] |
Gets the type of the result of operator op on values of type t1 and t2.
|
| gettype_fun [Bmdtc] |
Gets the type of the given function from the environment.
|
| gettype_struct [Bmdtc] |
Gets the data type of field s2 of struct s1 from the environment.
|
| gettype_var [Bmdtc] |
Gets the type of the given variable from the environment.
|
I | |
| indexof [Bmdtc] |
Finds the index of a value in a list.
|
| init_buffer [Bmdirc] |
Keeps track of the buffer of code used to initialize structs/arrays/lists.
|
| insert_template_types [Bmdtc] |
Uses the association list (substitution list) template_map (key: template string, value: bmdtype)
to type the given data type with those substitutions
|
| is_enum_value [Bmdtc] |
Checks if s2 is an enum value of enum type s1.
|
| is_struct_value [Bmdtc] |
Checks if s2 is a field of struct s1 from the environment.
|
| is_typed [Bmdtc] |
Determines whether an AST is validly typed.
|
| isallowed_binop [Bmdtc] |
Checks if op is a valid operator on values of type t1 and t2
|
| isdef [Bmdfc] |
Checks if the given variable is defined in the current scope or one of its parent scopes
|
| isdef_enum [Bmdtc] |
Checks if the given enum is defined in the environment
|
| isdef_fun [Bmdtc] |
Checks if the given function is defined in the environment
|
| isdef_ident [Bmdtc] |
Checks if the given identifier is defined as a struct, enum, variable, or function in the environment
|
| isdef_include [Bmdtc] |
Checks if file "name" has been included in the given environment
|
| isdef_struct [Bmdtc] |
Checks if the given struct name is defined in the environment
|
| isdef_templated [Bmdtc] |
Checks if the given template definition is defined in the environment
|
| isdef_var [Bmdtc] |
Checks if the given variable is defined in the environment
|
L | |
| label_id [Bmdirc] |
Used by make_label
|
| link_buffer [Bmdtc] |
Linker header information buffer
|
M | |
| main [Bmdl] | |
| main [Bmdc] | |
| make_env [Bmdfc] |
Makes a new compilation environment
|
| make_id [Bmdfsmc] |
Returns a unique integer every call
|
| make_label [Bmdirc] |
Generate labels with unique prefixes
|
| make_label [Bmdfc] |
See Bmdirc.make_label
|
| make_struct_type_list [Bmdtc] |
Creates a list of AST data type elements correlated with the struct fields
|
N | |
| n_globals [Bmdfc] |
Gets the number of global fields that need to be allocated
|
| nfields_struct [Bmdtc] |
Gets the number of fields of struct sname from the environment.
|
| node_list [Bmdfsmc] |
State Graph
|
| note_arg_list [Bmdirc] |
Takes an argument list and notes the positions
|
O | |
| offset_locs [Bmdfc] |
Offsets every stack location in the environment by i (positive = push, negative = pop
|
P | |
| print_ast [Ast] |
Pretty print the AST
|
| print_buffer [Bmdfc] |
Prints the given instruction buffer to the given output channel
|
| print_ir_buffer [Bmdirc] |
Prints the IR buffer to the given output channel
|
R | |
| raise_compile_error [Bmdirc] |
Raises an IR compile error by concatenating s_list
|
| raise_compile_error [Bmdfc] |
Raises a compiler error from the concatenation of the given string list
|
| raise_fsm_error [Bmdfsmc] | |
| raise_linker_error [Bmdl] |
Raises the linker error of string s
|
| raise_type_error [Bmdtc] |
Raises a type error from the concatenated string list
|
| remove_frame [Bmdfc] |
Removes a frame from the envrionment.
|
| remove_template_def [Bmdtc] |
Removes the most recent template definition from the environment
|
| repeat_list [Bmdirc] |
Concatenates n repetitions of the given list
|
| repeat_list [Bmdfc] |
Repeats the given list n times and concatenates the repetitions
|
| reset_link_buffer [Bmdtc] |
Clears the linker header information buffer
|
| reverse_assoc [Bmdfsmc] |
Reverses key/value pairs of an association list
|
S | |
| set_loop_info [Bmdfc] |
Sets the break/continue information of the current environment frame
|
| state_env [Bmdfsmc] |
State Id -> State name association
|
| string_of_arglist [Ast] | |
| string_of_ast [Ast] |
Pretty-printable string of the AST
|
| string_of_binop [Ast] |
Pretty-printable string of a binary operator
|
| string_of_buffer [Bmdfc] |
Produces a string representation of the given instruction buffer
|
| string_of_conditional [Ast] | |
| string_of_continued_conditional [Ast] | |
| string_of_datatype [Ast] | |
| string_of_datatype_list [Ast] | |
| string_of_expr [Ast] | |
| string_of_expr_list [Ast] | |
| string_of_function_call [Ast] | |
| string_of_global_expression [Ast] | |
| string_of_include [Ast] | |
| string_of_instruction [Bmdirc] |
Produces a string representation of the given instruction
|
| string_of_ir_buffer [Bmdirc] |
Produces a string representation of the given IR instruction buffer
|
| string_of_ir_instruction [Bmdirc] |
Produces a string representation of the given IR instruction
|
| string_of_list_value_producer [Ast] | |
| string_of_loop [Ast] | |
| string_of_return_statement [Ast] | |
| string_of_string_list [Ast] | |
| string_of_type [Bmdtc] |
Gives a string representation of the given type
|
| string_of_type_list [Bmdtc] |
Produces a comma-separated string representation of a list of types
|
| string_of_unop [Ast] | |
| string_of_value [Ast] | |
| string_of_value_producer [Ast] | |
| string_of_value_producer_list [Ast] | |
| string_of_var_assign [Ast] | |
| string_of_var_declare [Ast] | |
| string_of_var_declare_list [Ast] | |
| string_of_variable_identifier [Ast] | |
| structdef_list [Bmdtc] |
Types the declaration of a list of struct fields.
|
T | |
| type_array_value_producer [Bmdtc] |
Types an array value producer (i.e.
|
| type_binop [Bmdtc] |
Types a binary operation vp1 op vp2.
|
| type_conditional [Bmdtc] |
Types a conditional expression
|
| type_continued_conditional [Bmdtc] |
Types an else case
|
| type_data_type [Bmdtc] |
Types a single AST data type element
|
| type_data_types [Bmdtc] |
Types a list of AST data type element
|
| type_expression [Bmdtc] |
Types an expression.
|
| type_expression_list [Bmdtc] |
Types an expression list.
|
| type_function_call [Bmdtc] |
Types a function call expression.
|
| type_function_call_value [Bmdtc] |
Types a function call as a value-producer (checks argument types, gives the return type).
|
| type_global_expression [Bmdtc] |
Types a top level expression
|
| type_list_value_producer [Bmdtc] |
Types a list value producer
|
| type_loop [Bmdtc] |
Types a loop
|
| type_prefix_unop [Bmdtc] |
Types a unary operation expression.
|
| type_program [Bmdtc] |
Types a program (top-level expression list
|
| type_value [Bmdtc] |
Types a value
|
| type_value_producer [Bmdtc] |
Types a value producer
|
| type_value_producer_list [Bmdtc] |
Types a list of value producers (i.e.
|
| type_value_producer_list_nonuniform [Bmdtc] |
Returns a list of types, i.e.
|
| type_var_assign [Bmdtc] |
Types a variable assignment
|
| type_var_declaration [Bmdtc] |
Types a variable declaration
|
| type_variable_identifier [Bmdtc] |
Types a variable identifier
|
U | |
| unify_types [Bmdtc] |
Returns an association list of template types to bmdtypes.
|
V | |
| vardef_arglist [Bmdtc] |
Types an argument list to a function, adding the arguments as variable declarations to the environment.
|
| varify [Bmdfsmc] |
Turns a string into a AST variable identifier
|
| visit_graph [Bmdfsmc] |
Visit all nodes stemming from nodes in node_list
|
| vm_defs [Bmdl] |
VM-Provided Remotable Functions
|