Index of values


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