+
@@ -157,8 +165,6 @@ if (isset($user)) {
editor.setFontSize(16);
editor.setDisplayIndentGuides(false);
document.getElementById('editor').style.fontFamily="fixedsys";
-
- reloadCode();
@@ -206,7 +212,7 @@ if (isset($user)) {
-
+
diff --git a/mar/ace/mode-mar.js b/mar/ace/mode-mar.js
index 661cd89..922b5a6 100755
--- a/mar/ace/mode-mar.js
+++ b/mar/ace/mode-mar.js
@@ -74,7 +74,6 @@ define("ace/mode/mar_rules", ["require", "exports", "module", "ace/lib/oop", "ac
regex: '\\b0x[A-F0-9]+\\b',
caseInsensitive: true
},
- {token: 'string.assembly', regex: /'([^\\']|\\.)*'/},
{token: 'string.assembly', regex: /"([^\\"]|\\.)*"/},
{token: 'comment.assembly', regex: ';.*$'},
{token: 'support.function.directive.assembly', regex: /^\.text|\.data/},
diff --git a/mar/ace/mode-mar.min.js b/mar/ace/mode-mar.min.js
index b48bcf2..4dbaece 100644
--- a/mar/ace/mode-mar.min.js
+++ b/mar/ace/mode-mar.min.js
@@ -1,4 +1,4 @@
define("ace/mode/mar_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(a,d,b){b=a("../lib/oop");a=a("./text_highlight_rules").TextHighlightRules;var c=function(){this.$rules={start:[{token:"keyword.function.assembly",regex:"\\b(?:mov|add|sub|and|or|test|cmp|shl|shr|mul|push|pop|div|xor|dw|nop|equ|neg|hwq|not|ror|rol|sal|sar)\\b",caseInsensitive:!0},{token:"keyword.operator.assembly",regex:"\\b(?:call|ret|jmp|jnz|jg|jl|jge|jle|hwi|jz|js|jns|jc|jnc)\\b",caseInsensitive:!0},
-{token:"variable.predefined.ahk",regex:"\\b(?:brk|dup)\\b",caseInsensitive:!0},{token:"variable.parameter.register.assembly",regex:"\\b(?:A|B|C|D|X|Y|bp|sp)\\b",caseInsensitive:!0},{token:"constant.character.decimal.assembly",regex:"\\b[0-9]+\\b"},{token:"constant.character.hexadecimal.assembly",regex:"\\b0x[A-F0-9]+\\b",caseInsensitive:!0},{token:"string.assembly",regex:/'([^\\']|\\.)*'/},{token:"string.assembly",regex:/"([^\\"]|\\.)*"/},{token:"comment.assembly",regex:";.*$"},{token:"support.function.directive.assembly",
-regex:/^\.text|\.data/},{token:"entity.name.function.assembly",regex:/\w*:/}]};this.normalizeRules()};c.metaData={fileTypes:["asm"],name:"Much Assembly Required",scopeName:"source.assembly"};b.inherits(c,a);d.MarHighlightRules=c});
+{token:"variable.predefined.ahk",regex:"\\b(?:brk|dup)\\b",caseInsensitive:!0},{token:"variable.parameter.register.assembly",regex:"\\b(?:A|B|C|D|X|Y|bp|sp)\\b",caseInsensitive:!0},{token:"constant.character.decimal.assembly",regex:"\\b[0-9]+\\b"},{token:"constant.character.hexadecimal.assembly",regex:"\\b0x[A-F0-9]+\\b",caseInsensitive:!0},{token:"string.assembly",regex:/"([^\\"]|\\.)*"/},{token:"comment.assembly",regex:";.*$"},{token:"support.function.directive.assembly",regex:/^\.text|\.data/},
+{token:"entity.name.function.assembly",regex:/\w*:/}]};this.normalizeRules()};c.metaData={fileTypes:["asm"],name:"Much Assembly Required",scopeName:"source.assembly"};b.inherits(c,a);d.MarHighlightRules=c});
define("ace/mode/mar","require exports module ace/lib/oop ace/mode/text ace/mode/mar_rules".split(" "),function(a,d,b){b=a("../lib/oop");var c=a("./text").Mode,e=a("./mar_rules").MarHighlightRules;a=function(){this.HighlightRules=e;this.$behaviour=this.$defaultBehaviour};b.inherits(a,c);a.prototype.lineCommentStart=";";a.prototype.$id="ace/mode/mar";d.Mode=a});
diff --git a/mar/editor.js b/mar/editor.js
index 79b846b..8fe5b21 100644
--- a/mar/editor.js
+++ b/mar/editor.js
@@ -26,11 +26,10 @@ function removeComment(line) {
function checkForLabel(line, result) {
line = removeComment(line);
- if (line.indexOf(":") !== -1) {
+ var match;
+ if ((match = /\b\w*\b:/.exec(line)) !== null) {
- line = line.substring(0, line.indexOf(":"));
-
- result.labels.push(line.trim());
+ result.labels.push(match[0].substring(0, match[0].length - 1));
}
}
@@ -81,11 +80,7 @@ function getTokens(line) {
}
function removeLabel(line) {
- if (line.indexOf(':') !== -1) {
- return line.substring(line.indexOf(':') + 1);
- } else {
- return line;
- }
+ return line.replace(/\b\w*\b:/, "");
}
function checkForORGInstruction(line, result, currentLine) {
@@ -127,7 +122,7 @@ function parseDWInstruction(line, result, currentLine) {
if (line.substr(0, 2).toLowerCase() === "dw") {
- var values = line.substr(2, line.length).split(",");
+ var values = line.substr(2, line.length).split(/,(?=(?:[^"]*"[^"]*")*[^"]*$)/, -1);
for (var i = 0; i < values.length; i++) {
@@ -141,6 +136,9 @@ function parseDWInstruction(line, result, currentLine) {
// console.log("DUp");
+ } else if (values[i].startsWith("\"") && values[i].endsWith("\"")) {
+ //Handle string
+
} else if (getOperandType(values[i], result) === OPERAND_IMM) {
// console.log("is Imm " + values[i]);
@@ -173,7 +171,8 @@ function getOperandType(text, result) {
}
//Check IMM
- if (!isNaN(Number(text)) && Number(text) === Math.floor(Number(text))) {
+ if (!isNaN(Number(text)) && Number(text) === Math.floor(Number(text)) && text.indexOf("o") === -1
+ && text.indexOf("e") === -1) {
return OPERAND_IMM;
}
@@ -396,11 +395,13 @@ function parse() {
}
function gameClick() {
- document.getElementById("editorBtns").setAttribute("style", "display: none")
+ document.getElementById("editorBtns").setAttribute("style", "display: none");
+ document.getElementById("gameBtns").setAttribute("style", "");
}
function editorClick() {
- document.getElementById("editorBtns").setAttribute("style", "")
+ document.getElementById("editorBtns").setAttribute("style", "");
+ document.getElementById("gameBtns").setAttribute("style", "display: none");
}
editor.on("change", parse);
\ No newline at end of file
diff --git a/mar/editor.min.js b/mar/editor.min.js
index 9849c34..2c3ddcf 100644
--- a/mar/editor.min.js
+++ b/mar/editor.min.js
@@ -3,14 +3,15 @@ $jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.definePrope
$jscomp.polyfill=function(a,c,b,d){if(c){b=$jscomp.global;a=a.split(".");for(d=0;d