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