Files
vgstation13/code/modules/scripting/AST/Blocks.dm
PJB3005 1a2f9ab059 All the EOLs are now LF.
Fuck you too 0D :^)
2016-01-16 23:28:07 +01:00

45 lines
1.3 KiB
Plaintext

/*
File: Block Types
*/
/*
Class: BlockDefinition
An object representing a set of actions to perform independently from the rest of the script. Blocks are basically just
lists of statements to execute which also contain some local variables and methods. Note that since functions are local to a block,
it is possible to have a function definition inside of any type of block (such as in an if statement or another function),
and not just in the global scope as in many languages.
*/
/datum/node/BlockDefinition
var/list/statements = new
var/list/functions = new
var/list/initial_variables = new
/*
Proc: SetVar
Defines a permanent variable. The variable will not be deleted when it goes out of scope.
Notes:
Since all pre-existing temporary variables are deleted, it is not generally desirable to use this proc after the interpreter has been instantiated.
Instead, use <n_Interpreter.SetVar()>.
See Also:
- <n_Interpreter.SetVar()>
*/
/datum/node/BlockDefinition/proc/SetVar(name, value)
initial_variables[name] = value
/*
Class: GlobalBlock
A block object representing the global scope.
*/
//
/datum/node/BlockDefinition/GlobalBlock/New()
initial_variables["null"] = null
return ..()
/*
Class: FunctionBlock
A block representing a function body.
*/
//
/datum/node/BlockDefinition/FunctionBlock