UNPKG

angular2

Version:

Angular 2 - a web framework for modern web apps

1 lines 37.5 kB
{"version":3,"sources":["parser.js"],"names":[],"mappings":"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","file":"angular2/src/change_detection/parser/parser.js","sourcesContent":["import {Injectable} from 'angular2/di';\nimport {int, isBlank, isPresent, BaseException, StringWrapper, RegExpWrapper} from 'angular2/src/facade/lang';\nimport {ListWrapper, List} from 'angular2/src/facade/collection';\nimport {Lexer, EOF, Token, $PERIOD, $COLON, $SEMICOLON, $LBRACKET, $RBRACKET,\n $COMMA, $LBRACE, $RBRACE, $LPAREN, $RPAREN} from './lexer';\nimport {reflector, Reflector} from 'angular2/src/reflection/reflection';\nimport {\n AST,\n EmptyExpr,\n ImplicitReceiver,\n AccessMember,\n LiteralPrimitive,\n Expression,\n Binary,\n PrefixNot,\n Conditional,\n Pipe,\n Assignment,\n Chain,\n KeyedAccess,\n LiteralArray,\n LiteralMap,\n Interpolation,\n MethodCall,\n FunctionCall,\n TemplateBindings,\n TemplateBinding,\n ASTWithSource\n } from './ast';\n\nvar _implicitReceiver = new ImplicitReceiver();\n// TODO(tbosch): Cannot make this const/final right now because of the transpiler...\nvar INTERPOLATION_REGEXP = RegExpWrapper.create('\\\\{\\\\{(.*?)\\\\}\\\\}');\nvar QUOTE_REGEXP = RegExpWrapper.create(\"'\");\n\n@Injectable()\nexport class Parser {\n _lexer:Lexer;\n _reflector:Reflector;\n constructor(lexer:Lexer, providedReflector:Reflector = null){\n this._lexer = lexer;\n this._reflector = isPresent(providedReflector) ? providedReflector : reflector;\n }\n\n parseAction(input:string, location:any):ASTWithSource {\n var tokens = this._lexer.tokenize(input);\n var ast = new _ParseAST(input, location, tokens, this._reflector, true).parseChain();\n return new ASTWithSource(ast, input, location);\n }\n\n parseBinding(input:string, location:any):ASTWithSource {\n var tokens = this._lexer.tokenize(input);\n var ast = new _ParseAST(input, location, tokens, this._reflector, false).parseChain();\n return new ASTWithSource(ast, input, location);\n }\n\n addPipes(bindingAst:ASTWithSource, pipes:List<String>):ASTWithSource {\n if (ListWrapper.isEmpty(pipes)) return bindingAst;\n\n var res = ListWrapper.reduce(pipes,\n (result, currentPipeName) => new Pipe(result, currentPipeName, [], false),\n bindingAst.ast);\n return new ASTWithSource(res, bindingAst.source, bindingAst.location);\n }\n\n parseTemplateBindings(input:string, location:any):List<TemplateBinding> {\n var tokens = this._lexer.tokenize(input);\n return new _ParseAST(input, location, tokens, this._reflector, false).parseTemplateBindings();\n }\n\n parseInterpolation(input:string, location:any):ASTWithSource {\n var parts = StringWrapper.split(input, INTERPOLATION_REGEXP);\n if (parts.length <= 1) {\n return null;\n }\n var strings = [];\n var expressions = [];\n\n for (var i=0; i<parts.length; i++) {\n var part = parts[i];\n if (i%2 === 0) {\n // fixed string\n ListWrapper.push(strings, part);\n } else {\n var tokens = this._lexer.tokenize(part);\n var ast = new _ParseAST(input, location, tokens, this._reflector, false).parseChain();\n ListWrapper.push(expressions, ast);\n }\n }\n return new ASTWithSource(new Interpolation(strings, expressions), input, location);\n }\n\n wrapLiteralPrimitive(input:string, location:any):ASTWithSource {\n return new ASTWithSource(new LiteralPrimitive(input), input, location);\n }\n\n}\n\nclass _ParseAST {\n input:string;\n location:any;\n tokens:List<Token>;\n reflector:Reflector;\n parseAction:boolean;\n index:int;\n constructor(input:string, location:any, tokens:List, reflector:Reflector, parseAction:boolean) {\n this.input = input;\n this.location = location;\n this.tokens = tokens;\n this.index = 0;\n this.reflector = reflector;\n this.parseAction = parseAction;\n }\n\n peek(offset:int):Token {\n var i = this.index + offset;\n return i < this.tokens.length ? this.tokens[i] : EOF;\n }\n\n get next():Token {\n return this.peek(0);\n }\n\n get inputIndex():int {\n return (this.index < this.tokens.length) ? this.next.index : this.input.length;\n }\n\n advance() {\n this.index ++;\n }\n\n optionalCharacter(code:int):boolean {\n if (this.next.isCharacter(code)) {\n this.advance();\n return true;\n } else {\n return false;\n }\n }\n\n optionalKeywordVar():boolean {\n if (this.peekKeywordVar()) {\n this.advance();\n return true;\n } else {\n return false;\n }\n }\n\n peekKeywordVar():boolean {\n return this.next.isKeywordVar() || this.next.isOperator('#');\n }\n\n expectCharacter(code:int) {\n if (this.optionalCharacter(code)) return;\n this.error(`Missing expected ${StringWrapper.fromCharCode(code)}`);\n }\n\n\n optionalOperator(op:string):boolean {\n if (this.next.isOperator(op)) {\n this.advance();\n return true;\n } else {\n return false;\n }\n }\n\n expectOperator(operator:string) {\n if (this.optionalOperator(operator)) return;\n this.error(`Missing expected operator ${operator}`);\n }\n\n expectIdentifierOrKeyword():string {\n var n = this.next;\n if (!n.isIdentifier() && !n.isKeyword()) {\n this.error(`Unexpected token ${n}, expected identifier or keyword`)\n }\n this.advance();\n return n.toString();\n }\n\n expectIdentifierOrKeywordOrString():string {\n var n = this.next;\n if (!n.isIdentifier() && !n.isKeyword() && !n.isString()) {\n this.error(`Unexpected token ${n}, expected identifier, keyword, or string`)\n }\n this.advance();\n return n.toString();\n }\n\n parseChain():AST {\n var exprs = [];\n while (this.index < this.tokens.length) {\n var expr = this.parsePipe();\n ListWrapper.push(exprs, expr);\n\n if (this.optionalCharacter($SEMICOLON)) {\n if (! this.parseAction) {\n this.error(\"Binding expression cannot contain chained expression\");\n }\n while (this.optionalCharacter($SEMICOLON)){} //read all semicolons\n } else if (this.index < this.tokens.length) {\n this.error(`Unexpected token '${this.next}'`);\n }\n }\n if (exprs.length == 0) return new EmptyExpr();\n if (exprs.length == 1) return exprs[0];\n return new Chain(exprs);\n }\n\n parsePipe() {\n var result = this.parseExpression();\n if (this.optionalOperator(\"|\")) {\n return this.parseInlinedPipe(result);\n } else {\n return result;\n }\n }\n\n parseExpression() {\n var start = this.inputIndex;\n var result = this.parseConditional();\n\n while (this.next.isOperator('=')) {\n if (!result.isAssignable) {\n var end = this.inputIndex;\n var expression = this.input.substring(start, end);\n this.error(`Expression ${expression} is not assignable`);\n }\n\n if (!this.parseAction) {\n this.error(\"Binding expression cannot contain assignments\");\n }\n\n this.expectOperator('=');\n result = new Assignment(result, this.parseConditional());\n }\n\n return result;\n }\n\n parseConditional() {\n var start = this.inputIndex;\n var result = this.parseLogicalOr();\n\n if (this.optionalOperator('?')) {\n var yes = this.parseExpression();\n if (!this.optionalCharacter($COLON)) {\n var end = this.inputIndex;\n var expression = this.input.substring(start, end);\n this.error(`Conditional expression ${expression} requires all 3 expressions`);\n }\n var no = this.parseExpression();\n return new Conditional(result, yes, no);\n } else {\n return result;\n }\n }\n\n parseLogicalOr() {\n // '||'\n var result = this.parseLogicalAnd();\n while (this.optionalOperator('||')) {\n result = new Binary('||', result, this.parseLogicalAnd());\n }\n return result;\n }\n\n parseLogicalAnd() {\n // '&&'\n var result = this.parseEquality();\n while (this.optionalOperator('&&')) {\n result = new Binary('&&', result, this.parseEquality());\n }\n return result;\n }\n\n parseEquality() {\n // '==','!='\n var result = this.parseRelational();\n while (true) {\n if (this.optionalOperator('==')) {\n result = new Binary('==', result, this.parseRelational());\n } else if (this.optionalOperator('!=')) {\n result = new Binary('!=', result, this.parseRelational());\n } else {\n return result;\n }\n }\n }\n\n parseRelational() {\n // '<', '>', '<=', '>='\n var result = this.parseAdditive();\n while (true) {\n if (this.optionalOperator('<')) {\n result = new Binary('<', result, this.parseAdditive());\n } else if (this.optionalOperator('>')) {\n result = new Binary('>', result, this.parseAdditive());\n } else if (this.optionalOperator('<=')) {\n result = new Binary('<=', result, this.parseAdditive());\n } else if (this.optionalOperator('>=')) {\n result = new Binary('>=', result, this.parseAdditive());\n } else {\n return result;\n }\n }\n }\n\n parseAdditive() {\n // '+', '-'\n var result = this.parseMultiplicative();\n while (true) {\n if (this.optionalOperator('+')) {\n result = new Binary('+', result, this.parseMultiplicative());\n } else if (this.optionalOperator('-')) {\n result = new Binary('-', result, this.parseMultiplicative());\n } else {\n return result;\n }\n }\n }\n\n parseMultiplicative() {\n // '*', '%', '/'\n var result = this.parsePrefix();\n while (true) {\n if (this.optionalOperator('*')) {\n result = new Binary('*', result, this.parsePrefix());\n } else if (this.optionalOperator('%')) {\n result = new Binary('%', result, this.parsePrefix());\n } else if (this.optionalOperator('/')) {\n result = new Binary('/', result, this.parsePrefix());\n } else {\n return result;\n }\n }\n }\n\n parsePrefix() {\n if (this.optionalOperator('+')) {\n return this.parsePrefix();\n } else if (this.optionalOperator('-')) {\n return new Binary('-', new LiteralPrimitive(0), this.parsePrefix());\n } else if (this.optionalOperator('!')) {\n return new PrefixNot(this.parsePrefix());\n } else {\n return this.parseCallChain();\n }\n }\n\n parseCallChain():AST {\n var result = this.parsePrimary();\n while (true) {\n if (this.optionalCharacter($PERIOD)) {\n result = this.parseAccessMemberOrMethodCall(result);\n\n } else if (this.optionalCharacter($LBRACKET)) {\n var key = this.parseExpression();\n this.expectCharacter($RBRACKET);\n result = new KeyedAccess(result, key);\n\n } else if (this.optionalCharacter($LPAREN)) {\n var args = this.parseCallArguments();\n this.expectCharacter($RPAREN);\n result = new FunctionCall(result, args);\n\n } else {\n return result;\n }\n }\n }\n\n parsePrimary() {\n if (this.optionalCharacter($LPAREN)) {\n var result = this.parsePipe();\n this.expectCharacter($RPAREN);\n return result;\n\n } else if (this.next.isKeywordNull() || this.next.isKeywordUndefined()) {\n this.advance();\n return new LiteralPrimitive(null);\n\n } else if (this.next.isKeywordTrue()) {\n this.advance();\n return new LiteralPrimitive(true);\n\n } else if (this.next.isKeywordFalse()) {\n this.advance();\n return new LiteralPrimitive(false);\n\n } else if (this.optionalCharacter($LBRACKET)) {\n var elements = this.parseExpressionList($RBRACKET);\n this.expectCharacter($RBRACKET);\n return new LiteralArray(elements);\n\n } else if (this.next.isCharacter($LBRACE)) {\n return this.parseLiteralMap();\n\n } else if (this.next.isIdentifier()) {\n return this.parseAccessMemberOrMethodCall(_implicitReceiver);\n\n } else if (this.next.isNumber()) {\n var value = this.next.toNumber();\n this.advance();\n return new LiteralPrimitive(value);\n\n } else if (this.next.isString()) {\n var value = this.next.toString();\n this.advance();\n return new LiteralPrimitive(value);\n\n } else if (this.index >= this.tokens.length) {\n this.error(`Unexpected end of expression: ${this.input}`);\n\n } else {\n this.error(`Unexpected token ${this.next}`);\n }\n }\n\n parseExpressionList(terminator:int):List {\n var result = [];\n if (!this.next.isCharacter(terminator)) {\n do {\n ListWrapper.push(result, this.parseExpression());\n } while (this.optionalCharacter($COMMA));\n }\n return result;\n }\n\n parseLiteralMap() {\n var keys = [];\n var values = [];\n this.expectCharacter($LBRACE);\n if (!this.optionalCharacter($RBRACE)) {\n do {\n var key = this.expectIdentifierOrKeywordOrString();\n ListWrapper.push(keys, key);\n this.expectCharacter($COLON);\n ListWrapper.push(values, this.parseExpression());\n } while (this.optionalCharacter($COMMA));\n this.expectCharacter($RBRACE);\n }\n return new LiteralMap(keys, values);\n }\n\n parseAccessMemberOrMethodCall(receiver):AST {\n var id = this.expectIdentifierOrKeyword();\n\n if (this.optionalCharacter($LPAREN)) {\n var args = this.parseCallArguments();\n this.expectCharacter($RPAREN);\n var fn = this.reflector.method(id);\n return new MethodCall(receiver, id, fn, args);\n\n } else {\n var getter = this.reflector.getter(id);\n var setter = this.reflector.setter(id);\n var am = new AccessMember(receiver, id, getter, setter);\n\n if (this.optionalOperator(\"|\")) {\n return this.parseInlinedPipe(am);\n } else {\n return am;\n }\n }\n }\n\n parseInlinedPipe(result) {\n do {\n if (this.parseAction) {\n this.error(\"Cannot have a pipe in an action expression\");\n }\n var name = this.expectIdentifierOrKeyword();\n var args = ListWrapper.create();\n while (this.optionalCharacter($COLON)) {\n ListWrapper.push(args, this.parseExpression());\n }\n result = new Pipe(result, name, args, true);\n } while(this.optionalOperator(\"|\"));\n\n return result;\n }\n\n parseCallArguments() {\n if (this.next.isCharacter($RPAREN)) return [];\n var positionals = [];\n do {\n ListWrapper.push(positionals, this.parseExpression());\n } while (this.optionalCharacter($COMMA))\n return positionals;\n }\n\n /**\n * An identifier, a keyword, a string with an optional `-` inbetween.\n */\n expectTemplateBindingKey() {\n var result = '';\n var operatorFound = false;\n do {\n result += this.expectIdentifierOrKeywordOrString();\n operatorFound = this.optionalOperator('-');\n if (operatorFound) {\n result += '-';\n }\n } while (operatorFound);\n\n return result.toString();\n }\n\n parseTemplateBindings() {\n var bindings = [];\n while (this.index < this.tokens.length) {\n var keyIsVar:boolean = this.optionalKeywordVar();\n var key = this.expectTemplateBindingKey();\n this.optionalCharacter($COLON);\n var name = null;\n var expression = null;\n if (this.next !== EOF) {\n if (keyIsVar) {\n if (this.optionalOperator(\"=\")) {\n name = this.expectTemplateBindingKey();\n } else {\n name = '\\$implicit';\n }\n } else if (!this.peekKeywordVar()) {\n var start = this.inputIndex;\n var ast = this.parsePipe();\n var source = this.input.substring(start, this.inputIndex);\n expression = new ASTWithSource(ast, source, this.location);\n }\n }\n ListWrapper.push(bindings, new TemplateBinding(key, keyIsVar, name, expression));\n if (!this.optionalCharacter($SEMICOLON)) {\n this.optionalCharacter($COMMA);\n };\n }\n return bindings;\n }\n\n error(message:string, index:int = null) {\n if (isBlank(index)) index = this.index;\n\n var location = (index < this.tokens.length)\n ? `at column ${this.tokens[index].index + 1} in`\n : `at the end of the expression`;\n\n throw new BaseException(`Parser Error: ${message} ${location} [${this.input}] in ${this.location}`);\n }\n}\n"]}