Skip to content

Instantly share code, notes, and snippets.

@pvdz
Created June 9, 2014 23:47
Show Gist options
  • Save pvdz/75079c33184499910319 to your computer and use it in GitHub Desktop.
Save pvdz/75079c33184499910319 to your computer and use it in GitHub Desktop.
function this_tok_mustBeString(str, nextIsExpr){
if (this_tok_getLastValue() === str) return this_tok_next(nextIsExpr);
this_tok_throwSyntaxError('Expecting current value to be ['+str+'] is ['+this_tok_getLastValue()+']');
}
==>
var this_tok_returnIsYield = false;
function this_tok_mustBeString(str, nextIsExpr){
var tag = 'start';
var f1, f2, f3, f4;
var tmp1, tmp2, tmp3, tmp4;
return function() {
switch (tag) {
case 'start':
case 1:
tmp1 = (f1||(f1=this_tok_getLastValue()))();
if (this_tok_returnIsYield) {
tag = 1;
return;
}
if (tmp1 === str) {
tmp2 = (f2||(f2=this_tok_next(nextIsExpr)))();
if (this_tok_returnIsYield) {
tag = 2;
return;
}
return tmp2;
} else {
tmp3 = (f3||(f3=this_tok_getLastValue()))();
if (this_tok_returnIsYield) {
tag = 3;
return;
}
tmp4 = (f4||(f4=this_tok_throwSyntaxError('Expecting current value to be [' + str + '] is [' + tmp3 + ']')))();
if (this_tok_returnIsYield) {
tag = 4;
return;
}
return;
}
case 2:
tmp2 = (f2||(f2=this_tok_next(nextIsExpr)))();
if (this_tok_returnIsYield) {
tag = 2;
return;
}
return tmp2;
case 3:
tmp3 = (f3||(f3=this_tok_getLastValue()))();
if (this_tok_returnIsYield) {
tag = 3;
return;
}
case 4:
tmp4 = (f4||(f4=this_tok_throwSyntaxError('Expecting current value to be [' + str + '] is [' + tmp3 + ']')))();
if (this_tok_returnIsYield) {
tag = 4;
return;
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment