1234567891011121314151617181920212223242526272829303132 |
- // 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);
- };
|