================================================================================
= Inputted Code
= - Input  of: org.vcssl.nano.compiler.Preprocessor
================================================================================
int foo;
int bar = 123;
foo = bar + 456;
output(foo);


================================================================================
= Preprocessed Code
= - Output of: org.vcssl.nano.compiler.Preprocessor
= - Input  of: org.vcssl.nano.compiler.LexicalAnalyzer
================================================================================
int foo;
int bar = 123;
foo = bar + 456;
output(foo);


================================================================================
= Tokens
= - Output of: org.vcssl.nano.compiler.LexicalAnalyzer
= - Input  of: org.vcssl.nano.compiler.Parser
================================================================================
[Token word="int", lineNumber=1, fileName="CompilerExampleFull.vnano", type=DATA_TYPE, priority=0]
[Token word="foo", lineNumber=1, fileName="CompilerExampleFull.vnano", type=LEAF, priority=0, LEAF_TYPE="variableIdentifier"]
[Token word=";", lineNumber=1, fileName="CompilerExampleFull.vnano", type=END_OF_STATEMENT, priority=0]
[Token word="int", lineNumber=2, fileName="CompilerExampleFull.vnano", type=DATA_TYPE, priority=0]
[Token word="bar", lineNumber=2, fileName="CompilerExampleFull.vnano", type=LEAF, priority=0, LEAF_TYPE="variableIdentifier"]
[Token word="=", lineNumber=2, fileName="CompilerExampleFull.vnano", type=OPERATOR, priority=6000, OPERATOR_EXECUTOR="assignment", OPERATOR_SYNTAX="binary", OPERATOR_ASSOCIATIVITY="right"]
[Token word="123", lineNumber=2, fileName="CompilerExampleFull.vnano", type=LEAF, priority=0, LEAF_TYPE="literal", DATA_TYPE="int", RANK="0"]
[Token word=";", lineNumber=2, fileName="CompilerExampleFull.vnano", type=END_OF_STATEMENT, priority=0]
[Token word="foo", lineNumber=3, fileName="CompilerExampleFull.vnano", type=LEAF, priority=0, LEAF_TYPE="variableIdentifier"]
[Token word="=", lineNumber=3, fileName="CompilerExampleFull.vnano", type=OPERATOR, priority=6000, OPERATOR_EXECUTOR="assignment", OPERATOR_SYNTAX="binary", OPERATOR_ASSOCIATIVITY="right"]
[Token word="bar", lineNumber=3, fileName="CompilerExampleFull.vnano", type=LEAF, priority=0, LEAF_TYPE="variableIdentifier"]
[Token word="+", lineNumber=3, fileName="CompilerExampleFull.vnano", type=OPERATOR, priority=3100, OPERATOR_EXECUTOR="arithmetic", OPERATOR_SYNTAX="binary", OPERATOR_ASSOCIATIVITY="left"]
[Token word="456", lineNumber=3, fileName="CompilerExampleFull.vnano", type=LEAF, priority=0, LEAF_TYPE="literal", DATA_TYPE="int", RANK="0"]
[Token word=";", lineNumber=3, fileName="CompilerExampleFull.vnano", type=END_OF_STATEMENT, priority=0]
[Token word="output", lineNumber=4, fileName="CompilerExampleFull.vnano", type=LEAF, priority=0, LEAF_TYPE="functionIdentifier"]
[Token word="(", lineNumber=4, fileName="CompilerExampleFull.vnano", type=OPERATOR, priority=1000, OPERATOR_EXECUTOR="call", OPERATOR_SYNTAX="multiary", OPERATOR_ASSOCIATIVITY="left"]
[Token word="foo", lineNumber=4, fileName="CompilerExampleFull.vnano", type=LEAF, priority=0, LEAF_TYPE="variableIdentifier"]
[Token word=")", lineNumber=4, fileName="CompilerExampleFull.vnano", type=OPERATOR, priority=10000000, OPERATOR_EXECUTOR="call", OPERATOR_SYNTAX="multialyEnd", OPERATOR_ASSOCIATIVITY="left"]
[Token word=";", lineNumber=4, fileName="CompilerExampleFull.vnano", type=END_OF_STATEMENT, priority=0]

================================================================================
= Parsed AST
= - Output of: org.vcssl.nano.compiler.Parser
= - Input  of: org.vcssl.nano.compiler.SemanticAnalyzer
================================================================================
<ROOT>
  <VARIABLE DATA_TYPE="int" IDENTIFIER_VALUE="foo" RANK="0" />
  <VARIABLE DATA_TYPE="int" IDENTIFIER_VALUE="bar" RANK="0">
    <EXPRESSION>
      <OPERATOR OPERATOR_ASSOCIATIVITY="right" OPERATOR_SYNTAX="binary" OPERATOR_EXECUTOR="assignment" OPERATOR_SYMBOL="=" OPERATOR_PRIORITY="6000">
        <LEAF LEAF_TYPE="variableIdentifier" IDENTIFIER_VALUE="bar" />
        <LEAF LEAF_TYPE="literal" LITERAL_VALUE="123" DATA_TYPE="int" />
      </OPERATOR>
    </EXPRESSION>
  </VARIABLE>
  <EXPRESSION>
    <OPERATOR OPERATOR_ASSOCIATIVITY="right" OPERATOR_SYNTAX="binary" OPERATOR_EXECUTOR="assignment" OPERATOR_SYMBOL="=" OPERATOR_PRIORITY="6000">
      <LEAF LEAF_TYPE="variableIdentifier" IDENTIFIER_VALUE="foo" />
      <OPERATOR OPERATOR_ASSOCIATIVITY="left" OPERATOR_SYNTAX="binary" OPERATOR_EXECUTOR="arithmetic" OPERATOR_SYMBOL="+" OPERATOR_PRIORITY="3100">
        <LEAF LEAF_TYPE="variableIdentifier" IDENTIFIER_VALUE="bar" />
        <LEAF LEAF_TYPE="literal" LITERAL_VALUE="456" DATA_TYPE="int" />
      </OPERATOR>
    </OPERATOR>
  </EXPRESSION>
  <EXPRESSION>
    <OPERATOR OPERATOR_ASSOCIATIVITY="left" OPERATOR_SYNTAX="multiary" OPERATOR_EXECUTOR="call" OPERATOR_SYMBOL="(" OPERATOR_PRIORITY="1000">
      <LEAF LEAF_TYPE="functionIdentifier" IDENTIFIER_VALUE="output" />
      <LEAF LEAF_TYPE="variableIdentifier" IDENTIFIER_VALUE="foo" />
    </OPERATOR>
  </EXPRESSION>
</ROOT>

================================================================================
= Analyzed AST
= - Output of: org.vcssl.nano.compiler.SemanticAnalyzer
= - Input  of: org.vcssl.nano.compiler.CodeGenerator
================================================================================
<ROOT>
  <VARIABLE DATA_TYPE="int" IDENTIFIER_VALUE="foo" RANK="0" SCOPE="local" IDENTIFIER_SERIAL_NUMBER="0" />
  <VARIABLE DATA_TYPE="int" IDENTIFIER_VALUE="bar" RANK="0" SCOPE="local" IDENTIFIER_SERIAL_NUMBER="1">
    <EXPRESSION DATA_TYPE="int" RANK="0">
      <OPERATOR OPERATOR_ASSOCIATIVITY="right" OPERATOR_SYNTAX="binary" OPERATOR_EXECUTOR="assignment" OPERATOR_SYMBOL="=" OPERATOR_PRIORITY="6000" DATA_TYPE="int" OPERATOR_EXECUTION_DATA_TYPE="int" RANK="0">
        <LEAF LEAF_TYPE="variableIdentifier" IDENTIFIER_VALUE="bar" IDENTIFIER_SERIAL_NUMBER="1" SCOPE="local" RANK="0" DATA_TYPE="int" />
        <LEAF LEAF_TYPE="literal" LITERAL_VALUE="123" DATA_TYPE="int" RANK="0" />
      </OPERATOR>
    </EXPRESSION>
  </VARIABLE>
  <EXPRESSION DATA_TYPE="int" RANK="0">
    <OPERATOR OPERATOR_ASSOCIATIVITY="right" OPERATOR_SYNTAX="binary" OPERATOR_EXECUTOR="assignment" OPERATOR_SYMBOL="=" OPERATOR_PRIORITY="6000" DATA_TYPE="int" OPERATOR_EXECUTION_DATA_TYPE="int" RANK="0">
      <LEAF LEAF_TYPE="variableIdentifier" IDENTIFIER_VALUE="foo" IDENTIFIER_SERIAL_NUMBER="0" SCOPE="local" RANK="0" DATA_TYPE="int" />
      <OPERATOR OPERATOR_ASSOCIATIVITY="left" OPERATOR_SYNTAX="binary" OPERATOR_EXECUTOR="arithmetic" OPERATOR_SYMBOL="+" OPERATOR_PRIORITY="3100" DATA_TYPE="int" OPERATOR_EXECUTION_DATA_TYPE="int" RANK="0">
        <LEAF LEAF_TYPE="variableIdentifier" IDENTIFIER_VALUE="bar" IDENTIFIER_SERIAL_NUMBER="1" SCOPE="local" RANK="0" DATA_TYPE="int" />
        <LEAF LEAF_TYPE="literal" LITERAL_VALUE="456" DATA_TYPE="int" RANK="0" />
      </OPERATOR>
    </OPERATOR>
  </EXPRESSION>
  <EXPRESSION DATA_TYPE="void" RANK="0">
    <OPERATOR OPERATOR_ASSOCIATIVITY="left" OPERATOR_SYNTAX="multiary" OPERATOR_EXECUTOR="call" OPERATOR_SYMBOL="(" OPERATOR_PRIORITY="1000" SCOPE="global" DATA_TYPE="void" OPERATOR_EXECUTION_DATA_TYPE="void" RANK="0">
      <LEAF LEAF_TYPE="functionIdentifier" IDENTIFIER_VALUE="output" />
      <LEAF LEAF_TYPE="variableIdentifier" IDENTIFIER_VALUE="foo" IDENTIFIER_SERIAL_NUMBER="0" SCOPE="local" RANK="0" DATA_TYPE="int" />
    </OPERATOR>
  </EXPRESSION>
</ROOT>

================================================================================
= Assembly Code (VRIL Code)
= - Output of: org.vcssl.nano.compiler.CodeGenerator
= - Input  of: org.vcssl.nano.vm.assembler.Assembler
================================================================================
#ASSEMBLY_LANGUAGE_IDENTIFIER	"Vector Register Intermediate Language (VRIL)";
#ASSEMBLY_LANGUAGE_VERSION	"0.0.1";
#SCRIPT_LANGUAGE_IDENTIFIER	"Vnano";
#SCRIPT_LANGUAGE_VERSION	"0.1.4";

#GLOBAL_FUNCTION	_output(int);

#LOCAL_VARIABLE	_foo@0;
#LOCAL_VARIABLE	_bar@1;

#META	"line=1, file=CompilerExampleFull.vnano";
	ALLOC	int	_foo@0;

#META	"line=2, file=CompilerExampleFull.vnano";
	ALLOC	int	_bar@1;
	MOV	int	_bar@1	~int:123;

#META	"line=3, file=CompilerExampleFull.vnano";
	ALLOC	int	R0;
	ADD	int	R0	_bar@1	~int:456;
	MOV	int	_foo@0	R0;

#META	"line=4, file=CompilerExampleFull.vnano";
	CALLX	void	-	_output(int)	_foo@0;
	END	void	-;

================================================================================
= VM Object Code
= - Output of: org.vcssl.nano.vm.assembler.Assembler
= - Input  of: org.vcssl.nano.vm.processor.Processor
= -        or: org.vcssl.nano.vm.accelerator.Accelerator
================================================================================
#INSTRUCTION
	0	ALLOC	INT64		L0	C0
	1	ALLOC	INT64		L1	C1
	2	MOV	INT64		L1	C2	C1
	3	ALLOC	INT64		R0	C3
	4	ADD	INT64		R0	L1	C4	C3
	5	MOV	INT64		L0	R0	C3
	6	CALLX	VOID		N0	C6	L0	C5
	7	END	VOID		N0	C5

#LABEL

#FUNCTION
	0	_output(int)

#GLOBAL_DATA

#LOCAL_DATA
	L0	_foo@0
	L1	_bar@1

#CONSTANT_DATA
	C0	~string:"line=1, file=CompilerExampleFull.vnano"
	C1	~string:"line=2, file=CompilerExampleFull.vnano"
	C2	~int:123
	C3	~string:"line=3, file=CompilerExampleFull.vnano"
	C4	~int:456
	C5	~string:"line=4, file=CompilerExampleFull.vnano"
	C6	~int:0

#REGISTER
	R0

================================================================================
= Accelerator Code
= - Output of: org.vcssl.nano.vm.accelerator.AcceleratorSchedulingUnit
= - Input  of: org.vcssl.nano.vm.accelerator.AcceleratorDispatchUnit
================================================================================
[0] <- [0]	[ ALLOC	INT64	L0	C0	BYPASS ]
[1] <- [1]	[ ALLOC	INT64	L1	C1	BYPASS ]
[2] <- [3]	[ ALLOC	INT64	R0	C3	BYPASS ]
[3] <- [2]	[ MOV	INT64	L1	C2	C1	I64CS_TRANSFER ]
[4] <- [4]	[ ADD	INT64	L0	L1	C4	C3	I64CS_ARITHMETIC ]
[5] <- [6]	[ CALLX	VOID	N0	C6	L0	C5	BYPASS ]
[6] <- [7]	[ END	VOID	N0	C5	BYPASS ]

================================================================================
= Accelerator State (Execution Unit Dispatchment)
= - Output of: org.vcssl.nano.vm.accelerator.AcceleratorDispatchUnit
================================================================================
[0]	org.vcssl.nano.vm.accelerator.BypassUnit$ProcessorCallNode@77afea7d
[1]	org.vcssl.nano.vm.accelerator.BypassUnit$ProcessorCallNode@161cd475
[2]	org.vcssl.nano.vm.accelerator.BypassUnit$ProcessorCallNode@532760d8
[3]	org.vcssl.nano.vm.accelerator.Int64CachedScalarTransferUnit$Int64CachedScalarMovNode@57fa26b7
[4]	org.vcssl.nano.vm.accelerator.Int64CachedScalarArithmeticUnit$Int64CachedScalarAddUnit@5f8ed237
[5]	org.vcssl.nano.vm.accelerator.BypassUnit$ProcessorCallNode@2f410acf
[6]	org.vcssl.nano.vm.accelerator.BypassUnit$ProcessorCallNode@47089e5f

================================================================================
= Run
================================================================================
579