foam-framework
Version:
MVC metaprogramming framework
64 lines (56 loc) • 1.83 kB
JavaScript
/**
* @license
* Copyright 2015 Google Inc. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
CLASS({
"model_": "Model",
"id": "foam.lib.email.EMailAddressParser",
"package": "foam.lib.email",
"name": "EMailAddressParser",
"properties": [
{
"model_": "Property",
"name": "parser",
"lazyFactory": function () {
return {
__proto__: grammar,
START: sym('address'),
'until eol': repeat(notChar('\r')),
'address list': repeat(sym('address'), seq(',', repeat(' '))),
'address': alt(
sym('labelled address'),
sym('simple address')),
'labelled address': seq(
repeat(notChars('<,')),
'<', sym('simple address'), '>'),
'simple address': seq(repeat(notChar('@')), '@', repeat(notChars('\r>,')))
}.addActions({
'labelled address': function(v) { return v[0].join('') + v[1] + v[2] + v[3]; },
'simple address': function(v) { return v[0].join('') + v[1] + v[2].join(''); }
});
}
}
],
"actions": [],
"constants": [],
"messages": [],
"methods": [],
"listeners": [],
"templates": [],
"models": [],
"tests": [],
"relationships": [],
"issues": []
});