Skip to content

Instantly share code, notes, and snippets.

@sjrd
Last active August 29, 2015 14:20
Show Gist options
  • Save sjrd/b12994d6f58952312f6b to your computer and use it in GitHub Desktop.
Save sjrd/b12994d6f58952312f6b to your computer and use it in GitHub Desktop.
Emitted code for PoC fast macro-free parser combinators in Scala.js
ScalaJS.c.LScalaJSExample$.prototype.parse__T__T = (function(s) {
var jsx$2 = ScalaJS.m.sjsr_RuntimeString$();
if (((ScalaJS.uI(s["length"]) > 0) && ((65535 & ScalaJS.uI(s["charCodeAt"](0))) === 104))) {
var value = new ScalaJS.c.jl_Character().init___C(104);
var r1_$_success$1 = true;
var r1_$_value$1 = value;
var r1_$_nextPos$1 = 1
} else {
var r1_$_success$1 = false;
var r1_$_value$1 = null;
var r1_$_nextPos$1 = 0
};
if (r1_$_success$1) {
var i$2 = r1_$_nextPos$1;
var i = i$2;
var b = new ScalaJS.c.scm_ListBuffer().init___();
x: {
var r2;
_repLoop: while (true) {
var i$2$1 = i;
if (((i$2$1 < ScalaJS.uI(s["length"])) && ((65535 & ScalaJS.uI(s["charCodeAt"](i$2$1))) === 97))) {
var value$1 = new ScalaJS.c.jl_Character().init___C(97);
var nextPos = ((1 + i$2$1) | 0);
var r_$_success$1 = true;
var r_$_value$1 = value$1;
var r_$_nextPos$1 = nextPos
} else {
var r_$_success$1 = false;
var r_$_value$1 = null;
var r_$_nextPos$1 = 0
};
if (r_$_success$1) {
b.$$plus$eq__O__scm_ListBuffer(r_$_value$1);
i = r_$_nextPos$1;
continue _repLoop
} else {
var value$2 = b.toList__sci_List();
var nextPos$1 = i;
var r2_$_success$1 = true;
var r2_$_value$1 = value$2;
var r2_$_nextPos$1 = nextPos$1;
break x
}
}
};
if (r2_$_success$1) {
var value$3 = new ScalaJS.c.T2().init___O__O(r1_$_value$1, r2_$_value$1);
var nextPos$2 = r2_$_nextPos$1;
var r1$1_$_success$1 = true;
var r1$1_$_value$1 = value$3;
var r1$1_$_nextPos$1 = nextPos$2
} else {
var r1$1_$_success$1 = false;
var r1$1_$_value$1 = null;
var r1$1_$_nextPos$1 = 0
}
} else {
var r1$1_$_success$1 = false;
var r1$1_$_value$1 = null;
var r1$1_$_nextPos$1 = 0
};
if (r1$1_$_success$1) {
var i$2$2 = r1$1_$_nextPos$1;
if (((i$2$2 < ScalaJS.uI(s["length"])) && ((65535 & ScalaJS.uI(s["charCodeAt"](i$2$2))) === 101))) {
var value$4 = new ScalaJS.c.jl_Character().init___C(101);
var nextPos$3 = ((1 + i$2$2) | 0);
var r2$1_$_success$1 = true;
var r2$1_$_value$1 = value$4;
var r2$1_$_nextPos$1 = nextPos$3
} else {
var r2$1_$_success$1 = false;
var r2$1_$_value$1 = null;
var r2$1_$_nextPos$1 = 0
};
if (r2$1_$_success$1) {
var value$5 = new ScalaJS.c.T2().init___O__O(r1$1_$_value$1, r2$1_$_value$1);
var nextPos$4 = r2$1_$_nextPos$1;
var jsx$1_$_success$1 = true;
var jsx$1_$_value$1 = value$5;
var jsx$1_$_nextPos$1 = nextPos$4
} else {
var jsx$1_$_success$1 = false;
var jsx$1_$_value$1 = null;
var jsx$1_$_nextPos$1 = 0
}
} else {
var jsx$1_$_success$1 = false;
var jsx$1_$_value$1 = null;
var jsx$1_$_nextPos$1 = 0
};
return jsx$2.valueOf__O__T(jsx$1_$_value$1)
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment