// Parse patterns in string form into the form we use for interpreting // (and later, for compiling). 'use strict'; var ast = require('./pattern'); var parser = require('./parser'); function parse_pattern(string) { var segments = parser.parse(string); for (var i=0, len = segments.length; i < len; i++) { var s = segments[i]; if (s.string != undefined) { segments[i] = ast.string(s.string); } else if (s.value != undefined) { segments[i] = ast.value(s.value, s.size, s.specifiers); } else if (s.name != undefined) { segments[i] = ast.variable(s.name, s.size, s.specifiers); } else { throw "Unknown segment " + s; } } return segments; } module.exports.parse = function() { var str = [].join.call(arguments, ','); return parse_pattern(str); };