Skip to content

Commit

Permalink
trailing foreaches
Browse files Browse the repository at this point in the history
  • Loading branch information
jeffsu committed Sep 5, 2012
1 parent c84d11c commit 979b4fe
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 6 deletions.
4 changes: 2 additions & 2 deletions platforms/gem/lib/mochiscript/core.rb
Expand Up @@ -921,7 +921,7 @@ class Parser
OO.addMember("parse", function(tokens){var self=this; OO.addMember("parse", function(tokens){var self=this;
var beginning = tokens.match(/^<<(\w+)(?::(\w+))?(.*?)\n/); var beginning = tokens.match(/^<<(\w+)(?::(\w+))?(.*?)?\n/);
var terminator = beginning[1]; var terminator = beginning[1];
tokens.consume(beginning[0].length); tokens.consume(beginning[0].length);
Expand Down Expand Up @@ -1108,7 +1108,7 @@ class Parser
OO.addMember("_TYPE", 'Foreach'); OO.addMember("_TYPE", 'Foreach');
var REGEX = Tokens.regex("<FOREACH><LBRACE><VAR> <IDENT>(?:**:**<IDENT>)? in (.*?)**<RBRACE>**{"); var REGEX = Tokens.regex("<FOREACH><LBRACE><VAR> <IDENT>(?:**:**<IDENT>)? in (.*?)**<RBRACE>**");
OO.addMember("startParse", function(tokens){var self=this; OO.addMember("startParse", function(tokens){var self=this;
Expand Down
4 changes: 2 additions & 2 deletions platforms/npm/lib/mochiscript/mochiscript.js
Expand Up @@ -908,7 +908,7 @@ RootParser.extend("HereDocParser", function(KLASS, OO){




OO.addMember("parse", function(tokens){var self=this; OO.addMember("parse", function(tokens){var self=this;
var beginning = tokens.match(/^<<(\w+)(?::(\w+))?(.*?)\n/); var beginning = tokens.match(/^<<(\w+)(?::(\w+))?(.*?)?\n/);
var terminator = beginning[1]; var terminator = beginning[1];


tokens.consume(beginning[0].length); tokens.consume(beginning[0].length);
Expand Down Expand Up @@ -1095,7 +1095,7 @@ CurlyParser.extend("ForeachParser", function(KLASS, OO){
OO.addMember("_TYPE", 'Foreach'); OO.addMember("_TYPE", 'Foreach');




var REGEX = Tokens.regex("<FOREACH><LBRACE><VAR> <IDENT>(?:**:**<IDENT>)? in (.*?)**<RBRACE>**{"); var REGEX = Tokens.regex("<FOREACH><LBRACE><VAR> <IDENT>(?:**:**<IDENT>)? in (.*?)**<RBRACE>**");




OO.addMember("startParse", function(tokens){var self=this; OO.addMember("startParse", function(tokens){var self=this;
Expand Down
4 changes: 2 additions & 2 deletions src/parsers.ms
Expand Up @@ -361,7 +361,7 @@ class HereDocParser extends RootParser {
} }
function parse(tokens) { function parse(tokens) {
var beginning = tokens.match(/^<<(\w+)(?::(\w+))?(.*?)\n/); var beginning = tokens.match(/^<<(\w+)(?::(\w+))?(.*?)?\n/);
var terminator = beginning[1]; var terminator = beginning[1];
tokens.consume(beginning[0].length); tokens.consume(beginning[0].length);
Expand Down Expand Up @@ -548,7 +548,7 @@ class ForeachParser extends CurlyParser {
var _TYPE = 'Foreach'; var _TYPE = 'Foreach';
private { private {
var REGEX = Tokens.regex("<FOREACH><LBRACE><VAR> <IDENT>(?:**:**<IDENT>)? in (.*?)**<RBRACE>**{"); var REGEX = Tokens.regex("<FOREACH><LBRACE><VAR> <IDENT>(?:**:**<IDENT>)? in (.*?)**<RBRACE>**");
} }
function startParse(tokens) { function startParse(tokens) {
Expand Down
5 changes: 5 additions & 0 deletions tests/trailing-foreach.ms
@@ -0,0 +1,5 @@
var list = [ 'hello', 'world', 'foo', 'bar', null, {}, false, 'bar2' ];

foreach (var item in list) container = item;

$m.test(#{ $1.eq(container, 'bar2') });

0 comments on commit 979b4fe

Please sign in to comment.