diff --git a/DMS/DMS.vcxproj b/DMS/DMS.vcxproj
index fa87578..0138754 100644
--- a/DMS/DMS.vcxproj
+++ b/DMS/DMS.vcxproj
@@ -147,6 +147,7 @@
+
diff --git a/DMS/DMS.vcxproj.filters b/DMS/DMS.vcxproj.filters
index 1dcf68d..a04945b 100644
--- a/DMS/DMS.vcxproj.filters
+++ b/DMS/DMS.vcxproj.filters
@@ -60,6 +60,9 @@
Source Files\DMS
+
+ Source Files\DMS
+
diff --git a/DMS/Debug/DMS.log b/DMS/Debug/DMS.log
index ae767a8..f2f985e 100644
--- a/DMS/Debug/DMS.log
+++ b/DMS/Debug/DMS.log
@@ -1,2 +1,9 @@
- LineParserParse.cpp
+ DMS.cpp
+ LineParserBuilds.cpp
+ LineParserMatchProcess.cpp
+ LineParserParse.cpp
+ LineParserUtils.cpp
+ chunk.cpp
+ dms_state.cpp
+ Generating Code...
DMS.vcxproj -> F:\VSCWorkspace\DMS\Debug\DMS.exe
diff --git a/DMS/Debug/DMS.obj b/DMS/Debug/DMS.obj
index a3202b5..6344264 100644
Binary files a/DMS/Debug/DMS.obj and b/DMS/Debug/DMS.obj differ
diff --git a/DMS/Debug/DMS.tlog/CL.command.1.tlog b/DMS/Debug/DMS.tlog/CL.command.1.tlog
index 99fa6d5..36af4a7 100644
Binary files a/DMS/Debug/DMS.tlog/CL.command.1.tlog and b/DMS/Debug/DMS.tlog/CL.command.1.tlog differ
diff --git a/DMS/Debug/DMS.tlog/CL.read.1.tlog b/DMS/Debug/DMS.tlog/CL.read.1.tlog
index 61e2afc..65c102a 100644
Binary files a/DMS/Debug/DMS.tlog/CL.read.1.tlog and b/DMS/Debug/DMS.tlog/CL.read.1.tlog differ
diff --git a/DMS/Debug/DMS.tlog/CL.write.1.tlog b/DMS/Debug/DMS.tlog/CL.write.1.tlog
index 49cbe52..13ea934 100644
Binary files a/DMS/Debug/DMS.tlog/CL.write.1.tlog and b/DMS/Debug/DMS.tlog/CL.write.1.tlog differ
diff --git a/DMS/Debug/DMS.tlog/link.command.1.tlog b/DMS/Debug/DMS.tlog/link.command.1.tlog
index 946d778..7c5dc1f 100644
Binary files a/DMS/Debug/DMS.tlog/link.command.1.tlog and b/DMS/Debug/DMS.tlog/link.command.1.tlog differ
diff --git a/DMS/Debug/DMS.tlog/link.read.1.tlog b/DMS/Debug/DMS.tlog/link.read.1.tlog
index f951f26..d943091 100644
Binary files a/DMS/Debug/DMS.tlog/link.read.1.tlog and b/DMS/Debug/DMS.tlog/link.read.1.tlog differ
diff --git a/DMS/Debug/DMS.tlog/link.write.1.tlog b/DMS/Debug/DMS.tlog/link.write.1.tlog
index a88f3dc..20782c6 100644
Binary files a/DMS/Debug/DMS.tlog/link.write.1.tlog and b/DMS/Debug/DMS.tlog/link.write.1.tlog differ
diff --git a/DMS/Debug/LineParser.obj b/DMS/Debug/LineParser.obj
deleted file mode 100644
index 4c44e1b..0000000
Binary files a/DMS/Debug/LineParser.obj and /dev/null differ
diff --git a/DMS/Debug/cmd.obj b/DMS/Debug/cmd.obj
index 8a52926..07e9027 100644
Binary files a/DMS/Debug/cmd.obj and b/DMS/Debug/cmd.obj differ
diff --git a/DMS/Debug/codes.obj b/DMS/Debug/codes.obj
index 5599cc0..b867956 100644
Binary files a/DMS/Debug/codes.obj and b/DMS/Debug/codes.obj differ
diff --git a/DMS/Debug/dms_exceptions.obj b/DMS/Debug/dms_exceptions.obj
index 9390d03..1b963f0 100644
Binary files a/DMS/Debug/dms_exceptions.obj and b/DMS/Debug/dms_exceptions.obj differ
diff --git a/DMS/Debug/number_utils.obj b/DMS/Debug/number_utils.obj
index 2647506..a26bef9 100644
Binary files a/DMS/Debug/number_utils.obj and b/DMS/Debug/number_utils.obj differ
diff --git a/DMS/Debug/utils.obj b/DMS/Debug/utils.obj
index 168be0d..d3a086a 100644
Binary files a/DMS/Debug/utils.obj and b/DMS/Debug/utils.obj differ
diff --git a/DMS/Debug/value.obj b/DMS/Debug/value.obj
index 9a5bd4c..002a4ef 100644
Binary files a/DMS/Debug/value.obj and b/DMS/Debug/value.obj differ
diff --git a/DMS/Debug/vc142.idb b/DMS/Debug/vc142.idb
index 7df7a45..4d7d735 100644
Binary files a/DMS/Debug/vc142.idb and b/DMS/Debug/vc142.idb differ
diff --git a/DMS/Debug/vc142.pdb b/DMS/Debug/vc142.pdb
index 8e61a50..1a8b8da 100644
Binary files a/DMS/Debug/vc142.pdb and b/DMS/Debug/vc142.pdb differ
diff --git a/DMS/LineParser.h b/DMS/LineParser.h
index b766461..41e4e93 100644
--- a/DMS/LineParser.h
+++ b/DMS/LineParser.h
@@ -66,9 +66,13 @@ namespace dms {
bool match_process_goto(tokenstream* stream);
bool match_process_jump(tokenstream* stream);
bool match_process_exit(tokenstream* stream);
- bool match_process_label(tokenstream* stream);
bool match_process_expression(tokenstream* stream, value* v);
bool match_process_IFFF(tokenstream* stream);
+ // Build
+ void buildGoto(std::string g, bool v = false);
+ void buildNoop();
+ void buildLabel(std::string l);
+
// Utils
bool createBlock(std::string bk_name, blocktype bk_type);
diff --git a/DMS/LineParserBuilds.cpp b/DMS/LineParserBuilds.cpp
new file mode 100644
index 0000000..1faead0
--- /dev/null
+++ b/DMS/LineParserBuilds.cpp
@@ -0,0 +1,26 @@
+#include "LineParser.h"
+namespace dms {
+ void LineParser::buildGoto(std::string g, bool v) {
+ cmd* c = new cmd;
+ c->opcode = codes::GOTO;
+ if (v) {
+ c->args.push(buildVariable(g));
+ }
+ else {
+ c->args.push(buildValue(g));
+ }
+ current_chunk->addCmd(c);
+ }
+ void LineParser::buildNoop() {
+ cmd* c = new cmd;
+ c->opcode = codes::NOOP;
+ current_chunk->addCmd(c);
+ }
+ void LineParser::buildLabel(std::string l) {
+ cmd* c = new cmd;
+ c->opcode = codes::LABL;
+ c->args.push(buildValue(l));
+ current_chunk->addCmd(c);
+ current_chunk->addLabel(l);
+ }
+}
\ No newline at end of file
diff --git a/DMS/LineParserMatchProcess.cpp b/DMS/LineParserMatchProcess.cpp
index 3bc19f3..6d736cb 100644
--- a/DMS/LineParserMatchProcess.cpp
+++ b/DMS/LineParserMatchProcess.cpp
@@ -75,7 +75,6 @@ namespace dms {
print(stream->peek());
stream->next();
std::string prompt = stream->next().name;
- print("Prompt: ", prompt);
bool good = true;
std::string option;
cmd* c = new cmd;
@@ -116,18 +115,8 @@ namespace dms {
The NOOP ensures the pattern stays.
If we are provided with a number greater than 3 then we can push an execption.
*/
+ std::string str = concat("$",stream->peek().line_num);
while (!stream->match(tokens::cbracketc)) {
- // We need to match the possible options for a choice block
- /*
- "option" function()
- "option" goto ""
- "option" goto var
- "option" jump ""
- "option" jump var
- "option" exit [0]
-
- Exit takes an optional int
- */
if (stream->match(tokens::cbracketo) && !start) {
start = true;
stream->next();
@@ -137,31 +126,32 @@ namespace dms {
}
else if (stream->match(tokens::string)) {
std::string name = stream->next().name;
- print("Option: ", name);
c->args.push(buildValue(name)); // We append the choice to the first part of the CHOI cmd
// We consumed the option now lets do some matching, note that all of these are one liners in the bytecode!
if (match_process_function(stream,nullptr,false)) { // No returns and also no nesting of functions!
- // We collect
+ // We cannot have a nested function here, but if we dont have that then we add our goto
+ buildGoto(str);
}
else if (match_process_goto(stream)) {
- current_chunk->addCmd(new cmd{codes::NOOP }); // Add noop to post-goto command
+ buildNoop(); // Add noop to post-goto command
}
else if (match_process_jump(stream)) {
- current_chunk->addCmd(new cmd{ codes::NOOP }); // Add noop to post-jump command
+ buildNoop(); // Add noop to post-jump command
}
else if (match_process_exit(stream)) {
- current_chunk->addCmd(new cmd{ codes::NOOP }); // Add noop to post-exit command
+ buildNoop(); // Add noop to post-exit command
}
}
// Last Match
else if (stream->match(tokens::newline)) {
stream->next(); // Consume
}
- else if (!stream->match(tokens::cbracketc)) {
+ else {
state->push_error(errors::error{ errors::choice_unknown,concat("Unexpected symbol ",stream->next()),true,stream->peek().line_num,current_chunk });
}
}
+ buildLabel(str);
return true;
}
return false;
@@ -217,7 +207,6 @@ namespace dms {
cmd* c = new cmd;
c->opcode = codes::FUNC;
std::string n = stream->next().name;
- print("FUNC ",n);
c->args.push(buildVariable(n)); // Set the func identifier as the first variable
// Let's set the target
if (v != nullptr) {
@@ -271,11 +260,10 @@ namespace dms {
}
// Final match this could be a function it might also be an expression
else if (match_process_function(&tempstream, tempval)) {
- /*if (!nested) {
+ if (!nested) {
print("No nested!");
state->push_error(errors::error{ errors::nested_function,"Nested functions are not allowed in this context!",true, tempstream.peek().line_num });
- }*/
- print("Nested ok!");
+ }
c->args.push(tempval);
}
else if (tempstream.match(tokens::name)) {
@@ -302,16 +290,13 @@ namespace dms {
}
bool LineParser::match_process_goto(tokenstream* stream) {
if (stream->match(tokens::gotoo,tokens::name) || tokens::gotoo,tokens::string) {
- cmd* c = new cmd;
- c->opcode = codes::GOTO;
stream->next(); // consume gotoo
if (stream->match(tokens::name)) {
- c->args.push(buildVariable(stream->next().name));
+ buildGoto(stream->next().name,true);
}
else {
- c->args.push(buildValue(stream->next().name));
+ buildGoto(stream->next().name);
}
- current_chunk->addCmd(c);
return true;
}
return false;
@@ -349,21 +334,6 @@ namespace dms {
}
return false;
}
- bool LineParser::match_process_label(tokenstream* stream) {
- if (stream->match(tokens::colon, tokens::colon, tokens::name, tokens::colon, tokens::colon)) {
- cmd* c = new cmd;
- c->opcode = codes::LABL;
- stream->next();
- stream->next();
- std::string str = stream->next().name;
- c->args.push(buildValue(str));
- current_chunk->addCmd(c);
- current_chunk->addLabel(str);
- stream->next();
- stream->next();
- }
- return false;
- }
bool LineParser::match_process_IFFF(tokenstream* stream) {
return false; // TODO finish this
}
diff --git a/DMS/LineParserParse.cpp b/DMS/LineParserParse.cpp
index edb64da..f055b2a 100644
--- a/DMS/LineParserParse.cpp
+++ b/DMS/LineParserParse.cpp
@@ -15,7 +15,6 @@ namespace dms {
return Parse(state, fn);
}
dms_state* dms::LineParser::Parse(dms_state* state, std::string file) {
- std::unordered_map chunks;
std::vector t_vec;
std::string li;
std::ifstream myfile(file);
@@ -304,7 +303,7 @@ namespace dms {
void LineParser::_Parse(tokenstream stream) {
token current = stream.next();
while (stream.peek().type != tokens::eof) {
- print(current);
+ //print(current);
if (current.type == tokens::flag) {
temp = stream.next(tokens::newline);
stream.prev(); // Unconsume the newline piece
@@ -421,7 +420,10 @@ namespace dms {
// Displays both with a target and without
match_process_disp(&stream); // Match and process displays
- match_process_label(&stream); // Match and process labels
+ if (stream.match(tokens::newline,tokens::label)) { // Match and process labels
+ stream.next();
+ buildLabel(stream.next().name);
+ }
match_process_debug(&stream);
//if (current.type != tokens::tab) // Old code for an old system...
diff --git a/DMS/dms_state.cpp b/DMS/dms_state.cpp
index 7fef938..a1d48ea 100644
--- a/DMS/dms_state.cpp
+++ b/DMS/dms_state.cpp
@@ -15,7 +15,7 @@ namespace dms {
return false;
}
void dms_state::dump(errors::error err) {
- std::cout << "Number of chunks: " << chunks.size();
+ std::cout << std::endl << "STATE DUMP" << std::endl << "Number of chunks: " << chunks.size();
std::ofstream outputFile("dump.bin");
for (const auto& [key, val] : chunks) {
std::cout << "Key: " << key << " Value: " << *val << '\n';
diff --git a/DMS/dump.txt b/DMS/dump.txt
index acc237b..3ab5ab4 100644
--- a/DMS/dump.txt
+++ b/DMS/dump.txt
@@ -1,314 +1,70 @@
Token Dump:
Line <4294967295>NOOP newline
Line <0>NOOP newline
-Line <1>ENTR flag
-Line <1>NOOP name main
+Line <1>NOOP bracketo
+Line <1>NOOP name default
+Line <1>NOOP colon
+Line <1>NOOP name char
+Line <1>NOOP bracketc
Line <1>NOOP newline
-Line <2>ENAB flag
-Line <2>NOOP name warnings
Line <2>NOOP newline
-Line <3>DISA flag
-Line <3>NOOP name omniscient
+Line <3>NOOP name money
+Line <3>NOOP equal
+Line <3>NOOP number 0
Line <3>NOOP newline
Line <4>NOOP newline
+Line <5>NOOP bracketo
+Line <5>NOOP name Ryan
+Line <5>NOOP colon
+Line <5>NOOP name char
+Line <5>NOOP bracketc
Line <5>NOOP newline
-Line <6>VERN flag
-Line <6>NOOP number 1.2
+Line <6>NOOP name age
+Line <6>NOOP equal
+Line <6>NOOP number 21
Line <6>NOOP newline
-Line <7>USIN flag
-Line <7>NOOP name extendedDefine
+Line <7>NOOP name money
+Line <7>NOOP equal
+Line <7>NOOP number 1000
Line <7>NOOP newline
Line <8>NOOP newline
+Line <9>NOOP name calm
+Line <9>NOOP colon
+Line <9>NOOP string ./path/to/file
Line <9>NOOP newline
-Line <10>NOOP bracketo
-Line <10>NOOP name main
-Line <10>NOOP bracketc
-Line <10>NOOP cbracketo
+Line <10>NOOP name excited
+Line <10>NOOP colon
+Line <10>NOOP string ./path/to/file
Line <10>NOOP newline
-Line <11>NOOP name Ryan
-Line <11>NOOP colon
-Line <11>NOOP string This works!
Line <11>NOOP newline
-Line <12>NOOP nil
-Line <12>NOOP string What's up
+Line <12>NOOP bracketo
+Line <12>NOOP name step
+Line <12>NOOP colon
+Line <12>NOOP name function
+Line <12>NOOP parao
+Line <12>NOOP name a
+Line <12>NOOP seperator
+Line <12>NOOP name b
+Line <12>NOOP seperator
+Line <12>NOOP name c
+Line <12>NOOP parac
+Line <12>NOOP bracketc
Line <12>NOOP newline
-Line <13>NOOP name Ryan
-Line <13>NOOP colon
-Line <13>NOOP cbracketo
+Line <13>NOOP string Testing...
Line <13>NOOP newline
-Line <14>NOOP name speed
+Line <14>NOOP name d
+Line <14>NOOP equal
+Line <14>NOOP parao
Line <14>NOOP number 100
-Line <14>NOOP mod
+Line <14>NOOP plus
+Line <14>NOOP name b
+Line <14>NOOP parac
+Line <14>NOOP divide
+Line <14>NOOP name c
Line <14>NOOP newline
-Line <14>NOOP name calm
-Line <14>NOOP string Hello Bob,
-Line <14>NOOP newline
-Line <15>NOOP name wait
-Line <15>NOOP number 0.455
+Line <15>NOOP name e
+Line <15>NOOP equal
+Line <15>NOOP string somestring
Line <15>NOOP newline
-Line <16>NOOP name excited
-Line <16>NOOP string how are you doing?
-Line <16>NOOP newline
-Line <17>NOOP newline
-Line <18>NOOP cbracketc
-Line <18>NOOP newline
-Line <19>NOOP newline
-Line <20>NOOP name tester
-Line <20>NOOP equal
-Line <20>NOOP string Hello
-Line <20>NOOP newline
-Line <21>NOOP name food
-Line <21>NOOP equal
-Line <21>NOOP number 3
-Line <21>NOOP newline
-Line <22>NOOP name a
-Line <22>NOOP equal
-Line <22>NOOP name list
-Line <22>NOOP bracketo
-Line <22>NOOP number 1
-Line <22>NOOP bracketc
-Line <22>NOOP newline
-Line <23>NOOP newline
-Line <24>IFFF control
-Line <24>NOOP name statment
-Line <24>NOOP cbracketo
-Line <24>NOOP newline
-Line <25>NOOP string test
-Line <25>NOOP newline
-Line <26>NOOP cbracketc
-Line <26>ELIF control
-Line <26>NOOP name statement
-Line <26>NOOP cbracketo
-Line <26>NOOP newline
-Line <27>NOOP string test
-Line <27>NOOP newline
-Line <28>NOOP cbracketc
-Line <28>IFFF control
-Line <28>NOOP name statement
-Line <28>NOOP cbracketo
-Line <28>NOOP newline
-Line <29>NOOP string test
-Line <29>NOOP newline
-Line <30>NOOP string test
-Line <30>NOOP newline
-Line <31>IFFF control
-Line <31>NOOP name statement
-Line <31>NOOP cbracketo
-Line <31>NOOP newline
-Line <32>NOOP string test
-Line <32>NOOP newline
-Line <33>NOOP cbracketc
-Line <33>ELSE control
-Line <33>NOOP cbracketo
-Line <33>NOOP newline
-Line <34>NOOP string test
-Line <34>NOOP newline
-Line <35>NOOP cbracketc
-Line <35>NOOP newline
-Line <36>NOOP cbracketc
-Line <36>ELIF control
-Line <36>NOOP name statement
-Line <36>NOOP cbracketo
-Line <36>NOOP newline
-Line <37>NOOP string test
-Line <37>NOOP newline
-Line <38>NOOP cbracketc
-Line <38>ELSE control
-Line <38>NOOP cbracketo
-Line <38>NOOP newline
-Line <39>NOOP string test
-Line <39>NOOP newline
-Line <40>NOOP cbracketc
-Line <40>NOOP newline
-Line <41>NOOP newline
-Line <42>NOOP gotoo
-Line <42>NOOP string somewhere
-Line <42>NOOP newline
-Line <43>NOOP jump
-Line <43>NOOP string overhere
-Line <43>NOOP newline
-Line <44>NOOP newline
-Line <45>NOOP name hungry
-Line <45>NOOP equal
-Line <45>NOOP parao
-Line <45>NOOP minus
-Line <45>NOOP number 2
-Line <45>NOOP plus
-Line <45>NOOP number 4
-Line <45>NOOP minus
-Line <45>NOOP parao
-Line <45>NOOP parao
-Line <45>NOOP number 5
-Line <45>NOOP multiply
-Line <45>NOOP number 5
-Line <45>NOOP parac
-Line <45>NOOP divide
-Line <45>NOOP name sqrt
-Line <45>NOOP parao
-Line <45>NOOP number 144
-Line <45>NOOP plus
-Line <45>NOOP number 5
-Line <45>NOOP parac
-Line <45>NOOP parac
-Line <45>NOOP parac
-Line <45>NOOP pow
-Line <45>NOOP number 2
-Line <45>NOOP multiply
-Line <45>NOOP number 2
-Line <45>NOOP plus
-Line <45>NOOP number 2
-Line <45>NOOP newline
-Line <46>NOOP name list
-Line <46>NOOP bracketo
-Line <46>NOOP number 1
-Line <46>NOOP bracketc
-Line <46>NOOP equal
-Line <46>NOOP string Hello
-Line <46>NOOP newline
-Line <47>NOOP name var1
-Line <47>NOOP number
-Line <47>NOOP equal
-Line <47>NOOP name func
-Line <47>NOOP parao
-Line <47>NOOP number 1
-Line <47>NOOP seperator
-Line <47>NOOP string string
-Line <47>NOOP seperator
-Line <47>NOOP number 2
-Line <47>NOOP plus
-Line <47>NOOP number 5
-Line <47>NOOP parac
-Line <47>NOOP newline
-Line <48>NOOP name a
-Line <48>NOOP equal
-Line <48>NOOP number 100
-Line <48>NOOP plus
-Line <48>NOOP name func
-Line <48>NOOP parao
-Line <48>NOOP number 1
-Line <48>NOOP seperator
-Line <48>NOOP string string
-Line <48>NOOP seperator
-Line <48>NOOP number 2
-Line <48>NOOP plus
-Line <48>NOOP number 5
-Line <48>NOOP parac
-Line <48>NOOP plus
-Line <48>NOOP number 100
-Line <48>NOOP newline
-Line <49>NOOP name func
-Line <49>NOOP parao
-Line <49>NOOP number 1
-Line <49>NOOP seperator
-Line <49>NOOP string string
-Line <49>NOOP seperator
-Line <49>NOOP number 2
-Line <49>NOOP plus
-Line <49>NOOP number 5
-Line <49>NOOP parac
-Line <49>NOOP newline
-Line <50>NOOP label label
-Line <50>NOOP newline
-Line <51>NOOP newline
-Line <52>NOOP newline
-Line <53>CHOI control
-Line <53>NOOP string Pick one:
-Line <53>NOOP cbracketo
-Line <53>NOOP newline
-Line <54>NOOP string first
-Line <54>NOOP name func
-Line <54>NOOP parao
-Line <54>NOOP number 1
-Line <54>NOOP seperator
-Line <54>NOOP number 2
-Line <54>NOOP seperator
-Line <54>NOOP number 3
-Line <54>NOOP parac
-Line <54>NOOP newline
-Line <55>NOOP string second
-Line <55>NOOP name func
-Line <55>NOOP parao
-Line <55>NOOP true true
-Line <55>NOOP seperator
-Line <55>NOOP false false
-Line <55>NOOP seperator
-Line <55>NOOP name func
-Line <55>NOOP parao
-Line <55>NOOP string heehee
-Line <55>NOOP parac
-Line <55>NOOP parac
-Line <55>NOOP newline
-Line <56>NOOP string third
-Line <56>NOOP name func
-Line <56>NOOP parao
-Line <56>NOOP string hehe
-Line <56>NOOP parac
-Line <56>NOOP newline
-Line <57>NOOP string forth
-Line <57>NOOP name func
-Line <57>NOOP parao
-Line <57>NOOP string 1
-Line <57>NOOP seperator
-Line <57>NOOP number 2
-Line <57>NOOP seperator
-Line <57>NOOP false false
-Line <57>NOOP parac
-Line <57>NOOP newline
-Line <58>NOOP string fifth
-Line <58>NOOP gotoo
-Line <58>NOOP string here
-Line <58>NOOP newline
-Line <59>NOOP string sixth
-Line <59>NOOP gotoo
-Line <59>NOOP name name
-Line <59>NOOP newline
-Line <60>NOOP string sevinth
-Line <60>NOOP jump
-Line <60>NOOP string there
-Line <60>NOOP newline
-Line <61>NOOP string eight
-Line <61>NOOP jump
-Line <61>NOOP name name
-Line <61>NOOP newline
-Line <62>NOOP string nine
-Line <62>NOOP name exit
-Line <62>NOOP newline
-Line <63>NOOP string ten
-Line <63>NOOP exit
-Line <63>NOOP number 0
-Line <63>NOOP newline
-Line <64>NOOP cbracketc
-Line <64>NOOP newline
-Line <65>NOOP cbracketc
-Line <65>NOOP newline
-Line <66>NOOP newline
-Line <67>NOOP newline
-Line <68>NOOP newline
-Line <69>NOOP bracketo
-Line <69>NOOP name Bob
-Line <69>NOOP colon
-Line <69>NOOP name char
-Line <69>NOOP bracketc
-Line <69>NOOP newline
-Line <70>NOOP name age
-Line <70>NOOP equal
-Line <70>NOOP number 24
-Line <70>NOOP newline
-Line <71>NOOP name money
-Line <71>NOOP equal
-Line <71>NOOP number 100
-Line <71>NOOP newline
-Line <72>NOOP newline
-Line <73>NOOP bracketo
-Line <73>NOOP name newblock
-Line <73>NOOP colon
-Line <73>NOOP name function
-Line <73>NOOP parao
-Line <73>NOOP parac
-Line <73>NOOP bracketc
-Line <73>NOOP newline
-Line <74>NOOP string Test #2
-Line <74>NOOP newline
-Line <75>NOOP string Does it parse this part properly?
-Line <75>NOOP newline
-Line <77>NOOP eof
+Line <16>NOOP name e
+Line <16>NOOP equal
diff --git a/DMS/test.dms b/DMS/test.dms
index c3cde32..4489ab3 100644
--- a/DMS/test.dms
+++ b/DMS/test.dms
@@ -2,7 +2,7 @@ entry main
enable warnings
disable omniscient
//enable debugging
-//loadfile "loadtest.dms"
+loadfile "loadtest.dms"
version 1.2
using extendedDefine
@@ -47,12 +47,12 @@ using extendedDefine
var1 = func(1,"string", 2+5)
a = 100 + func(1,"string", 2+5) + 100
func(1,"string", 2+5)
- ::label::
+ ::mylabel::
//Hello im testing stuff
CHOICE "Pick one:" {
"first" func(1,2,3)
- "second" func(true,false,func("heehee"))
+ "second" func(true,false)
"third" func("hehe")
"forth" func("1",2,false)
"fifth" goto "here"
diff --git a/Debug/DMS.exe b/Debug/DMS.exe
index 5b1d2ad..833f3eb 100644
Binary files a/Debug/DMS.exe and b/Debug/DMS.exe differ
diff --git a/Debug/DMS.ilk b/Debug/DMS.ilk
index b91d50d..64a5f7b 100644
Binary files a/Debug/DMS.ilk and b/Debug/DMS.ilk differ
diff --git a/Debug/DMS.pdb b/Debug/DMS.pdb
index 463e4c1..9f40a17 100644
Binary files a/Debug/DMS.pdb and b/Debug/DMS.pdb differ