OLD | NEW |
1 #!/usr/bin/env node | 1 #!/usr/bin/env node |
2 // ********** Library dart:core ************** | 2 // ********** Library dart:core ************** |
3 // ********** Natives dart:core ************** | 3 // ********** Natives dart:core ************** |
4 /** | 4 /** |
5 * Generates a dynamic call stub for a function. | 5 * Generates a dynamic call stub for a function. |
6 * Our goal is to create a stub method like this on-the-fly: | 6 * Our goal is to create a stub method like this on-the-fly: |
7 * function($0, $1, capture) { this($0, $1, true, capture); } | 7 * function($0, $1, capture) { this($0, $1, true, capture); } |
8 * | 8 * |
9 * This stub then replaces the dynamic one on Function, with one that is | 9 * This stub then replaces the dynamic one on Function, with one that is |
10 * specialized for that particular function, taking into account its default | 10 * specialized for that particular function, taking into account its default |
(...skipping 2229 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2240 } | 2240 } |
2241 Collections.filter = function(source, destination, f) { | 2241 Collections.filter = function(source, destination, f) { |
2242 for (var $i = source.iterator(); $i.hasNext$0(); ) { | 2242 for (var $i = source.iterator(); $i.hasNext$0(); ) { |
2243 var e = $i.next$0(); | 2243 var e = $i.next$0(); |
2244 if (f(e)) destination.add(e); | 2244 if (f(e)) destination.add(e); |
2245 } | 2245 } |
2246 return destination; | 2246 return destination; |
2247 } | 2247 } |
2248 // ********** Code for DateImplementation ************** | 2248 // ********** Code for DateImplementation ************** |
2249 function DateImplementation() {} | 2249 function DateImplementation() {} |
2250 DateImplementation.fromEpoch$ctor = function(value, timeZone) { | |
2251 this.value = value; | |
2252 this.timeZone = timeZone; | |
2253 // Initializers done | |
2254 } | |
2255 DateImplementation.fromEpoch$ctor.prototype = DateImplementation.prototype; | |
2256 DateImplementation.now$ctor = function() { | 2250 DateImplementation.now$ctor = function() { |
2257 this.timeZone = new TimeZoneImplementation.local$ctor(); | 2251 this.timeZone = new TimeZoneImplementation.local$ctor(); |
2258 this.value = DateImplementation._now(); | 2252 this.value = DateImplementation._now(); |
2259 // Initializers done | 2253 // Initializers done |
2260 this._asJs(); | 2254 this._asJs(); |
2261 } | 2255 } |
2262 DateImplementation.now$ctor.prototype = DateImplementation.prototype; | 2256 DateImplementation.now$ctor.prototype = DateImplementation.prototype; |
| 2257 DateImplementation.fromEpoch$ctor = function(value, timeZone) { |
| 2258 this.value = value; |
| 2259 this.timeZone = timeZone; |
| 2260 // Initializers done |
| 2261 } |
| 2262 DateImplementation.fromEpoch$ctor.prototype = DateImplementation.prototype; |
2263 DateImplementation.prototype.is$Date = function(){return this;}; | 2263 DateImplementation.prototype.is$Date = function(){return this;}; |
2264 DateImplementation.prototype.is$Comparable = function(){return this;}; | 2264 DateImplementation.prototype.is$Comparable = function(){return this;}; |
2265 DateImplementation.prototype.get$value = function() { return this.value; }; | 2265 DateImplementation.prototype.get$value = function() { return this.value; }; |
2266 DateImplementation.prototype.$eq = function(other) { | 2266 DateImplementation.prototype.$eq = function(other) { |
2267 if (!((other instanceof DateImplementation))) return false; | 2267 if (!((other instanceof DateImplementation))) return false; |
2268 return (this.value == other.get$value()) && ($eq(this.timeZone, other.timeZone
)); | 2268 return (this.value == other.get$value()) && ($eq(this.timeZone, other.timeZone
)); |
2269 } | 2269 } |
2270 DateImplementation.prototype.compareTo = function(other) { | 2270 DateImplementation.prototype.compareTo = function(other) { |
2271 var $0; | 2271 var $0; |
2272 return $assert_num(this.value.compareTo$1(other.value)); | 2272 return $assert_num(this.value.compareTo$1(other.value)); |
(...skipping 363 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2636 // ********** Code for top level ************** | 2636 // ********** Code for top level ************** |
2637 // ********** Library util ************** | 2637 // ********** Library util ************** |
2638 // ********** Code for top level ************** | 2638 // ********** Code for top level ************** |
2639 // ********** Library scanner_implementation ************** | 2639 // ********** Library scanner_implementation ************** |
2640 // ********** Code for ArrayBasedScanner ************** | 2640 // ********** Code for ArrayBasedScanner ************** |
2641 function ArrayBasedScanner() { | 2641 function ArrayBasedScanner() { |
2642 this.groupingStack = const$14/*const EmptyLink()*/ | 2642 this.groupingStack = const$14/*const EmptyLink()*/ |
2643 this.extraCharOffset = 0; | 2643 this.extraCharOffset = 0; |
2644 this.tokenStart = -1; | 2644 this.tokenStart = -1; |
2645 this.byteOffset = -1; | 2645 this.byteOffset = -1; |
2646 this.tokens = new Token(0/*null.EOF_TOKEN*/, -1); | 2646 this.tokens = new scanner_Token(0/*null.EOF_TOKEN*/, -1); |
2647 // Initializers done | 2647 // Initializers done |
2648 AbstractScanner$S.call(this); | 2648 AbstractScanner$S.call(this); |
2649 this.tail = this.tokens; | 2649 this.tail = this.tokens; |
2650 } | 2650 } |
2651 $inherits(ArrayBasedScanner, AbstractScanner$S); | 2651 $inherits(ArrayBasedScanner, AbstractScanner$S); |
2652 ArrayBasedScanner.prototype.get$charOffset = function() { | 2652 ArrayBasedScanner.prototype.get$charOffset = function() { |
2653 return this.byteOffset + this.extraCharOffset; | 2653 return this.byteOffset + this.extraCharOffset; |
2654 } | 2654 } |
2655 ArrayBasedScanner.prototype.get$tail = function() { return this.tail; }; | 2655 ArrayBasedScanner.prototype.get$tail = function() { return this.tail; }; |
2656 ArrayBasedScanner.prototype.set$tail = function(value) { return this.tail = valu
e; }; | 2656 ArrayBasedScanner.prototype.set$tail = function(value) { return this.tail = valu
e; }; |
(...skipping 16 matching lines...) Expand all Loading... |
2673 } | 2673 } |
2674 ArrayBasedScanner.prototype.appendStringToken = function(kind, value) { | 2674 ArrayBasedScanner.prototype.appendStringToken = function(kind, value) { |
2675 this.tail.next = new StringToken(kind, value, this.tokenStart); | 2675 this.tail.next = new StringToken(kind, value, this.tokenStart); |
2676 this.tail = this.tail.next; | 2676 this.tail = this.tail.next; |
2677 } | 2677 } |
2678 ArrayBasedScanner.prototype.appendKeywordToken = function(keyword) { | 2678 ArrayBasedScanner.prototype.appendKeywordToken = function(keyword) { |
2679 this.tail.next = new KeywordToken(keyword, this.tokenStart); | 2679 this.tail.next = new KeywordToken(keyword, this.tokenStart); |
2680 this.tail = this.tail.next; | 2680 this.tail = this.tail.next; |
2681 } | 2681 } |
2682 ArrayBasedScanner.prototype.appendEofToken = function() { | 2682 ArrayBasedScanner.prototype.appendEofToken = function() { |
2683 this.tail.next = new Token(0/*null.EOF_TOKEN*/, this.get$charOffset()); | 2683 this.tail.next = new scanner_Token(0/*null.EOF_TOKEN*/, this.get$charOffset())
; |
2684 this.tail = this.tail.next; | 2684 this.tail = this.tail.next; |
2685 } | 2685 } |
2686 ArrayBasedScanner.prototype.beginToken = function() { | 2686 ArrayBasedScanner.prototype.beginToken = function() { |
2687 this.tokenStart = this.get$charOffset(); | 2687 this.tokenStart = this.get$charOffset(); |
2688 } | 2688 } |
2689 ArrayBasedScanner.prototype.firstToken = function() { | 2689 ArrayBasedScanner.prototype.firstToken = function() { |
2690 return this.tokens.next; | 2690 return this.tokens.next; |
2691 } | 2691 } |
2692 ArrayBasedScanner.prototype.addToCharOffset = function(offset) { | 2692 ArrayBasedScanner.prototype.addToCharOffset = function(offset) { |
2693 this.extraCharOffset += offset; | 2693 this.extraCharOffset += offset; |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2754 this.groupingStack.get$head().endGroup = oldTail.next; | 2754 this.groupingStack.get$head().endGroup = oldTail.next; |
2755 this.groupingStack = (($0 = this.groupingStack.get$tail()) && $0.is$Link$Tok
en()); | 2755 this.groupingStack = (($0 = this.groupingStack.get$tail()) && $0.is$Link$Tok
en()); |
2756 } | 2756 } |
2757 } | 2757 } |
2758 // ********** Code for ArrayBasedScanner$SourceString ************** | 2758 // ********** Code for ArrayBasedScanner$SourceString ************** |
2759 function ArrayBasedScanner$SourceString() { | 2759 function ArrayBasedScanner$SourceString() { |
2760 this.groupingStack = const$14/*const EmptyLink()*/ | 2760 this.groupingStack = const$14/*const EmptyLink()*/ |
2761 this.extraCharOffset = 0; | 2761 this.extraCharOffset = 0; |
2762 this.tokenStart = -1; | 2762 this.tokenStart = -1; |
2763 this.byteOffset = -1; | 2763 this.byteOffset = -1; |
2764 this.tokens = new Token(0/*null.EOF_TOKEN*/, -1); | 2764 this.tokens = new scanner_Token(0/*null.EOF_TOKEN*/, -1); |
2765 // Initializers done | 2765 // Initializers done |
2766 AbstractScanner$S.call(this); | 2766 AbstractScanner$S.call(this); |
2767 this.tail = this.tokens; | 2767 this.tail = this.tokens; |
2768 } | 2768 } |
2769 $inherits(ArrayBasedScanner$SourceString, ArrayBasedScanner); | 2769 $inherits(ArrayBasedScanner$SourceString, ArrayBasedScanner); |
2770 // ********** Code for top level ************** | 2770 // ********** Code for top level ************** |
2771 // ********** Library scanner ************** | 2771 // ********** Library scanner ************** |
2772 // ********** Code for AbstractScanner ************** | 2772 // ********** Code for AbstractScanner ************** |
2773 function AbstractScanner() { | 2773 function AbstractScanner() { |
2774 // Initializers done | 2774 // Initializers done |
(...skipping 1202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3977 // ********** Code for PartialParser ************** | 3977 // ********** Code for PartialParser ************** |
3978 function PartialParser(listener) { | 3978 function PartialParser(listener) { |
3979 var $this = this; // closure support | 3979 var $this = this; // closure support |
3980 this.listener = listener; | 3980 this.listener = listener; |
3981 // Initializers done | 3981 // Initializers done |
3982 this.beginTypeArguments = (function (t) { | 3982 this.beginTypeArguments = (function (t) { |
3983 return $this.listener.beginTypeArguments$1(t); | 3983 return $this.listener.beginTypeArguments$1(t); |
3984 }) | 3984 }) |
3985 ; | 3985 ; |
3986 this.parseTypeFunction = (function (t) { | 3986 this.parseTypeFunction = (function (t) { |
3987 return $this.parseType((t && t.is$Token())); | 3987 return $this.parseType((t && t.is$scanner_Token())); |
3988 }) | 3988 }) |
3989 ; | 3989 ; |
3990 this.endTypeArguments = (function (c, bt, et) { | 3990 this.endTypeArguments = (function (c, bt, et) { |
3991 return $this.listener.endTypeArguments$3(c, bt, et); | 3991 return $this.listener.endTypeArguments$3(c, bt, et); |
3992 }) | 3992 }) |
3993 ; | 3993 ; |
3994 this.handleNoTypeArguments = (function (t) { | 3994 this.handleNoTypeArguments = (function (t) { |
3995 return $this.listener.handleNoTypeArguments$1(t); | 3995 return $this.listener.handleNoTypeArguments$1(t); |
3996 }) | 3996 }) |
3997 ; | 3997 ; |
3998 this.beginTypeVariables = (function (t) { | 3998 this.beginTypeVariables = (function (t) { |
3999 return $this.listener.beginTypeVariables$1(t); | 3999 return $this.listener.beginTypeVariables$1(t); |
4000 }) | 4000 }) |
4001 ; | 4001 ; |
4002 this.parseTypeVariableFunction = (function (t) { | 4002 this.parseTypeVariableFunction = (function (t) { |
4003 return $this.parseTypeVariable((t && t.is$Token())); | 4003 return $this.parseTypeVariable((t && t.is$scanner_Token())); |
4004 }) | 4004 }) |
4005 ; | 4005 ; |
4006 this.endTypeVariables = (function (c, bt, et) { | 4006 this.endTypeVariables = (function (c, bt, et) { |
4007 return $this.listener.endTypeVariables$3(c, bt, et); | 4007 return $this.listener.endTypeVariables$3(c, bt, et); |
4008 }) | 4008 }) |
4009 ; | 4009 ; |
4010 this.handleNoTypeVariables = (function (t) { | 4010 this.handleNoTypeVariables = (function (t) { |
4011 return $this.listener.handleNoTypeVariables$1(t); | 4011 return $this.listener.handleNoTypeVariables$1(t); |
4012 }) | 4012 }) |
4013 ; | 4013 ; |
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4197 return this.parseString(this.next(token)); | 4197 return this.parseString(this.next(token)); |
4198 } | 4198 } |
4199 return token; | 4199 return token; |
4200 } | 4200 } |
4201 PartialParser.prototype.parseString = function(token) { | 4201 PartialParser.prototype.parseString = function(token) { |
4202 var $0; | 4202 var $0; |
4203 if (token.kind === 39/*null.STRING_TOKEN*/) { | 4203 if (token.kind === 39/*null.STRING_TOKEN*/) { |
4204 return this.next(token); | 4204 return this.next(token); |
4205 } | 4205 } |
4206 else { | 4206 else { |
4207 return (($0 = this.listener.expected$2('string', token)) && $0.is$Token()); | 4207 return (($0 = this.listener.expected$2('string', token)) && $0.is$scanner_To
ken()); |
4208 } | 4208 } |
4209 } | 4209 } |
4210 PartialParser.prototype.parseIdentifier = function(token) { | 4210 PartialParser.prototype.parseIdentifier = function(token) { |
4211 if ($notnull_bool(this.isIdentifier(token))) { | 4211 if ($notnull_bool(this.isIdentifier(token))) { |
4212 this.listener.handleIdentifier$1(token); | 4212 this.listener.handleIdentifier$1(token); |
4213 } | 4213 } |
4214 else { | 4214 else { |
4215 this.listener.expectedIdentifier$1(token); | 4215 this.listener.expectedIdentifier$1(token); |
4216 } | 4216 } |
4217 return this.next(token); | 4217 return this.next(token); |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4282 this.listener.handleNoTypeVariables$1(token); | 4282 this.listener.handleNoTypeVariables$1(token); |
4283 return token; | 4283 return token; |
4284 } | 4284 } |
4285 PartialParser.prototype.parseStuff = function(token, beginStuff, stuffParser, en
dStuff, handleNoStuff) { | 4285 PartialParser.prototype.parseStuff = function(token, beginStuff, stuffParser, en
dStuff, handleNoStuff) { |
4286 var $0; | 4286 var $0; |
4287 if ($notnull_bool(this.optional('<', token))) { | 4287 if ($notnull_bool(this.optional('<', token))) { |
4288 var begin = token; | 4288 var begin = token; |
4289 beginStuff.call$1(begin); | 4289 beginStuff.call$1(begin); |
4290 var count = 0; | 4290 var count = 0; |
4291 do { | 4291 do { |
4292 token = (($0 = stuffParser.call$1(this.next(token))) && $0.is$Token()); | 4292 token = (($0 = stuffParser.call$1(this.next(token))) && $0.is$scanner_Toke
n()); |
4293 ++count; | 4293 ++count; |
4294 } | 4294 } |
4295 while ($notnull_bool(this.optional(',', token))) | 4295 while ($notnull_bool(this.optional(',', token))) |
4296 endStuff.call$3(count, begin, token); | 4296 endStuff.call$3(count, begin, token); |
4297 return this.expect('>', token); | 4297 return this.expect('>', token); |
4298 } | 4298 } |
4299 handleNoStuff.call$1(token); | 4299 handleNoStuff.call$1(token); |
4300 return token; | 4300 return token; |
4301 } | 4301 } |
4302 PartialParser.prototype.parseClassBody = function(token) { | 4302 PartialParser.prototype.parseClassBody = function(token) { |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4379 PartialParser.prototype.endTypeVariables$3 = function($0, $1, $2) { | 4379 PartialParser.prototype.endTypeVariables$3 = function($0, $1, $2) { |
4380 return this.endTypeVariables.call$3($0, $1, $2); | 4380 return this.endTypeVariables.call$3($0, $1, $2); |
4381 }; | 4381 }; |
4382 PartialParser.prototype.handleNoTypeArguments$1 = function($0) { | 4382 PartialParser.prototype.handleNoTypeArguments$1 = function($0) { |
4383 return this.handleNoTypeArguments.call$1($0); | 4383 return this.handleNoTypeArguments.call$1($0); |
4384 }; | 4384 }; |
4385 PartialParser.prototype.handleNoTypeVariables$1 = function($0) { | 4385 PartialParser.prototype.handleNoTypeVariables$1 = function($0) { |
4386 return this.handleNoTypeVariables.call$1($0); | 4386 return this.handleNoTypeVariables.call$1($0); |
4387 }; | 4387 }; |
4388 PartialParser.prototype.parseClass$1 = function($0) { | 4388 PartialParser.prototype.parseClass$1 = function($0) { |
4389 return this.parseClass(($0 && $0.is$Token())); | 4389 return this.parseClass(($0 && $0.is$scanner_Token())); |
4390 }; | 4390 }; |
4391 // ********** Code for Parser ************** | 4391 // ********** Code for scanner_Parser ************** |
4392 function Parser(listener) { | 4392 function scanner_Parser(listener) { |
4393 // Initializers done | 4393 // Initializers done |
4394 PartialParser.call(this, listener); | 4394 PartialParser.call(this, listener); |
4395 } | 4395 } |
4396 $inherits(Parser, PartialParser); | 4396 $inherits(scanner_Parser, PartialParser); |
4397 Parser.prototype.parseFunction = function(token) { | 4397 scanner_Parser.prototype.parseFunction = function(token) { |
4398 this.listener.beginFunction$1(token); | 4398 this.listener.beginFunction$1(token); |
4399 token = this.parseReturnTypeOpt(token); | 4399 token = this.parseReturnTypeOpt(token); |
4400 this.listener.beginFunctionName$1(token); | 4400 this.listener.beginFunctionName$1(token); |
4401 token = this.parseIdentifier(token); | 4401 token = this.parseIdentifier(token); |
4402 this.listener.endFunctionName$1(token); | 4402 this.listener.endFunctionName$1(token); |
4403 token = this.parseFormalParameters(token); | 4403 token = this.parseFormalParameters(token); |
4404 return this.parseFunctionBody(token); | 4404 return this.parseFunctionBody(token); |
4405 } | 4405 } |
4406 Parser.prototype.parseFunctionBody = function(token) { | 4406 scanner_Parser.prototype.parseFunctionBody = function(token) { |
4407 if ($notnull_bool(this.optional(';', token))) { | 4407 if ($notnull_bool(this.optional(';', token))) { |
4408 this.listener.endFunctionBody$3(0, null, token); | 4408 this.listener.endFunctionBody$3(0, null, token); |
4409 return token.next; | 4409 return token.next; |
4410 } | 4410 } |
4411 var begin = token; | 4411 var begin = token; |
4412 var statementCount = 0; | 4412 var statementCount = 0; |
4413 this.listener.beginFunctionBody$1(begin); | 4413 this.listener.beginFunctionBody$1(begin); |
4414 token = this.checkEof(this.expect('{', token)); | 4414 token = this.checkEof(this.expect('{', token)); |
4415 while (!$notnull_bool(this.optional('}', token))) { | 4415 while (!$notnull_bool(this.optional('}', token))) { |
4416 token = this.parseStatement(token); | 4416 token = this.parseStatement(token); |
4417 ++statementCount; | 4417 ++statementCount; |
4418 } | 4418 } |
4419 this.listener.endFunctionBody$3(statementCount, begin, token); | 4419 this.listener.endFunctionBody$3(statementCount, begin, token); |
4420 return this.expect('}', token); | 4420 return this.expect('}', token); |
4421 } | 4421 } |
4422 Parser.prototype.parseStatement = function(token) { | 4422 scanner_Parser.prototype.parseStatement = function(token) { |
4423 this.checkEof(token); | 4423 this.checkEof(token); |
4424 var value = token.get$stringValue(); | 4424 var value = token.get$stringValue(); |
4425 switch (true) { | 4425 switch (true) { |
4426 case token.kind === 97/*null.IDENTIFIER_TOKEN*/: | 4426 case token.kind === 97/*null.IDENTIFIER_TOKEN*/: |
4427 | 4427 |
4428 return this.parseExpressionStatementOrDeclaration(token); | 4428 return this.parseExpressionStatementOrDeclaration(token); |
4429 | 4429 |
4430 case value === '{': | 4430 case value === '{': |
4431 | 4431 |
4432 return this.parseBlock(token); | 4432 return this.parseBlock(token); |
(...skipping 17 matching lines...) Expand all Loading... |
4450 case value === 'throw': | 4450 case value === 'throw': |
4451 | 4451 |
4452 return this.parseThrowStatement(token); | 4452 return this.parseThrowStatement(token); |
4453 | 4453 |
4454 default: | 4454 default: |
4455 | 4455 |
4456 return this.parseExpressionStatement(token); | 4456 return this.parseExpressionStatement(token); |
4457 | 4457 |
4458 } | 4458 } |
4459 } | 4459 } |
4460 Parser.prototype.expectSemicolon = function(token) { | 4460 scanner_Parser.prototype.expectSemicolon = function(token) { |
4461 return this.expect(';', token); | 4461 return this.expect(';', token); |
4462 } | 4462 } |
4463 Parser.prototype.parseReturnStatement = function(token) { | 4463 scanner_Parser.prototype.parseReturnStatement = function(token) { |
4464 var begin = token; | 4464 var begin = token; |
4465 this.listener.beginReturnStatement$1(begin); | 4465 this.listener.beginReturnStatement$1(begin); |
4466 $assert('return' === token.get$stringValue(), "'return' === token.stringValue"
, "parser.dart", 455, 12); | 4466 $assert('return' === token.get$stringValue(), "'return' === token.stringValue"
, "parser.dart", 455, 12); |
4467 token = this.next(token); | 4467 token = this.next(token); |
4468 if ($notnull_bool(this.optional(';', token))) { | 4468 if ($notnull_bool(this.optional(';', token))) { |
4469 this.listener.endReturnStatement$3(false, begin, token); | 4469 this.listener.endReturnStatement$3(false, begin, token); |
4470 } | 4470 } |
4471 else { | 4471 else { |
4472 token = this.parseExpression(token); | 4472 token = this.parseExpression(token); |
4473 this.listener.endReturnStatement$3(true, begin, token); | 4473 this.listener.endReturnStatement$3(true, begin, token); |
4474 } | 4474 } |
4475 return this.expectSemicolon(token); | 4475 return this.expectSemicolon(token); |
4476 } | 4476 } |
4477 Parser.prototype.peekAfterType = function(token) { | 4477 scanner_Parser.prototype.peekAfterType = function(token) { |
4478 $assert(token.kind === 97/*null.IDENTIFIER_TOKEN*/, "token.kind === IDENTIFIER
_TOKEN", "parser.dart", 468, 12); | 4478 $assert(token.kind === 97/*null.IDENTIFIER_TOKEN*/, "token.kind === IDENTIFIER
_TOKEN", "parser.dart", 468, 12); |
4479 var peek = token.next; | 4479 var peek = token.next; |
4480 if (peek.kind === 46/*null.PERIOD_TOKEN*/) { | 4480 if (peek.kind === 46/*null.PERIOD_TOKEN*/) { |
4481 if (peek.next.kind === 97/*null.IDENTIFIER_TOKEN*/) { | 4481 if (peek.next.kind === 97/*null.IDENTIFIER_TOKEN*/) { |
4482 peek = peek.next.next; | 4482 peek = peek.next.next; |
4483 } | 4483 } |
4484 } | 4484 } |
4485 if (peek.kind === 60/*null.LT_TOKEN*/) { | 4485 if (peek.kind === 60/*null.LT_TOKEN*/) { |
4486 var beginGroupToken = (peek && peek.is$BeginGroupToken()); | 4486 var beginGroupToken = (peek && peek.is$BeginGroupToken()); |
4487 var gtToken = beginGroupToken.endGroup; | 4487 var gtToken = beginGroupToken.endGroup; |
4488 if (gtToken != null) { | 4488 if (gtToken != null) { |
4489 return gtToken.next; | 4489 return gtToken.next; |
4490 } | 4490 } |
4491 } | 4491 } |
4492 return peek; | 4492 return peek; |
4493 } | 4493 } |
4494 Parser.prototype.peekIdentifierAfterType = function(token) { | 4494 scanner_Parser.prototype.peekIdentifierAfterType = function(token) { |
4495 var peek = this.peekAfterType(token); | 4495 var peek = this.peekAfterType(token); |
4496 if (peek != null && peek.kind === 97/*null.IDENTIFIER_TOKEN*/) { | 4496 if (peek != null && peek.kind === 97/*null.IDENTIFIER_TOKEN*/) { |
4497 return peek; | 4497 return peek; |
4498 } | 4498 } |
4499 else { | 4499 else { |
4500 return null; | 4500 return null; |
4501 } | 4501 } |
4502 } | 4502 } |
4503 Parser.prototype.parseExpressionStatementOrDeclaration = function(token) { | 4503 scanner_Parser.prototype.parseExpressionStatementOrDeclaration = function(token)
{ |
4504 var identifier = this.peekIdentifierAfterType(token); | 4504 var identifier = this.peekIdentifierAfterType(token); |
4505 if (identifier != null) { | 4505 if (identifier != null) { |
4506 $assert(identifier.kind === 97/*null.IDENTIFIER_TOKEN*/, "identifier.kind ==
= IDENTIFIER_TOKEN", "parser.dart", 504, 14); | 4506 $assert(identifier.kind === 97/*null.IDENTIFIER_TOKEN*/, "identifier.kind ==
= IDENTIFIER_TOKEN", "parser.dart", 504, 14); |
4507 var afterId = identifier.next; | 4507 var afterId = identifier.next; |
4508 var afterIdKind = afterId.kind; | 4508 var afterIdKind = afterId.kind; |
4509 if (afterIdKind === 61/*null.EQ_TOKEN*/ || afterIdKind === 59/*null.SEMICOLO
N_TOKEN*/) { | 4509 if (afterIdKind === 61/*null.EQ_TOKEN*/ || afterIdKind === 59/*null.SEMICOLO
N_TOKEN*/) { |
4510 return this.parseVariablesDeclaration(token); | 4510 return this.parseVariablesDeclaration(token); |
4511 } | 4511 } |
4512 else if (afterIdKind === 41/*null.RPAREN_TOKEN*/) { | 4512 else if (afterIdKind === 41/*null.RPAREN_TOKEN*/) { |
4513 var beginParen = (afterId && afterId.is$BeginGroupToken()); | 4513 var beginParen = (afterId && afterId.is$BeginGroupToken()); |
4514 var endParen = beginParen.endGroup; | 4514 var endParen = beginParen.endGroup; |
4515 var afterParens = endParen.next; | 4515 var afterParens = endParen.next; |
4516 if ($notnull_bool(this.optional('{', afterParens)) || $notnull_bool(this.o
ptional('=>', afterParens))) { | 4516 if ($notnull_bool(this.optional('{', afterParens)) || $notnull_bool(this.o
ptional('=>', afterParens))) { |
4517 return this.parseFunction(token); | 4517 return this.parseFunction(token); |
4518 } | 4518 } |
4519 } | 4519 } |
4520 } | 4520 } |
4521 return this.parseExpressionStatement(token); | 4521 return this.parseExpressionStatement(token); |
4522 } | 4522 } |
4523 Parser.prototype.parseExpressionStatement = function(token) { | 4523 scanner_Parser.prototype.parseExpressionStatement = function(token) { |
4524 this.listener.beginExpressionStatement$1(token); | 4524 this.listener.beginExpressionStatement$1(token); |
4525 token = this.parseExpression(token); | 4525 token = this.parseExpression(token); |
4526 this.listener.endExpressionStatement$1(token); | 4526 this.listener.endExpressionStatement$1(token); |
4527 return this.expectSemicolon(token); | 4527 return this.expectSemicolon(token); |
4528 } | 4528 } |
4529 Parser.prototype.parseExpression = function(token) { | 4529 scanner_Parser.prototype.parseExpression = function(token) { |
4530 token = this.parseConditionalExpression(token); | 4530 token = this.parseConditionalExpression(token); |
4531 if ($notnull_bool(this.isAssignmentOperator(token))) { | 4531 if ($notnull_bool(this.isAssignmentOperator(token))) { |
4532 var operator = token; | 4532 var operator = token; |
4533 token = this.parseExpression(this.next(token)); | 4533 token = this.parseExpression(this.next(token)); |
4534 this.listener.handleAssignmentExpression$1(operator); | 4534 this.listener.handleAssignmentExpression$1(operator); |
4535 } | 4535 } |
4536 return token; | 4536 return token; |
4537 } | 4537 } |
4538 Parser.prototype.isAssignmentOperator = function(token) { | 4538 scanner_Parser.prototype.isAssignmentOperator = function(token) { |
4539 return 2 === this.getPrecedence(token); | 4539 return 2 === this.getPrecedence(token); |
4540 } | 4540 } |
4541 Parser.prototype.parseConditionalExpression = function(token) { | 4541 scanner_Parser.prototype.parseConditionalExpression = function(token) { |
4542 token = this.parseBinaryExpression(token, 4); | 4542 token = this.parseBinaryExpression(token, 4); |
4543 if ($notnull_bool(this.optional('?', token))) { | 4543 if ($notnull_bool(this.optional('?', token))) { |
4544 var question = token; | 4544 var question = token; |
4545 token = this.parseExpression(this.next(token)); | 4545 token = this.parseExpression(this.next(token)); |
4546 var colon = token; | 4546 var colon = token; |
4547 token = this.expect(':', token); | 4547 token = this.expect(':', token); |
4548 token = this.parseExpression(token); | 4548 token = this.parseExpression(token); |
4549 this.listener.handleConditionalExpression$2(question, colon); | 4549 this.listener.handleConditionalExpression$2(question, colon); |
4550 } | 4550 } |
4551 return token; | 4551 return token; |
4552 } | 4552 } |
4553 Parser.prototype.parseBinaryExpression = function(token, precedence) { | 4553 scanner_Parser.prototype.parseBinaryExpression = function(token, precedence) { |
4554 $assert(precedence >= 4, "precedence >= 4", "parser.dart", 561, 12); | 4554 $assert(precedence >= 4, "precedence >= 4", "parser.dart", 561, 12); |
4555 token = this.parseUnaryExpression(token); | 4555 token = this.parseUnaryExpression(token); |
4556 var tokenLevel = this.getPrecedence(token); | 4556 var tokenLevel = this.getPrecedence(token); |
4557 for (var level = $assert_num(tokenLevel); | 4557 for (var level = $assert_num(tokenLevel); |
4558 level >= precedence; --level) { | 4558 level >= precedence; --level) { |
4559 while (tokenLevel === level) { | 4559 while (tokenLevel === level) { |
4560 var operator = token; | 4560 var operator = token; |
4561 token = this.parseBinaryExpression(this.next(token), level + 1); | 4561 token = this.parseBinaryExpression(this.next(token), level + 1); |
4562 this.listener.handleBinaryExpression$1(operator); | 4562 this.listener.handleBinaryExpression$1(operator); |
4563 tokenLevel = this.getPrecedence(token); | 4563 tokenLevel = this.getPrecedence(token); |
4564 } | 4564 } |
4565 } | 4565 } |
4566 return token; | 4566 return token; |
4567 } | 4567 } |
4568 Parser.prototype.getPrecedence = function(token) { | 4568 scanner_Parser.prototype.getPrecedence = function(token) { |
4569 if (token == null) return 0; | 4569 if (token == null) return 0; |
4570 var value = token.get$stringValue(); | 4570 var value = token.get$stringValue(); |
4571 if (value == null) return 0; | 4571 if (value == null) return 0; |
4572 switch (true) { | 4572 switch (true) { |
4573 case value === '(': | 4573 case value === '(': |
4574 | 4574 |
4575 return 0; | 4575 return 0; |
4576 | 4576 |
4577 case value === '+': | 4577 case value === '+': |
4578 | 4578 |
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4729 case value === '~/': | 4729 case value === '~/': |
4730 | 4730 |
4731 return 13; | 4731 return 13; |
4732 | 4732 |
4733 default: | 4733 default: |
4734 | 4734 |
4735 return 0; | 4735 return 0; |
4736 | 4736 |
4737 } | 4737 } |
4738 } | 4738 } |
4739 Parser.prototype.parseUnaryExpression = function(token) { | 4739 scanner_Parser.prototype.parseUnaryExpression = function(token) { |
4740 var value = token.get$stringValue(); | 4740 var value = token.get$stringValue(); |
4741 switch (true) { | 4741 switch (true) { |
4742 case value === '!': | 4742 case value === '!': |
4743 case value === '+': | 4743 case value === '+': |
4744 case value === '-': | 4744 case value === '-': |
4745 case value === '++': | 4745 case value === '++': |
4746 case value === '--': | 4746 case value === '--': |
4747 case value === '~': | 4747 case value === '~': |
4748 | 4748 |
4749 { | 4749 { |
(...skipping 15 matching lines...) Expand all Loading... |
4765 this.listener.handleUnaryPostfixExpression$1(token); | 4765 this.listener.handleUnaryPostfixExpression$1(token); |
4766 token = this.next(token); | 4766 token = this.next(token); |
4767 break; | 4767 break; |
4768 | 4768 |
4769 } | 4769 } |
4770 break; | 4770 break; |
4771 | 4771 |
4772 } | 4772 } |
4773 return token; | 4773 return token; |
4774 } | 4774 } |
4775 Parser.prototype.parsePrimary = function(token) { | 4775 scanner_Parser.prototype.parsePrimary = function(token) { |
4776 var kind = token.kind; | 4776 var kind = token.kind; |
4777 switch (true) { | 4777 switch (true) { |
4778 case kind === 97/*null.IDENTIFIER_TOKEN*/: | 4778 case kind === 97/*null.IDENTIFIER_TOKEN*/: |
4779 | 4779 |
4780 return this.parseSend(token); | 4780 return this.parseSend(token); |
4781 | 4781 |
4782 case kind === 105/*null.INT_TOKEN*/: | 4782 case kind === 105/*null.INT_TOKEN*/: |
4783 | 4783 |
4784 return this.parseLiteralInt(token); | 4784 return this.parseLiteralInt(token); |
4785 | 4785 |
(...skipping 24 matching lines...) Expand all Loading... |
4810 } | 4810 } |
4811 $throw(new FallThroughError()); | 4811 $throw(new FallThroughError()); |
4812 | 4812 |
4813 default: | 4813 default: |
4814 | 4814 |
4815 this.listener.unexpected$1(token); | 4815 this.listener.unexpected$1(token); |
4816 $throw('not yet implemented'); | 4816 $throw('not yet implemented'); |
4817 | 4817 |
4818 } | 4818 } |
4819 } | 4819 } |
4820 Parser.prototype.parseLiteralInt = function(token) { | 4820 scanner_Parser.prototype.parseLiteralInt = function(token) { |
4821 this.listener.handleLiteralInt$1(token); | 4821 this.listener.handleLiteralInt$1(token); |
4822 return token.next; | 4822 return token.next; |
4823 } | 4823 } |
4824 Parser.prototype.parseLiteralDouble = function(token) { | 4824 scanner_Parser.prototype.parseLiteralDouble = function(token) { |
4825 this.listener.handleLiteralDouble$1(token); | 4825 this.listener.handleLiteralDouble$1(token); |
4826 return token.next; | 4826 return token.next; |
4827 } | 4827 } |
4828 Parser.prototype.parseLiteralString = function(token) { | 4828 scanner_Parser.prototype.parseLiteralString = function(token) { |
4829 this.listener.handleLiteralString$1(token); | 4829 this.listener.handleLiteralString$1(token); |
4830 return token.next; | 4830 return token.next; |
4831 } | 4831 } |
4832 Parser.prototype.parseLiteralBool = function(token) { | 4832 scanner_Parser.prototype.parseLiteralBool = function(token) { |
4833 this.listener.handleLiteralBool$1(token); | 4833 this.listener.handleLiteralBool$1(token); |
4834 return token.next; | 4834 return token.next; |
4835 } | 4835 } |
4836 Parser.prototype.parseSend = function(token) { | 4836 scanner_Parser.prototype.parseSend = function(token) { |
4837 this.listener.beginSend$1(token); | 4837 this.listener.beginSend$1(token); |
4838 token = this.parseIdentifier(token); | 4838 token = this.parseIdentifier(token); |
4839 token = this.parseArgumentsOpt(token); | 4839 token = this.parseArgumentsOpt(token); |
4840 this.listener.endSend$1(token); | 4840 this.listener.endSend$1(token); |
4841 return token; | 4841 return token; |
4842 } | 4842 } |
4843 Parser.prototype.parseArgumentsOpt = function(token) { | 4843 scanner_Parser.prototype.parseArgumentsOpt = function(token) { |
4844 if (!$notnull_bool(this.optional('(', token))) { | 4844 if (!$notnull_bool(this.optional('(', token))) { |
4845 this.listener.handleNoArguments$1(token); | 4845 this.listener.handleNoArguments$1(token); |
4846 return token; | 4846 return token; |
4847 } | 4847 } |
4848 else { | 4848 else { |
4849 return this.parseArguments(token); | 4849 return this.parseArguments(token); |
4850 } | 4850 } |
4851 } | 4851 } |
4852 Parser.prototype.parseArguments = function(token) { | 4852 scanner_Parser.prototype.parseArguments = function(token) { |
4853 var begin = token; | 4853 var begin = token; |
4854 this.listener.beginArguments$1(begin); | 4854 this.listener.beginArguments$1(begin); |
4855 $assert('(' === token.get$stringValue(), "'(' === token.stringValue", "parser.
dart", 726, 12); | 4855 $assert('(' === token.get$stringValue(), "'(' === token.stringValue", "parser.
dart", 726, 12); |
4856 var argumentCount = 0; | 4856 var argumentCount = 0; |
4857 if ($notnull_bool(this.optional(')', token.next))) { | 4857 if ($notnull_bool(this.optional(')', token.next))) { |
4858 this.listener.endArguments$3(argumentCount, begin, token.next); | 4858 this.listener.endArguments$3(argumentCount, begin, token.next); |
4859 return token.next.next; | 4859 return token.next.next; |
4860 } | 4860 } |
4861 do { | 4861 do { |
4862 token = this.parseExpression(this.next(token)); | 4862 token = this.parseExpression(this.next(token)); |
4863 ++argumentCount; | 4863 ++argumentCount; |
4864 } | 4864 } |
4865 while ($notnull_bool(this.optional(',', token))) | 4865 while ($notnull_bool(this.optional(',', token))) |
4866 this.listener.endArguments$3(argumentCount, begin, token); | 4866 this.listener.endArguments$3(argumentCount, begin, token); |
4867 return this.expect(')', token); | 4867 return this.expect(')', token); |
4868 } | 4868 } |
4869 Parser.prototype.parseVariablesDeclaration = function(token) { | 4869 scanner_Parser.prototype.parseVariablesDeclaration = function(token) { |
4870 var count = 1; | 4870 var count = 1; |
4871 this.listener.beginVariablesDeclaration$1(token); | 4871 this.listener.beginVariablesDeclaration$1(token); |
4872 token = this.parseFinalVarOrType(token); | 4872 token = this.parseFinalVarOrType(token); |
4873 token = this.parseOptionallyInitializedIdentifier(token); | 4873 token = this.parseOptionallyInitializedIdentifier(token); |
4874 while ($notnull_bool(this.optional(',', token))) { | 4874 while ($notnull_bool(this.optional(',', token))) { |
4875 token = this.parseOptionallyInitializedIdentifier(this.next(token)); | 4875 token = this.parseOptionallyInitializedIdentifier(this.next(token)); |
4876 ++count; | 4876 ++count; |
4877 } | 4877 } |
4878 this.listener.endVariablesDeclaration$2(count, token); | 4878 this.listener.endVariablesDeclaration$2(count, token); |
4879 return this.expectSemicolon(token); | 4879 return this.expectSemicolon(token); |
4880 } | 4880 } |
4881 Parser.prototype.parseOptionallyInitializedIdentifier = function(token) { | 4881 scanner_Parser.prototype.parseOptionallyInitializedIdentifier = function(token)
{ |
4882 this.listener.beginInitializedIdentifier$1(token); | 4882 this.listener.beginInitializedIdentifier$1(token); |
4883 token = this.parseIdentifier(token); | 4883 token = this.parseIdentifier(token); |
4884 if ($notnull_bool(this.optional('=', token))) { | 4884 if ($notnull_bool(this.optional('=', token))) { |
4885 var assignment = token; | 4885 var assignment = token; |
4886 this.listener.beginInitializer$1(token); | 4886 this.listener.beginInitializer$1(token); |
4887 token = this.parseExpression(this.next(token)); | 4887 token = this.parseExpression(this.next(token)); |
4888 this.listener.endInitializer$1(assignment); | 4888 this.listener.endInitializer$1(assignment); |
4889 } | 4889 } |
4890 this.listener.endInitializedIdentifier$0(); | 4890 this.listener.endInitializedIdentifier$0(); |
4891 return token; | 4891 return token; |
4892 } | 4892 } |
4893 Parser.prototype.parseFinalVarOrType = function(token) { | 4893 scanner_Parser.prototype.parseFinalVarOrType = function(token) { |
4894 var value = token.get$stringValue(); | 4894 var value = token.get$stringValue(); |
4895 switch (true) { | 4895 switch (true) { |
4896 case 'final' === value: | 4896 case 'final' === value: |
4897 | 4897 |
4898 this.listener.handleFinalKeyword$1(token); | 4898 this.listener.handleFinalKeyword$1(token); |
4899 return this.next(token); | 4899 return this.next(token); |
4900 | 4900 |
4901 default: | 4901 default: |
4902 | 4902 |
4903 return this.parseType(token); | 4903 return this.parseType(token); |
4904 | 4904 |
4905 } | 4905 } |
4906 } | 4906 } |
4907 Parser.prototype.parseIfStatement = function(token) { | 4907 scanner_Parser.prototype.parseIfStatement = function(token) { |
4908 var ifToken = token; | 4908 var ifToken = token; |
4909 this.listener.beginIfStatement$1(ifToken); | 4909 this.listener.beginIfStatement$1(ifToken); |
4910 token = this.expect('if', token); | 4910 token = this.expect('if', token); |
4911 this.expect('(', token); | 4911 this.expect('(', token); |
4912 token = this.parseArguments(token); | 4912 token = this.parseArguments(token); |
4913 token = this.parseStatement(token); | 4913 token = this.parseStatement(token); |
4914 var elseToken = null; | 4914 var elseToken = null; |
4915 if ($notnull_bool(this.optional('else', token))) { | 4915 if ($notnull_bool(this.optional('else', token))) { |
4916 elseToken = token; | 4916 elseToken = token; |
4917 token = this.parseStatement(token.next); | 4917 token = this.parseStatement(token.next); |
4918 } | 4918 } |
4919 this.listener.endIfStatement$2(ifToken, elseToken); | 4919 this.listener.endIfStatement$2(ifToken, elseToken); |
4920 return token; | 4920 return token; |
4921 } | 4921 } |
4922 Parser.prototype.parseForStatement = function(token) { | 4922 scanner_Parser.prototype.parseForStatement = function(token) { |
4923 var forToken = token; | 4923 var forToken = token; |
4924 this.listener.beginForStatement$1(forToken); | 4924 this.listener.beginForStatement$1(forToken); |
4925 token = this.expect('for', token); | 4925 token = this.expect('for', token); |
4926 token = this.expect('(', token); | 4926 token = this.expect('(', token); |
4927 token = this.parseVariablesDeclaration(token); | 4927 token = this.parseVariablesDeclaration(token); |
4928 token = this.parseExpressionStatement(token); | 4928 token = this.parseExpressionStatement(token); |
4929 token = this.parseExpression(token); | 4929 token = this.parseExpression(token); |
4930 token = this.expect(')', token); | 4930 token = this.expect(')', token); |
4931 token = this.parseStatement(token); | 4931 token = this.parseStatement(token); |
4932 this.listener.endForStatement$2(forToken, token); | 4932 this.listener.endForStatement$2(forToken, token); |
4933 return token; | 4933 return token; |
4934 } | 4934 } |
4935 Parser.prototype.parseBlock = function(token) { | 4935 scanner_Parser.prototype.parseBlock = function(token) { |
4936 var begin = token; | 4936 var begin = token; |
4937 this.listener.beginBlock$1(begin); | 4937 this.listener.beginBlock$1(begin); |
4938 var statementCount = 0; | 4938 var statementCount = 0; |
4939 token = this.expect('{', token); | 4939 token = this.expect('{', token); |
4940 while (!$notnull_bool(this.optional('}', token))) { | 4940 while (!$notnull_bool(this.optional('}', token))) { |
4941 token = this.parseStatement(token); | 4941 token = this.parseStatement(token); |
4942 ++statementCount; | 4942 ++statementCount; |
4943 } | 4943 } |
4944 this.listener.endBlock$3(statementCount, begin, token); | 4944 this.listener.endBlock$3(statementCount, begin, token); |
4945 return this.expect('}', token); | 4945 return this.expect('}', token); |
4946 } | 4946 } |
4947 Parser.prototype.parseThrowStatement = function(token) { | 4947 scanner_Parser.prototype.parseThrowStatement = function(token) { |
4948 var throwToken = token; | 4948 var throwToken = token; |
4949 this.listener.beginThrowStatement$1(throwToken); | 4949 this.listener.beginThrowStatement$1(throwToken); |
4950 token = this.expect('throw', token); | 4950 token = this.expect('throw', token); |
4951 if ($notnull_bool(this.optional(';', token))) { | 4951 if ($notnull_bool(this.optional(';', token))) { |
4952 this.listener.endRethrowStatement$2(throwToken, token); | 4952 this.listener.endRethrowStatement$2(throwToken, token); |
4953 return token.next; | 4953 return token.next; |
4954 } | 4954 } |
4955 else { | 4955 else { |
4956 token = this.parseExpression(token); | 4956 token = this.parseExpression(token); |
4957 this.listener.endThrowStatement$2(throwToken, token); | 4957 this.listener.endThrowStatement$2(throwToken, token); |
4958 return this.expectSemicolon(token); | 4958 return this.expectSemicolon(token); |
4959 } | 4959 } |
4960 } | 4960 } |
4961 Parser.prototype.parseFunction$1 = function($0) { | 4961 scanner_Parser.prototype.parseFunction$1 = function($0) { |
4962 return this.parseFunction(($0 && $0.is$Token())); | 4962 return this.parseFunction(($0 && $0.is$scanner_Token())); |
4963 }; | 4963 }; |
4964 // ********** Code for ParserTask ************** | 4964 // ********** Code for ParserTask ************** |
4965 function ParserTask(compiler) { | 4965 function ParserTask(compiler) { |
4966 // Initializers done | 4966 // Initializers done |
4967 CompilerTask.call(this, compiler); | 4967 CompilerTask.call(this, compiler); |
4968 } | 4968 } |
4969 $inherits(ParserTask, CompilerTask); | 4969 $inherits(ParserTask, CompilerTask); |
4970 ParserTask.prototype.get$name = function() { | 4970 ParserTask.prototype.get$name = function() { |
4971 return 'Parser'; | 4971 return 'Parser'; |
4972 } | 4972 } |
4973 ParserTask.prototype.parse = function(element) { | 4973 ParserTask.prototype.parse = function(element) { |
4974 var $this = this; // closure support | 4974 var $this = this; // closure support |
4975 var $0; | 4975 var $0; |
4976 return (($0 = this.measure((function () { | 4976 return (($0 = this.measure((function () { |
4977 return element.parseNode($this.compiler, $this.compiler); | 4977 return element.parseNode($this.compiler, $this.compiler); |
4978 }) | 4978 }) |
4979 )) && $0.is$Node()); | 4979 )) && $0.is$tree_Node()); |
4980 } | 4980 } |
4981 // ********** Code for Listener ************** | 4981 // ********** Code for Listener ************** |
4982 function Listener() { | 4982 function Listener() { |
4983 // Initializers done | 4983 // Initializers done |
4984 } | 4984 } |
4985 Listener.prototype.beginArguments = function(token) { | 4985 Listener.prototype.beginArguments = function(token) { |
4986 | 4986 |
4987 } | 4987 } |
4988 Listener.prototype.endArguments = function(count, beginToken, endToken) { | 4988 Listener.prototype.endArguments = function(count, beginToken, endToken) { |
4989 | 4989 |
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5189 Listener.prototype.expectedType = function(token) { | 5189 Listener.prototype.expectedType = function(token) { |
5190 $throw(new ParserError(("Expected a type, but got '" + token + "' @ ") + ("" +
token.charOffset + ""))); | 5190 $throw(new ParserError(("Expected a type, but got '" + token + "' @ ") + ("" +
token.charOffset + ""))); |
5191 } | 5191 } |
5192 Listener.prototype.expectedBlock = function(token) { | 5192 Listener.prototype.expectedBlock = function(token) { |
5193 $throw(new ParserError(("Expected a block, but got '" + token + "' @ ") + (""
+ token.charOffset + ""))); | 5193 $throw(new ParserError(("Expected a block, but got '" + token + "' @ ") + (""
+ token.charOffset + ""))); |
5194 } | 5194 } |
5195 Listener.prototype.unexpected = function(token) { | 5195 Listener.prototype.unexpected = function(token) { |
5196 $throw(new ParserError(("Unexpected token '" + token + "' @ " + token.charOffs
et + ""))); | 5196 $throw(new ParserError(("Unexpected token '" + token + "' @ " + token.charOffs
et + ""))); |
5197 } | 5197 } |
5198 Listener.prototype.beginArguments$1 = function($0) { | 5198 Listener.prototype.beginArguments$1 = function($0) { |
5199 return this.beginArguments(($0 && $0.is$Token())); | 5199 return this.beginArguments(($0 && $0.is$scanner_Token())); |
5200 }; | 5200 }; |
5201 Listener.prototype.beginBlock$1 = function($0) { | 5201 Listener.prototype.beginBlock$1 = function($0) { |
5202 return this.beginBlock(($0 && $0.is$Token())); | 5202 return this.beginBlock(($0 && $0.is$scanner_Token())); |
5203 }; | 5203 }; |
5204 Listener.prototype.beginClass$1 = function($0) { | 5204 Listener.prototype.beginClass$1 = function($0) { |
5205 return this.beginClass(($0 && $0.is$Token())); | 5205 return this.beginClass(($0 && $0.is$scanner_Token())); |
5206 }; | 5206 }; |
5207 Listener.prototype.beginExpressionStatement$1 = function($0) { | 5207 Listener.prototype.beginExpressionStatement$1 = function($0) { |
5208 return this.beginExpressionStatement(($0 && $0.is$Token())); | 5208 return this.beginExpressionStatement(($0 && $0.is$scanner_Token())); |
5209 }; | 5209 }; |
5210 Listener.prototype.beginForStatement$1 = function($0) { | 5210 Listener.prototype.beginForStatement$1 = function($0) { |
5211 return this.beginForStatement(($0 && $0.is$Token())); | 5211 return this.beginForStatement(($0 && $0.is$scanner_Token())); |
5212 }; | 5212 }; |
5213 Listener.prototype.beginFormalParameter$1 = function($0) { | 5213 Listener.prototype.beginFormalParameter$1 = function($0) { |
5214 return this.beginFormalParameter(($0 && $0.is$Token())); | 5214 return this.beginFormalParameter(($0 && $0.is$scanner_Token())); |
5215 }; | 5215 }; |
5216 Listener.prototype.beginFormalParameters$1 = function($0) { | 5216 Listener.prototype.beginFormalParameters$1 = function($0) { |
5217 return this.beginFormalParameters(($0 && $0.is$Token())); | 5217 return this.beginFormalParameters(($0 && $0.is$scanner_Token())); |
5218 }; | 5218 }; |
5219 Listener.prototype.beginFunction$1 = function($0) { | 5219 Listener.prototype.beginFunction$1 = function($0) { |
5220 return this.beginFunction(($0 && $0.is$Token())); | 5220 return this.beginFunction(($0 && $0.is$scanner_Token())); |
5221 }; | 5221 }; |
5222 Listener.prototype.beginFunctionBody$1 = function($0) { | 5222 Listener.prototype.beginFunctionBody$1 = function($0) { |
5223 return this.beginFunctionBody(($0 && $0.is$Token())); | 5223 return this.beginFunctionBody(($0 && $0.is$scanner_Token())); |
5224 }; | 5224 }; |
5225 Listener.prototype.beginFunctionName$1 = function($0) { | 5225 Listener.prototype.beginFunctionName$1 = function($0) { |
5226 return this.beginFunctionName(($0 && $0.is$Token())); | 5226 return this.beginFunctionName(($0 && $0.is$scanner_Token())); |
5227 }; | 5227 }; |
5228 Listener.prototype.beginFunctionTypeAlias$1 = function($0) { | 5228 Listener.prototype.beginFunctionTypeAlias$1 = function($0) { |
5229 return this.beginFunctionTypeAlias(($0 && $0.is$Token())); | 5229 return this.beginFunctionTypeAlias(($0 && $0.is$scanner_Token())); |
5230 }; | 5230 }; |
5231 Listener.prototype.beginIfStatement$1 = function($0) { | 5231 Listener.prototype.beginIfStatement$1 = function($0) { |
5232 return this.beginIfStatement(($0 && $0.is$Token())); | 5232 return this.beginIfStatement(($0 && $0.is$scanner_Token())); |
5233 }; | 5233 }; |
5234 Listener.prototype.beginInitializedIdentifier$1 = function($0) { | 5234 Listener.prototype.beginInitializedIdentifier$1 = function($0) { |
5235 return this.beginInitializedIdentifier(($0 && $0.is$Token())); | 5235 return this.beginInitializedIdentifier(($0 && $0.is$scanner_Token())); |
5236 }; | 5236 }; |
5237 Listener.prototype.beginInitializer$1 = function($0) { | 5237 Listener.prototype.beginInitializer$1 = function($0) { |
5238 return this.beginInitializer(($0 && $0.is$Token())); | 5238 return this.beginInitializer(($0 && $0.is$scanner_Token())); |
5239 }; | 5239 }; |
5240 Listener.prototype.beginInterface$1 = function($0) { | 5240 Listener.prototype.beginInterface$1 = function($0) { |
5241 return this.beginInterface(($0 && $0.is$Token())); | 5241 return this.beginInterface(($0 && $0.is$scanner_Token())); |
5242 }; | 5242 }; |
5243 Listener.prototype.beginLibraryTag$1 = function($0) { | 5243 Listener.prototype.beginLibraryTag$1 = function($0) { |
5244 return this.beginLibraryTag(($0 && $0.is$Token())); | 5244 return this.beginLibraryTag(($0 && $0.is$scanner_Token())); |
5245 }; | 5245 }; |
5246 Listener.prototype.beginReturnStatement$1 = function($0) { | 5246 Listener.prototype.beginReturnStatement$1 = function($0) { |
5247 return this.beginReturnStatement(($0 && $0.is$Token())); | 5247 return this.beginReturnStatement(($0 && $0.is$scanner_Token())); |
5248 }; | 5248 }; |
5249 Listener.prototype.beginSend$1 = function($0) { | 5249 Listener.prototype.beginSend$1 = function($0) { |
5250 return this.beginSend(($0 && $0.is$Token())); | 5250 return this.beginSend(($0 && $0.is$scanner_Token())); |
5251 }; | 5251 }; |
5252 Listener.prototype.beginThrowStatement$1 = function($0) { | 5252 Listener.prototype.beginThrowStatement$1 = function($0) { |
5253 return this.beginThrowStatement(($0 && $0.is$Token())); | 5253 return this.beginThrowStatement(($0 && $0.is$scanner_Token())); |
5254 }; | 5254 }; |
5255 Listener.prototype.beginTopLevelMember$1 = function($0) { | 5255 Listener.prototype.beginTopLevelMember$1 = function($0) { |
5256 return this.beginTopLevelMember(($0 && $0.is$Token())); | 5256 return this.beginTopLevelMember(($0 && $0.is$scanner_Token())); |
5257 }; | 5257 }; |
5258 Listener.prototype.beginTypeArguments$1 = function($0) { | 5258 Listener.prototype.beginTypeArguments$1 = function($0) { |
5259 return this.beginTypeArguments(($0 && $0.is$Token())); | 5259 return this.beginTypeArguments(($0 && $0.is$scanner_Token())); |
5260 }; | 5260 }; |
5261 Listener.prototype.beginTypeVariable$1 = function($0) { | 5261 Listener.prototype.beginTypeVariable$1 = function($0) { |
5262 return this.beginTypeVariable(($0 && $0.is$Token())); | 5262 return this.beginTypeVariable(($0 && $0.is$scanner_Token())); |
5263 }; | 5263 }; |
5264 Listener.prototype.beginTypeVariables$1 = function($0) { | 5264 Listener.prototype.beginTypeVariables$1 = function($0) { |
5265 return this.beginTypeVariables(($0 && $0.is$Token())); | 5265 return this.beginTypeVariables(($0 && $0.is$scanner_Token())); |
5266 }; | 5266 }; |
5267 Listener.prototype.beginVariablesDeclaration$1 = function($0) { | 5267 Listener.prototype.beginVariablesDeclaration$1 = function($0) { |
5268 return this.beginVariablesDeclaration(($0 && $0.is$Token())); | 5268 return this.beginVariablesDeclaration(($0 && $0.is$scanner_Token())); |
5269 }; | 5269 }; |
5270 Listener.prototype.endArguments$3 = function($0, $1, $2) { | 5270 Listener.prototype.endArguments$3 = function($0, $1, $2) { |
5271 return this.endArguments($assert_num($0), ($1 && $1.is$Token()), ($2 && $2.is$
Token())); | 5271 return this.endArguments($assert_num($0), ($1 && $1.is$scanner_Token()), ($2 &
& $2.is$scanner_Token())); |
5272 }; | 5272 }; |
5273 Listener.prototype.endBlock$3 = function($0, $1, $2) { | 5273 Listener.prototype.endBlock$3 = function($0, $1, $2) { |
5274 return this.endBlock($assert_num($0), ($1 && $1.is$Token()), ($2 && $2.is$Toke
n())); | 5274 return this.endBlock($assert_num($0), ($1 && $1.is$scanner_Token()), ($2 && $2
.is$scanner_Token())); |
5275 }; | 5275 }; |
5276 Listener.prototype.endClass$5 = function($0, $1, $2, $3, $4) { | 5276 Listener.prototype.endClass$5 = function($0, $1, $2, $3, $4) { |
5277 return this.endClass($assert_num($0), ($1 && $1.is$Token()), ($2 && $2.is$Toke
n()), ($3 && $3.is$Token()), ($4 && $4.is$Token())); | 5277 return this.endClass($assert_num($0), ($1 && $1.is$scanner_Token()), ($2 && $2
.is$scanner_Token()), ($3 && $3.is$scanner_Token()), ($4 && $4.is$scanner_Token(
))); |
5278 }; | 5278 }; |
5279 Listener.prototype.endExpressionStatement$1 = function($0) { | 5279 Listener.prototype.endExpressionStatement$1 = function($0) { |
5280 return this.endExpressionStatement(($0 && $0.is$Token())); | 5280 return this.endExpressionStatement(($0 && $0.is$scanner_Token())); |
5281 }; | 5281 }; |
5282 Listener.prototype.endForStatement$2 = function($0, $1) { | 5282 Listener.prototype.endForStatement$2 = function($0, $1) { |
5283 return this.endForStatement(($0 && $0.is$Token()), ($1 && $1.is$Token())); | 5283 return this.endForStatement(($0 && $0.is$scanner_Token()), ($1 && $1.is$scanne
r_Token())); |
5284 }; | 5284 }; |
5285 Listener.prototype.endFormalParameter$1 = function($0) { | 5285 Listener.prototype.endFormalParameter$1 = function($0) { |
5286 return this.endFormalParameter(($0 && $0.is$Token())); | 5286 return this.endFormalParameter(($0 && $0.is$scanner_Token())); |
5287 }; | 5287 }; |
5288 Listener.prototype.endFormalParameters$3 = function($0, $1, $2) { | 5288 Listener.prototype.endFormalParameters$3 = function($0, $1, $2) { |
5289 return this.endFormalParameters($assert_num($0), ($1 && $1.is$Token()), ($2 &&
$2.is$Token())); | 5289 return this.endFormalParameters($assert_num($0), ($1 && $1.is$scanner_Token())
, ($2 && $2.is$scanner_Token())); |
5290 }; | 5290 }; |
5291 Listener.prototype.endFunctionBody$3 = function($0, $1, $2) { | 5291 Listener.prototype.endFunctionBody$3 = function($0, $1, $2) { |
5292 return this.endFunctionBody($assert_num($0), ($1 && $1.is$Token()), ($2 && $2.
is$Token())); | 5292 return this.endFunctionBody($assert_num($0), ($1 && $1.is$scanner_Token()), ($
2 && $2.is$scanner_Token())); |
5293 }; | 5293 }; |
5294 Listener.prototype.endFunctionName$1 = function($0) { | 5294 Listener.prototype.endFunctionName$1 = function($0) { |
5295 return this.endFunctionName(($0 && $0.is$Token())); | 5295 return this.endFunctionName(($0 && $0.is$scanner_Token())); |
5296 }; | 5296 }; |
5297 Listener.prototype.endFunctionTypeAlias$1 = function($0) { | 5297 Listener.prototype.endFunctionTypeAlias$1 = function($0) { |
5298 return this.endFunctionTypeAlias(($0 && $0.is$Token())); | 5298 return this.endFunctionTypeAlias(($0 && $0.is$scanner_Token())); |
5299 }; | 5299 }; |
5300 Listener.prototype.endIfStatement$2 = function($0, $1) { | 5300 Listener.prototype.endIfStatement$2 = function($0, $1) { |
5301 return this.endIfStatement(($0 && $0.is$Token()), ($1 && $1.is$Token())); | 5301 return this.endIfStatement(($0 && $0.is$scanner_Token()), ($1 && $1.is$scanner
_Token())); |
5302 }; | 5302 }; |
5303 Listener.prototype.endInitializedIdentifier$0 = function() { | 5303 Listener.prototype.endInitializedIdentifier$0 = function() { |
5304 return this.endInitializedIdentifier(); | 5304 return this.endInitializedIdentifier(); |
5305 }; | 5305 }; |
5306 Listener.prototype.endInitializer$1 = function($0) { | 5306 Listener.prototype.endInitializer$1 = function($0) { |
5307 return this.endInitializer(($0 && $0.is$Token())); | 5307 return this.endInitializer(($0 && $0.is$scanner_Token())); |
5308 }; | 5308 }; |
5309 Listener.prototype.endInterface$1 = function($0) { | 5309 Listener.prototype.endInterface$1 = function($0) { |
5310 return this.endInterface(($0 && $0.is$Token())); | 5310 return this.endInterface(($0 && $0.is$scanner_Token())); |
5311 }; | 5311 }; |
5312 Listener.prototype.endRethrowStatement$2 = function($0, $1) { | 5312 Listener.prototype.endRethrowStatement$2 = function($0, $1) { |
5313 return this.endRethrowStatement(($0 && $0.is$Token()), ($1 && $1.is$Token())); | 5313 return this.endRethrowStatement(($0 && $0.is$scanner_Token()), ($1 && $1.is$sc
anner_Token())); |
5314 }; | 5314 }; |
5315 Listener.prototype.endReturnStatement$3 = function($0, $1, $2) { | 5315 Listener.prototype.endReturnStatement$3 = function($0, $1, $2) { |
5316 return this.endReturnStatement($assert_bool($0), ($1 && $1.is$Token()), ($2 &&
$2.is$Token())); | 5316 return this.endReturnStatement($assert_bool($0), ($1 && $1.is$scanner_Token())
, ($2 && $2.is$scanner_Token())); |
5317 }; | 5317 }; |
5318 Listener.prototype.endSend$1 = function($0) { | 5318 Listener.prototype.endSend$1 = function($0) { |
5319 return this.endSend(($0 && $0.is$Token())); | 5319 return this.endSend(($0 && $0.is$scanner_Token())); |
5320 }; | 5320 }; |
5321 Listener.prototype.endThrowStatement$2 = function($0, $1) { | 5321 Listener.prototype.endThrowStatement$2 = function($0, $1) { |
5322 return this.endThrowStatement(($0 && $0.is$Token()), ($1 && $1.is$Token())); | 5322 return this.endThrowStatement(($0 && $0.is$scanner_Token()), ($1 && $1.is$scan
ner_Token())); |
5323 }; | 5323 }; |
5324 Listener.prototype.endTopLevelField$2 = function($0, $1) { | 5324 Listener.prototype.endTopLevelField$2 = function($0, $1) { |
5325 return this.endTopLevelField(($0 && $0.is$Token()), ($1 && $1.is$Token())); | 5325 return this.endTopLevelField(($0 && $0.is$scanner_Token()), ($1 && $1.is$scann
er_Token())); |
5326 }; | 5326 }; |
5327 Listener.prototype.endTopLevelMethod$2 = function($0, $1) { | 5327 Listener.prototype.endTopLevelMethod$2 = function($0, $1) { |
5328 return this.endTopLevelMethod(($0 && $0.is$Token()), ($1 && $1.is$Token())); | 5328 return this.endTopLevelMethod(($0 && $0.is$scanner_Token()), ($1 && $1.is$scan
ner_Token())); |
5329 }; | 5329 }; |
5330 Listener.prototype.endType$3 = function($0, $1, $2) { | 5330 Listener.prototype.endType$3 = function($0, $1, $2) { |
5331 return this.endType($assert_num($0), ($1 && $1.is$Token()), ($2 && $2.is$Token
())); | 5331 return this.endType($assert_num($0), ($1 && $1.is$scanner_Token()), ($2 && $2.
is$scanner_Token())); |
5332 }; | 5332 }; |
5333 Listener.prototype.endTypeArguments$3 = function($0, $1, $2) { | 5333 Listener.prototype.endTypeArguments$3 = function($0, $1, $2) { |
5334 return this.endTypeArguments($assert_num($0), ($1 && $1.is$Token()), ($2 && $2
.is$Token())); | 5334 return this.endTypeArguments($assert_num($0), ($1 && $1.is$scanner_Token()), (
$2 && $2.is$scanner_Token())); |
5335 }; | 5335 }; |
5336 Listener.prototype.endTypeVariable$1 = function($0) { | 5336 Listener.prototype.endTypeVariable$1 = function($0) { |
5337 return this.endTypeVariable(($0 && $0.is$Token())); | 5337 return this.endTypeVariable(($0 && $0.is$scanner_Token())); |
5338 }; | 5338 }; |
5339 Listener.prototype.endTypeVariables$3 = function($0, $1, $2) { | 5339 Listener.prototype.endTypeVariables$3 = function($0, $1, $2) { |
5340 return this.endTypeVariables($assert_num($0), ($1 && $1.is$Token()), ($2 && $2
.is$Token())); | 5340 return this.endTypeVariables($assert_num($0), ($1 && $1.is$scanner_Token()), (
$2 && $2.is$scanner_Token())); |
5341 }; | 5341 }; |
5342 Listener.prototype.endVariablesDeclaration$2 = function($0, $1) { | 5342 Listener.prototype.endVariablesDeclaration$2 = function($0, $1) { |
5343 return this.endVariablesDeclaration($assert_num($0), ($1 && $1.is$Token())); | 5343 return this.endVariablesDeclaration($assert_num($0), ($1 && $1.is$scanner_Toke
n())); |
5344 }; | 5344 }; |
5345 Listener.prototype.expected$2 = function($0, $1) { | 5345 Listener.prototype.expected$2 = function($0, $1) { |
5346 return this.expected($assert_String($0), ($1 && $1.is$Token())); | 5346 return this.expected($assert_String($0), ($1 && $1.is$scanner_Token())); |
5347 }; | 5347 }; |
5348 Listener.prototype.expectedBlock$1 = function($0) { | 5348 Listener.prototype.expectedBlock$1 = function($0) { |
5349 return this.expectedBlock(($0 && $0.is$Token())); | 5349 return this.expectedBlock(($0 && $0.is$scanner_Token())); |
5350 }; | 5350 }; |
5351 Listener.prototype.expectedIdentifier$1 = function($0) { | 5351 Listener.prototype.expectedIdentifier$1 = function($0) { |
5352 return this.expectedIdentifier(($0 && $0.is$Token())); | 5352 return this.expectedIdentifier(($0 && $0.is$scanner_Token())); |
5353 }; | 5353 }; |
5354 Listener.prototype.expectedType$1 = function($0) { | 5354 Listener.prototype.expectedType$1 = function($0) { |
5355 return this.expectedType(($0 && $0.is$Token())); | 5355 return this.expectedType(($0 && $0.is$scanner_Token())); |
5356 }; | 5356 }; |
5357 Listener.prototype.handleAssignmentExpression$1 = function($0) { | 5357 Listener.prototype.handleAssignmentExpression$1 = function($0) { |
5358 return this.handleAssignmentExpression(($0 && $0.is$Token())); | 5358 return this.handleAssignmentExpression(($0 && $0.is$scanner_Token())); |
5359 }; | 5359 }; |
5360 Listener.prototype.handleBinaryExpression$1 = function($0) { | 5360 Listener.prototype.handleBinaryExpression$1 = function($0) { |
5361 return this.handleBinaryExpression(($0 && $0.is$Token())); | 5361 return this.handleBinaryExpression(($0 && $0.is$scanner_Token())); |
5362 }; | 5362 }; |
5363 Listener.prototype.handleConditionalExpression$2 = function($0, $1) { | 5363 Listener.prototype.handleConditionalExpression$2 = function($0, $1) { |
5364 return this.handleConditionalExpression(($0 && $0.is$Token()), ($1 && $1.is$To
ken())); | 5364 return this.handleConditionalExpression(($0 && $0.is$scanner_Token()), ($1 &&
$1.is$scanner_Token())); |
5365 }; | 5365 }; |
5366 Listener.prototype.handleIdentifier$1 = function($0) { | 5366 Listener.prototype.handleIdentifier$1 = function($0) { |
5367 return this.handleIdentifier(($0 && $0.is$Token())); | 5367 return this.handleIdentifier(($0 && $0.is$scanner_Token())); |
5368 }; | 5368 }; |
5369 Listener.prototype.handleLiteralBool$1 = function($0) { | 5369 Listener.prototype.handleLiteralBool$1 = function($0) { |
5370 return this.handleLiteralBool(($0 && $0.is$Token())); | 5370 return this.handleLiteralBool(($0 && $0.is$scanner_Token())); |
5371 }; | 5371 }; |
5372 Listener.prototype.handleLiteralDouble$1 = function($0) { | 5372 Listener.prototype.handleLiteralDouble$1 = function($0) { |
5373 return this.handleLiteralDouble(($0 && $0.is$Token())); | 5373 return this.handleLiteralDouble(($0 && $0.is$scanner_Token())); |
5374 }; | 5374 }; |
5375 Listener.prototype.handleLiteralInt$1 = function($0) { | 5375 Listener.prototype.handleLiteralInt$1 = function($0) { |
5376 return this.handleLiteralInt(($0 && $0.is$Token())); | 5376 return this.handleLiteralInt(($0 && $0.is$scanner_Token())); |
5377 }; | 5377 }; |
5378 Listener.prototype.handleLiteralString$1 = function($0) { | 5378 Listener.prototype.handleLiteralString$1 = function($0) { |
5379 return this.handleLiteralString(($0 && $0.is$Token())); | 5379 return this.handleLiteralString(($0 && $0.is$scanner_Token())); |
5380 }; | 5380 }; |
5381 Listener.prototype.handleNoArguments$1 = function($0) { | 5381 Listener.prototype.handleNoArguments$1 = function($0) { |
5382 return this.handleNoArguments(($0 && $0.is$Token())); | 5382 return this.handleNoArguments(($0 && $0.is$scanner_Token())); |
5383 }; | 5383 }; |
5384 Listener.prototype.handleNoType$1 = function($0) { | 5384 Listener.prototype.handleNoType$1 = function($0) { |
5385 return this.handleNoType(($0 && $0.is$Token())); | 5385 return this.handleNoType(($0 && $0.is$scanner_Token())); |
5386 }; | 5386 }; |
5387 Listener.prototype.handleNoTypeArguments$1 = function($0) { | 5387 Listener.prototype.handleNoTypeArguments$1 = function($0) { |
5388 return this.handleNoTypeArguments(($0 && $0.is$Token())); | 5388 return this.handleNoTypeArguments(($0 && $0.is$scanner_Token())); |
5389 }; | 5389 }; |
5390 Listener.prototype.handleNoTypeVariables$1 = function($0) { | 5390 Listener.prototype.handleNoTypeVariables$1 = function($0) { |
5391 return this.handleNoTypeVariables(($0 && $0.is$Token())); | 5391 return this.handleNoTypeVariables(($0 && $0.is$scanner_Token())); |
5392 }; | 5392 }; |
5393 Listener.prototype.handleUnaryPostfixExpression$1 = function($0) { | 5393 Listener.prototype.handleUnaryPostfixExpression$1 = function($0) { |
5394 return this.handleUnaryPostfixExpression(($0 && $0.is$Token())); | 5394 return this.handleUnaryPostfixExpression(($0 && $0.is$scanner_Token())); |
5395 }; | 5395 }; |
5396 Listener.prototype.handleUnaryPrefixExpression$1 = function($0) { | 5396 Listener.prototype.handleUnaryPrefixExpression$1 = function($0) { |
5397 return this.handleUnaryPrefixExpression(($0 && $0.is$Token())); | 5397 return this.handleUnaryPrefixExpression(($0 && $0.is$scanner_Token())); |
5398 }; | 5398 }; |
5399 Listener.prototype.handleVarKeyword$1 = function($0) { | 5399 Listener.prototype.handleVarKeyword$1 = function($0) { |
5400 return this.handleVarKeyword(($0 && $0.is$Token())); | 5400 return this.handleVarKeyword(($0 && $0.is$scanner_Token())); |
5401 }; | 5401 }; |
5402 Listener.prototype.handleVoidKeyword$1 = function($0) { | 5402 Listener.prototype.handleVoidKeyword$1 = function($0) { |
5403 return this.handleVoidKeyword(($0 && $0.is$Token())); | 5403 return this.handleVoidKeyword(($0 && $0.is$scanner_Token())); |
5404 }; | 5404 }; |
5405 Listener.prototype.unexpected$1 = function($0) { | 5405 Listener.prototype.unexpected$1 = function($0) { |
5406 return this.unexpected(($0 && $0.is$Token())); | 5406 return this.unexpected(($0 && $0.is$scanner_Token())); |
5407 }; | 5407 }; |
5408 Listener.prototype.unexpectedEof$0 = function() { | 5408 Listener.prototype.unexpectedEof$0 = function() { |
5409 return this.unexpectedEof(); | 5409 return this.unexpectedEof(); |
5410 }; | 5410 }; |
5411 // ********** Code for ParserError ************** | 5411 // ********** Code for ParserError ************** |
5412 function ParserError(reason) { | 5412 function ParserError(reason) { |
5413 this.reason = reason; | 5413 this.reason = reason; |
5414 // Initializers done | 5414 // Initializers done |
5415 } | 5415 } |
5416 ParserError.prototype.toString = function() { | 5416 ParserError.prototype.toString = function() { |
(...skipping 13 matching lines...) Expand all Loading... |
5430 } | 5430 } |
5431 $inherits(ElementListener, Listener); | 5431 $inherits(ElementListener, Listener); |
5432 ElementListener.prototype.beginLibraryTag = function(token) { | 5432 ElementListener.prototype.beginLibraryTag = function(token) { |
5433 this.canceler.cancel("Cannot handle library tags"); | 5433 this.canceler.cancel("Cannot handle library tags"); |
5434 } | 5434 } |
5435 ElementListener.prototype.endClass = function(interfacesCount, beginToken, exten
dsKeyword, implementsKeyword, endToken) { | 5435 ElementListener.prototype.endClass = function(interfacesCount, beginToken, exten
dsKeyword, implementsKeyword, endToken) { |
5436 var $0; | 5436 var $0; |
5437 for (; interfacesCount > 0; --interfacesCount) { | 5437 for (; interfacesCount > 0; --interfacesCount) { |
5438 this.popNode(); | 5438 this.popNode(); |
5439 } | 5439 } |
5440 var supertype = (($0 = this.popNode()) && $0.is$Identifier()); | 5440 var supertype = (($0 = this.popNode()) && $0.is$tree_Identifier()); |
5441 var name = (($0 = this.popNode()) && $0.is$Identifier()); | 5441 var name = (($0 = this.popNode()) && $0.is$tree_Identifier()); |
5442 this.pushElement(new PartialClassElement(name.get$source(), beginToken, endTok
en)); | 5442 this.pushElement(new PartialClassElement(name.get$source(), beginToken, endTok
en)); |
5443 } | 5443 } |
5444 ElementListener.prototype.endInterface = function(token) { | 5444 ElementListener.prototype.endInterface = function(token) { |
5445 this.canceler.cancel("Cannot handle interfaces"); | 5445 this.canceler.cancel("Cannot handle interfaces"); |
5446 } | 5446 } |
5447 ElementListener.prototype.endFunctionTypeAlias = function(token) { | 5447 ElementListener.prototype.endFunctionTypeAlias = function(token) { |
5448 this.canceler.cancel("Cannot handle typedefs"); | 5448 this.canceler.cancel("Cannot handle typedefs"); |
5449 } | 5449 } |
5450 ElementListener.prototype.endTopLevelMethod = function(beginToken, endToken) { | 5450 ElementListener.prototype.endTopLevelMethod = function(beginToken, endToken) { |
5451 var $0; | 5451 var $0; |
5452 var name = (($0 = this.popNode()) && $0.is$Identifier()); | 5452 var name = (($0 = this.popNode()) && $0.is$tree_Identifier()); |
5453 this.pushElement(new PartialFunctionElement(name.get$source(), beginToken, end
Token)); | 5453 this.pushElement(new PartialFunctionElement(name.get$source(), beginToken, end
Token)); |
5454 } | 5454 } |
5455 ElementListener.prototype.endTopLevelField = function(beginToken, endToken) { | 5455 ElementListener.prototype.endTopLevelField = function(beginToken, endToken) { |
5456 this.canceler.cancel("Cannot handle fields"); | 5456 this.canceler.cancel("Cannot handle fields"); |
5457 } | 5457 } |
5458 ElementListener.prototype.handleIdentifier = function(token) { | 5458 ElementListener.prototype.handleIdentifier = function(token) { |
5459 this.pushNode(new Identifier(token)); | 5459 this.pushNode(new tree_Identifier(token)); |
5460 } | 5460 } |
5461 ElementListener.prototype.handleNoType = function(token) { | 5461 ElementListener.prototype.handleNoType = function(token) { |
5462 this.pushNode(null); | 5462 this.pushNode(null); |
5463 } | 5463 } |
5464 ElementListener.prototype.endTypeVariable = function(token) { | 5464 ElementListener.prototype.endTypeVariable = function(token) { |
5465 var $0; | 5465 var $0; |
5466 var bound = (($0 = this.popNode()) && $0.is$TypeAnnotation()); | 5466 var bound = (($0 = this.popNode()) && $0.is$TypeAnnotation()); |
5467 var name = (($0 = this.popNode()) && $0.is$Identifier()); | 5467 var name = (($0 = this.popNode()) && $0.is$tree_Identifier()); |
5468 } | 5468 } |
5469 ElementListener.prototype.endTypeArguments = function(count, beginToken, endToke
n) { | 5469 ElementListener.prototype.endTypeArguments = function(count, beginToken, endToke
n) { |
5470 for (; count > 0; --count) { | 5470 for (; count > 0; --count) { |
5471 this.popNode(); | 5471 this.popNode(); |
5472 } | 5472 } |
5473 } | 5473 } |
5474 ElementListener.prototype.expected = function(string, token) { | 5474 ElementListener.prototype.expected = function(string, token) { |
5475 this.canceler.cancel(("Expected '" + string + "', but got '" + token + "' ") +
("@ " + token.charOffset + "")); | 5475 this.canceler.cancel(("Expected '" + string + "', but got '" + token + "' ") +
("@ " + token.charOffset + "")); |
5476 } | 5476 } |
5477 ElementListener.prototype.unexpectedEof = function() { | 5477 ElementListener.prototype.unexpectedEof = function() { |
(...skipping 16 matching lines...) Expand all Loading... |
5494 this.topLevelElements = (($0 = this.topLevelElements.prepend(element)) && $0.i
s$Link$Element()); | 5494 this.topLevelElements = (($0 = this.topLevelElements.prepend(element)) && $0.i
s$Link$Element()); |
5495 } | 5495 } |
5496 ElementListener.prototype.pushNode = function(node) { | 5496 ElementListener.prototype.pushNode = function(node) { |
5497 var $0; | 5497 var $0; |
5498 this.nodes = (($0 = this.nodes.prepend(node)) && $0.is$Link$Node()); | 5498 this.nodes = (($0 = this.nodes.prepend(node)) && $0.is$Link$Node()); |
5499 this.log(("push " + this.nodes + "")); | 5499 this.log(("push " + this.nodes + "")); |
5500 } | 5500 } |
5501 ElementListener.prototype.popNode = function() { | 5501 ElementListener.prototype.popNode = function() { |
5502 var $0; | 5502 var $0; |
5503 $assert(!$notnull_bool(this.nodes.isEmpty()), "!nodes.isEmpty()", "listener.da
rt", 343, 12); | 5503 $assert(!$notnull_bool(this.nodes.isEmpty()), "!nodes.isEmpty()", "listener.da
rt", 343, 12); |
5504 var node = (($0 = this.nodes.get$head()) && $0.is$Node()); | 5504 var node = (($0 = this.nodes.get$head()) && $0.is$tree_Node()); |
5505 this.nodes = (($0 = this.nodes.get$tail()) && $0.is$Link$Node()); | 5505 this.nodes = (($0 = this.nodes.get$tail()) && $0.is$Link$Node()); |
5506 this.log(("pop " + this.nodes + "")); | 5506 this.log(("pop " + this.nodes + "")); |
5507 return node; | 5507 return node; |
5508 } | 5508 } |
5509 ElementListener.prototype.log = function(message) { | 5509 ElementListener.prototype.log = function(message) { |
5510 | 5510 |
5511 } | 5511 } |
5512 ElementListener.prototype.beginLibraryTag$1 = function($0) { | 5512 ElementListener.prototype.beginLibraryTag$1 = function($0) { |
5513 return this.beginLibraryTag(($0 && $0.is$Token())); | 5513 return this.beginLibraryTag(($0 && $0.is$scanner_Token())); |
5514 }; | 5514 }; |
5515 ElementListener.prototype.endClass$5 = function($0, $1, $2, $3, $4) { | 5515 ElementListener.prototype.endClass$5 = function($0, $1, $2, $3, $4) { |
5516 return this.endClass($assert_num($0), ($1 && $1.is$Token()), ($2 && $2.is$Toke
n()), ($3 && $3.is$Token()), ($4 && $4.is$Token())); | 5516 return this.endClass($assert_num($0), ($1 && $1.is$scanner_Token()), ($2 && $2
.is$scanner_Token()), ($3 && $3.is$scanner_Token()), ($4 && $4.is$scanner_Token(
))); |
5517 }; | 5517 }; |
5518 ElementListener.prototype.endFunctionTypeAlias$1 = function($0) { | 5518 ElementListener.prototype.endFunctionTypeAlias$1 = function($0) { |
5519 return this.endFunctionTypeAlias(($0 && $0.is$Token())); | 5519 return this.endFunctionTypeAlias(($0 && $0.is$scanner_Token())); |
5520 }; | 5520 }; |
5521 ElementListener.prototype.endInterface$1 = function($0) { | 5521 ElementListener.prototype.endInterface$1 = function($0) { |
5522 return this.endInterface(($0 && $0.is$Token())); | 5522 return this.endInterface(($0 && $0.is$scanner_Token())); |
5523 }; | 5523 }; |
5524 ElementListener.prototype.endTopLevelField$2 = function($0, $1) { | 5524 ElementListener.prototype.endTopLevelField$2 = function($0, $1) { |
5525 return this.endTopLevelField(($0 && $0.is$Token()), ($1 && $1.is$Token())); | 5525 return this.endTopLevelField(($0 && $0.is$scanner_Token()), ($1 && $1.is$scann
er_Token())); |
5526 }; | 5526 }; |
5527 ElementListener.prototype.endTopLevelMethod$2 = function($0, $1) { | 5527 ElementListener.prototype.endTopLevelMethod$2 = function($0, $1) { |
5528 return this.endTopLevelMethod(($0 && $0.is$Token()), ($1 && $1.is$Token())); | 5528 return this.endTopLevelMethod(($0 && $0.is$scanner_Token()), ($1 && $1.is$scan
ner_Token())); |
5529 }; | 5529 }; |
5530 ElementListener.prototype.endTypeArguments$3 = function($0, $1, $2) { | 5530 ElementListener.prototype.endTypeArguments$3 = function($0, $1, $2) { |
5531 return this.endTypeArguments($assert_num($0), ($1 && $1.is$Token()), ($2 && $2
.is$Token())); | 5531 return this.endTypeArguments($assert_num($0), ($1 && $1.is$scanner_Token()), (
$2 && $2.is$scanner_Token())); |
5532 }; | 5532 }; |
5533 ElementListener.prototype.endTypeVariable$1 = function($0) { | 5533 ElementListener.prototype.endTypeVariable$1 = function($0) { |
5534 return this.endTypeVariable(($0 && $0.is$Token())); | 5534 return this.endTypeVariable(($0 && $0.is$scanner_Token())); |
5535 }; | 5535 }; |
5536 ElementListener.prototype.expected$2 = function($0, $1) { | 5536 ElementListener.prototype.expected$2 = function($0, $1) { |
5537 return this.expected($assert_String($0), ($1 && $1.is$Token())); | 5537 return this.expected($assert_String($0), ($1 && $1.is$scanner_Token())); |
5538 }; | 5538 }; |
5539 ElementListener.prototype.expectedBlock$1 = function($0) { | 5539 ElementListener.prototype.expectedBlock$1 = function($0) { |
5540 return this.expectedBlock(($0 && $0.is$Token())); | 5540 return this.expectedBlock(($0 && $0.is$scanner_Token())); |
5541 }; | 5541 }; |
5542 ElementListener.prototype.expectedIdentifier$1 = function($0) { | 5542 ElementListener.prototype.expectedIdentifier$1 = function($0) { |
5543 return this.expectedIdentifier(($0 && $0.is$Token())); | 5543 return this.expectedIdentifier(($0 && $0.is$scanner_Token())); |
5544 }; | 5544 }; |
5545 ElementListener.prototype.expectedType$1 = function($0) { | 5545 ElementListener.prototype.expectedType$1 = function($0) { |
5546 return this.expectedType(($0 && $0.is$Token())); | 5546 return this.expectedType(($0 && $0.is$scanner_Token())); |
5547 }; | 5547 }; |
5548 ElementListener.prototype.handleIdentifier$1 = function($0) { | 5548 ElementListener.prototype.handleIdentifier$1 = function($0) { |
5549 return this.handleIdentifier(($0 && $0.is$Token())); | 5549 return this.handleIdentifier(($0 && $0.is$scanner_Token())); |
5550 }; | 5550 }; |
5551 ElementListener.prototype.handleNoType$1 = function($0) { | 5551 ElementListener.prototype.handleNoType$1 = function($0) { |
5552 return this.handleNoType(($0 && $0.is$Token())); | 5552 return this.handleNoType(($0 && $0.is$scanner_Token())); |
5553 }; | 5553 }; |
5554 ElementListener.prototype.unexpected$1 = function($0) { | 5554 ElementListener.prototype.unexpected$1 = function($0) { |
5555 return this.unexpected(($0 && $0.is$Token())); | 5555 return this.unexpected(($0 && $0.is$scanner_Token())); |
5556 }; | 5556 }; |
5557 ElementListener.prototype.unexpectedEof$0 = function() { | 5557 ElementListener.prototype.unexpectedEof$0 = function() { |
5558 return this.unexpectedEof(); | 5558 return this.unexpectedEof(); |
5559 }; | 5559 }; |
5560 // ********** Code for NodeListener ************** | 5560 // ********** Code for NodeListener ************** |
5561 function NodeListener(canceler, logger) { | 5561 function NodeListener(canceler, logger) { |
5562 this.logger = logger; | 5562 this.logger = logger; |
5563 // Initializers done | 5563 // Initializers done |
5564 ElementListener.call(this, canceler); | 5564 ElementListener.call(this, canceler); |
5565 this.onError = this.get$handleOnError(); | 5565 this.onError = this.get$handleOnError(); |
5566 } | 5566 } |
5567 $inherits(NodeListener, ElementListener); | 5567 $inherits(NodeListener, ElementListener); |
5568 NodeListener.prototype.endClass = function(interfacesCount, beginToken, extendsK
eyword, implementsKeyword, endToken) { | 5568 NodeListener.prototype.endClass = function(interfacesCount, beginToken, extendsK
eyword, implementsKeyword, endToken) { |
5569 var $0; | 5569 var $0; |
5570 var interfaces = this.makeNodeList(interfacesCount, implementsKeyword, null, "
,"); | 5570 var interfaces = this.makeNodeList(interfacesCount, implementsKeyword, null, "
,"); |
5571 var supertype = (($0 = this.popNode()) && $0.is$TypeAnnotation()); | 5571 var supertype = (($0 = this.popNode()) && $0.is$TypeAnnotation()); |
5572 var name = (($0 = this.popNode()) && $0.is$Identifier()); | 5572 var name = (($0 = this.popNode()) && $0.is$tree_Identifier()); |
5573 this.pushNode(new ClassNode(name, supertype, interfaces, beginToken, extendsKe
yword, endToken)); | 5573 this.pushNode(new ClassNode(name, supertype, interfaces, beginToken, extendsKe
yword, endToken)); |
5574 } | 5574 } |
5575 NodeListener.prototype.endFormalParameter = function(token) { | 5575 NodeListener.prototype.endFormalParameter = function(token) { |
5576 var $0; | 5576 var $0; |
5577 var name = new NodeList.singleton$ctor(this.popNode()); | 5577 var name = new NodeList.singleton$ctor(this.popNode()); |
5578 var type = (($0 = this.popNode()) && $0.is$TypeAnnotation()); | 5578 var type = (($0 = this.popNode()) && $0.is$TypeAnnotation()); |
5579 this.pushNode(new VariableDefinitions(type, null, name, token)); | 5579 this.pushNode(new VariableDefinitions(type, null, name, token)); |
5580 } | 5580 } |
5581 NodeListener.prototype.endFormalParameters = function(count, beginToken, endToke
n) { | 5581 NodeListener.prototype.endFormalParameters = function(count, beginToken, endToke
n) { |
5582 this.pushNode(this.makeNodeList(count, beginToken, endToken, ",")); | 5582 this.pushNode(this.makeNodeList(count, beginToken, endToken, ",")); |
5583 } | 5583 } |
5584 NodeListener.prototype.endArguments = function(count, beginToken, endToken) { | 5584 NodeListener.prototype.endArguments = function(count, beginToken, endToken) { |
5585 this.pushNode(this.makeNodeList(count, beginToken, endToken, ",")); | 5585 this.pushNode(this.makeNodeList(count, beginToken, endToken, ",")); |
5586 } | 5586 } |
5587 NodeListener.prototype.handleNoArguments = function(token) { | 5587 NodeListener.prototype.handleNoArguments = function(token) { |
5588 this.pushNode(null); | 5588 this.pushNode(null); |
5589 } | 5589 } |
5590 NodeListener.prototype.endReturnStatement = function(hasExpression, beginToken,
endToken) { | 5590 NodeListener.prototype.endReturnStatement = function(hasExpression, beginToken,
endToken) { |
5591 var $0; | 5591 var $0; |
5592 var expression = (($0 = $notnull_bool(hasExpression) ? this.popNode() : null)
&& $0.is$Expression()); | 5592 var expression = (($0 = $notnull_bool(hasExpression) ? this.popNode() : null)
&& $0.is$tree_Expression()); |
5593 this.pushNode(new Return(beginToken, endToken, expression)); | 5593 this.pushNode(new Return(beginToken, endToken, expression)); |
5594 } | 5594 } |
5595 NodeListener.prototype.endExpressionStatement = function(token) { | 5595 NodeListener.prototype.endExpressionStatement = function(token) { |
5596 this.pushNode(new ExpressionStatement(this.popNode(), token)); | 5596 this.pushNode(new tree_ExpressionStatement(this.popNode(), token)); |
5597 } | 5597 } |
5598 NodeListener.prototype.handleOnError = function(token, error) { | 5598 NodeListener.prototype.handleOnError = function(token, error) { |
5599 this.canceler.cancel(("internal error @ " + token.charOffset + ": '" + token.g
et$value() + "'") + (": " + error + "")); | 5599 this.canceler.cancel(("internal error @ " + token.charOffset + ": '" + token.g
et$value() + "'") + (": " + error + "")); |
5600 } | 5600 } |
5601 NodeListener.prototype.get$handleOnError = function() { | 5601 NodeListener.prototype.get$handleOnError = function() { |
5602 return NodeListener.prototype.handleOnError.bind(this); | 5602 return NodeListener.prototype.handleOnError.bind(this); |
5603 } | 5603 } |
5604 NodeListener.prototype.handleLiteralInt = function(token) { | 5604 NodeListener.prototype.handleLiteralInt = function(token) { |
5605 this.pushNode(new LiteralInt(token, to$call$2(this.onError))); | 5605 this.pushNode(new LiteralInt(token, to$call$2(this.onError))); |
5606 } | 5606 } |
(...skipping 25 matching lines...) Expand all Loading... |
5632 var condition = this.popNode(); | 5632 var condition = this.popNode(); |
5633 this.canceler.cancel('conditional expression not implemented yet'); | 5633 this.canceler.cancel('conditional expression not implemented yet'); |
5634 } | 5634 } |
5635 NodeListener.prototype.endSend = function(token) { | 5635 NodeListener.prototype.endSend = function(token) { |
5636 var $0; | 5636 var $0; |
5637 var arguments = (($0 = this.popNode()) && $0.is$NodeList()); | 5637 var arguments = (($0 = this.popNode()) && $0.is$NodeList()); |
5638 var selector = this.popNode(); | 5638 var selector = this.popNode(); |
5639 this.pushNode(new Send(null, selector, arguments)); | 5639 this.pushNode(new Send(null, selector, arguments)); |
5640 } | 5640 } |
5641 NodeListener.prototype.handleVoidKeyword = function(token) { | 5641 NodeListener.prototype.handleVoidKeyword = function(token) { |
5642 this.pushNode(new TypeAnnotation(new Identifier(token))); | 5642 this.pushNode(new TypeAnnotation(new tree_Identifier(token))); |
5643 } | 5643 } |
5644 NodeListener.prototype.endFunctionBody = function(count, beginToken, endToken) { | 5644 NodeListener.prototype.endFunctionBody = function(count, beginToken, endToken) { |
5645 var $0; | 5645 var $0; |
5646 var block = new Block(this.makeNodeList(count, beginToken, endToken, null)); | 5646 var block = new Block(this.makeNodeList(count, beginToken, endToken, null)); |
5647 var formals = this.popNode(); | 5647 var formals = this.popNode(); |
5648 var name = this.popNode(); | 5648 var name = this.popNode(); |
5649 var type = (($0 = this.popNode()) && $0.is$TypeAnnotation()); | 5649 var type = (($0 = this.popNode()) && $0.is$TypeAnnotation()); |
5650 this.pushNode(new FunctionExpression(name, formals, block, type)); | 5650 this.pushNode(new FunctionExpression(name, formals, block, type)); |
5651 } | 5651 } |
5652 NodeListener.prototype.handleVarKeyword = function(token) { | 5652 NodeListener.prototype.handleVarKeyword = function(token) { |
5653 this.pushNode(new Identifier(token)); | 5653 this.pushNode(new tree_Identifier(token)); |
5654 } | 5654 } |
5655 NodeListener.prototype.handleFinalKeyword = function(token) { | 5655 NodeListener.prototype.handleFinalKeyword = function(token) { |
5656 this.pushNode(new Identifier(token)); | 5656 this.pushNode(new tree_Identifier(token)); |
5657 } | 5657 } |
5658 NodeListener.prototype.endVariablesDeclaration = function(count, endToken) { | 5658 NodeListener.prototype.endVariablesDeclaration = function(count, endToken) { |
5659 var $0; | 5659 var $0; |
5660 var variables = this.makeNodeList(count, null, null, ","); | 5660 var variables = this.makeNodeList(count, null, null, ","); |
5661 var type = (($0 = this.popNode()) && $0.is$TypeAnnotation()); | 5661 var type = (($0 = this.popNode()) && $0.is$TypeAnnotation()); |
5662 this.pushNode(new VariableDefinitions(type, null, variables, endToken)); | 5662 this.pushNode(new VariableDefinitions(type, null, variables, endToken)); |
5663 } | 5663 } |
5664 NodeListener.prototype.endInitializer = function(assignmentOperator) { | 5664 NodeListener.prototype.endInitializer = function(assignmentOperator) { |
5665 var $0; | 5665 var $0; |
5666 var initializer = (($0 = this.popNode()) && $0.is$Expression()); | 5666 var initializer = (($0 = this.popNode()) && $0.is$tree_Expression()); |
5667 var arguments = new NodeList.singleton$ctor(initializer); | 5667 var arguments = new NodeList.singleton$ctor(initializer); |
5668 var name = (($0 = this.popNode()) && $0.is$Expression()); | 5668 var name = (($0 = this.popNode()) && $0.is$tree_Expression()); |
5669 this.pushNode(new SendSet(null, name, assignmentOperator, arguments)); | 5669 this.pushNode(new SendSet(null, name, assignmentOperator, arguments)); |
5670 } | 5670 } |
5671 NodeListener.prototype.endIfStatement = function(ifToken, elseToken) { | 5671 NodeListener.prototype.endIfStatement = function(ifToken, elseToken) { |
5672 var $0; | 5672 var $0; |
5673 var elsePart = (($0 = (elseToken == null) ? null : this.popNode()) && $0.is$St
atement()); | 5673 var elsePart = (($0 = (elseToken == null) ? null : this.popNode()) && $0.is$tr
ee_Statement()); |
5674 var thenPart = (($0 = this.popNode()) && $0.is$Statement()); | 5674 var thenPart = (($0 = this.popNode()) && $0.is$tree_Statement()); |
5675 var condition = (($0 = this.popNode()) && $0.is$NodeList()); | 5675 var condition = (($0 = this.popNode()) && $0.is$NodeList()); |
5676 this.pushNode(new If(condition, thenPart, elsePart, ifToken, elseToken)); | 5676 this.pushNode(new If(condition, thenPart, elsePart, ifToken, elseToken)); |
5677 } | 5677 } |
5678 NodeListener.prototype.endForStatement = function(beginToken, endToken) { | 5678 NodeListener.prototype.endForStatement = function(beginToken, endToken) { |
5679 var $0; | 5679 var $0; |
5680 var body = (($0 = this.popNode()) && $0.is$Statement()); | 5680 var body = (($0 = this.popNode()) && $0.is$tree_Statement()); |
5681 var update = (($0 = this.popNode()) && $0.is$Expression()); | 5681 var update = (($0 = this.popNode()) && $0.is$tree_Expression()); |
5682 var condition = (($0 = this.popNode()) && $0.is$ExpressionStatement()); | 5682 var condition = (($0 = this.popNode()) && $0.is$tree_ExpressionStatement()); |
5683 var initializer = (($0 = this.popNode()) && $0.is$VariableDefinitions()); | 5683 var initializer = (($0 = this.popNode()) && $0.is$VariableDefinitions()); |
5684 this.pushNode(new For(initializer, condition, update, body, beginToken)); | 5684 this.pushNode(new For(initializer, condition, update, body, beginToken)); |
5685 } | 5685 } |
5686 NodeListener.prototype.endBlock = function(count, beginToken, endToken) { | 5686 NodeListener.prototype.endBlock = function(count, beginToken, endToken) { |
5687 this.pushNode(new Block(this.makeNodeList(count, beginToken, endToken, null)))
; | 5687 this.pushNode(new Block(this.makeNodeList(count, beginToken, endToken, null)))
; |
5688 } | 5688 } |
5689 NodeListener.prototype.endType = function(count, beginToken, endToken) { | 5689 NodeListener.prototype.endType = function(count, beginToken, endToken) { |
5690 var $0; | 5690 var $0; |
5691 var type = new TypeAnnotation((($0 = this.popNode()) && $0.is$Identifier())); | 5691 var type = new TypeAnnotation((($0 = this.popNode()) && $0.is$tree_Identifier(
))); |
5692 for (; count > 1; --count) { | 5692 for (; count > 1; --count) { |
5693 this.popNode(); | 5693 this.popNode(); |
5694 } | 5694 } |
5695 this.pushNode(type); | 5695 this.pushNode(type); |
5696 } | 5696 } |
5697 NodeListener.prototype.endThrowStatement = function(throwToken, endToken) { | 5697 NodeListener.prototype.endThrowStatement = function(throwToken, endToken) { |
5698 var $0; | 5698 var $0; |
5699 var expression = (($0 = this.popNode()) && $0.is$Expression()); | 5699 var expression = (($0 = this.popNode()) && $0.is$tree_Expression()); |
5700 this.pushNode(new Throw(expression, throwToken, endToken)); | 5700 this.pushNode(new Throw(expression, throwToken, endToken)); |
5701 } | 5701 } |
5702 NodeListener.prototype.endRethrowStatement = function(throwToken, endToken) { | 5702 NodeListener.prototype.endRethrowStatement = function(throwToken, endToken) { |
5703 this.pushNode(new Throw(null, throwToken, endToken)); | 5703 this.pushNode(new Throw(null, throwToken, endToken)); |
5704 } | 5704 } |
5705 NodeListener.prototype.handleUnaryPostfixExpression = function(token) { | 5705 NodeListener.prototype.handleUnaryPostfixExpression = function(token) { |
5706 this.pushNode(new Send.postfix$ctor(this.popNode(), new Operator(token))); | 5706 this.pushNode(new Send.postfix$ctor(this.popNode(), new Operator(token))); |
5707 } | 5707 } |
5708 NodeListener.prototype.handleUnaryPrefixExpression = function(token) { | 5708 NodeListener.prototype.handleUnaryPrefixExpression = function(token) { |
5709 this.pushNode(new Send.prefix$ctor(this.popNode(), new Operator(token))); | 5709 this.pushNode(new Send.prefix$ctor(this.popNode(), new Operator(token))); |
5710 } | 5710 } |
5711 NodeListener.prototype.makeNodeList = function(count, beginToken, endToken, deli
miter) { | 5711 NodeListener.prototype.makeNodeList = function(count, beginToken, endToken, deli
miter) { |
5712 var $0; | 5712 var $0; |
5713 var nodes = const$14/*const EmptyLink()*/; | 5713 var nodes = const$14/*const EmptyLink()*/; |
5714 for (; count > 0; --count) { | 5714 for (; count > 0; --count) { |
5715 nodes = (($0 = nodes.prepend(this.popNode())) && $0.is$Link$Node()); | 5715 nodes = (($0 = nodes.prepend(this.popNode())) && $0.is$Link$Node()); |
5716 } | 5716 } |
5717 var sourceDelimiter = (($0 = (delimiter == null) ? null : new StringWrapper(de
limiter)) && $0.is$SourceString()); | 5717 var sourceDelimiter = (($0 = (delimiter == null) ? null : new StringWrapper(de
limiter)) && $0.is$SourceString()); |
5718 return new NodeList(beginToken, nodes, endToken, sourceDelimiter); | 5718 return new NodeList(beginToken, nodes, endToken, sourceDelimiter); |
5719 } | 5719 } |
5720 NodeListener.prototype.log = function(message) { | 5720 NodeListener.prototype.log = function(message) { |
5721 this.logger.log(message); | 5721 this.logger.log(message); |
5722 } | 5722 } |
5723 NodeListener.prototype.endArguments$3 = function($0, $1, $2) { | 5723 NodeListener.prototype.endArguments$3 = function($0, $1, $2) { |
5724 return this.endArguments($assert_num($0), ($1 && $1.is$Token()), ($2 && $2.is$
Token())); | 5724 return this.endArguments($assert_num($0), ($1 && $1.is$scanner_Token()), ($2 &
& $2.is$scanner_Token())); |
5725 }; | 5725 }; |
5726 NodeListener.prototype.endBlock$3 = function($0, $1, $2) { | 5726 NodeListener.prototype.endBlock$3 = function($0, $1, $2) { |
5727 return this.endBlock($assert_num($0), ($1 && $1.is$Token()), ($2 && $2.is$Toke
n())); | 5727 return this.endBlock($assert_num($0), ($1 && $1.is$scanner_Token()), ($2 && $2
.is$scanner_Token())); |
5728 }; | 5728 }; |
5729 NodeListener.prototype.endClass$5 = function($0, $1, $2, $3, $4) { | 5729 NodeListener.prototype.endClass$5 = function($0, $1, $2, $3, $4) { |
5730 return this.endClass($assert_num($0), ($1 && $1.is$Token()), ($2 && $2.is$Toke
n()), ($3 && $3.is$Token()), ($4 && $4.is$Token())); | 5730 return this.endClass($assert_num($0), ($1 && $1.is$scanner_Token()), ($2 && $2
.is$scanner_Token()), ($3 && $3.is$scanner_Token()), ($4 && $4.is$scanner_Token(
))); |
5731 }; | 5731 }; |
5732 NodeListener.prototype.endExpressionStatement$1 = function($0) { | 5732 NodeListener.prototype.endExpressionStatement$1 = function($0) { |
5733 return this.endExpressionStatement(($0 && $0.is$Token())); | 5733 return this.endExpressionStatement(($0 && $0.is$scanner_Token())); |
5734 }; | 5734 }; |
5735 NodeListener.prototype.endForStatement$2 = function($0, $1) { | 5735 NodeListener.prototype.endForStatement$2 = function($0, $1) { |
5736 return this.endForStatement(($0 && $0.is$Token()), ($1 && $1.is$Token())); | 5736 return this.endForStatement(($0 && $0.is$scanner_Token()), ($1 && $1.is$scanne
r_Token())); |
5737 }; | 5737 }; |
5738 NodeListener.prototype.endFormalParameter$1 = function($0) { | 5738 NodeListener.prototype.endFormalParameter$1 = function($0) { |
5739 return this.endFormalParameter(($0 && $0.is$Token())); | 5739 return this.endFormalParameter(($0 && $0.is$scanner_Token())); |
5740 }; | 5740 }; |
5741 NodeListener.prototype.endFormalParameters$3 = function($0, $1, $2) { | 5741 NodeListener.prototype.endFormalParameters$3 = function($0, $1, $2) { |
5742 return this.endFormalParameters($assert_num($0), ($1 && $1.is$Token()), ($2 &&
$2.is$Token())); | 5742 return this.endFormalParameters($assert_num($0), ($1 && $1.is$scanner_Token())
, ($2 && $2.is$scanner_Token())); |
5743 }; | 5743 }; |
5744 NodeListener.prototype.endFunctionBody$3 = function($0, $1, $2) { | 5744 NodeListener.prototype.endFunctionBody$3 = function($0, $1, $2) { |
5745 return this.endFunctionBody($assert_num($0), ($1 && $1.is$Token()), ($2 && $2.
is$Token())); | 5745 return this.endFunctionBody($assert_num($0), ($1 && $1.is$scanner_Token()), ($
2 && $2.is$scanner_Token())); |
5746 }; | 5746 }; |
5747 NodeListener.prototype.endIfStatement$2 = function($0, $1) { | 5747 NodeListener.prototype.endIfStatement$2 = function($0, $1) { |
5748 return this.endIfStatement(($0 && $0.is$Token()), ($1 && $1.is$Token())); | 5748 return this.endIfStatement(($0 && $0.is$scanner_Token()), ($1 && $1.is$scanner
_Token())); |
5749 }; | 5749 }; |
5750 NodeListener.prototype.endInitializer$1 = function($0) { | 5750 NodeListener.prototype.endInitializer$1 = function($0) { |
5751 return this.endInitializer(($0 && $0.is$Token())); | 5751 return this.endInitializer(($0 && $0.is$scanner_Token())); |
5752 }; | 5752 }; |
5753 NodeListener.prototype.endRethrowStatement$2 = function($0, $1) { | 5753 NodeListener.prototype.endRethrowStatement$2 = function($0, $1) { |
5754 return this.endRethrowStatement(($0 && $0.is$Token()), ($1 && $1.is$Token())); | 5754 return this.endRethrowStatement(($0 && $0.is$scanner_Token()), ($1 && $1.is$sc
anner_Token())); |
5755 }; | 5755 }; |
5756 NodeListener.prototype.endReturnStatement$3 = function($0, $1, $2) { | 5756 NodeListener.prototype.endReturnStatement$3 = function($0, $1, $2) { |
5757 return this.endReturnStatement($assert_bool($0), ($1 && $1.is$Token()), ($2 &&
$2.is$Token())); | 5757 return this.endReturnStatement($assert_bool($0), ($1 && $1.is$scanner_Token())
, ($2 && $2.is$scanner_Token())); |
5758 }; | 5758 }; |
5759 NodeListener.prototype.endSend$1 = function($0) { | 5759 NodeListener.prototype.endSend$1 = function($0) { |
5760 return this.endSend(($0 && $0.is$Token())); | 5760 return this.endSend(($0 && $0.is$scanner_Token())); |
5761 }; | 5761 }; |
5762 NodeListener.prototype.endThrowStatement$2 = function($0, $1) { | 5762 NodeListener.prototype.endThrowStatement$2 = function($0, $1) { |
5763 return this.endThrowStatement(($0 && $0.is$Token()), ($1 && $1.is$Token())); | 5763 return this.endThrowStatement(($0 && $0.is$scanner_Token()), ($1 && $1.is$scan
ner_Token())); |
5764 }; | 5764 }; |
5765 NodeListener.prototype.endType$3 = function($0, $1, $2) { | 5765 NodeListener.prototype.endType$3 = function($0, $1, $2) { |
5766 return this.endType($assert_num($0), ($1 && $1.is$Token()), ($2 && $2.is$Token
())); | 5766 return this.endType($assert_num($0), ($1 && $1.is$scanner_Token()), ($2 && $2.
is$scanner_Token())); |
5767 }; | 5767 }; |
5768 NodeListener.prototype.endVariablesDeclaration$2 = function($0, $1) { | 5768 NodeListener.prototype.endVariablesDeclaration$2 = function($0, $1) { |
5769 return this.endVariablesDeclaration($assert_num($0), ($1 && $1.is$Token())); | 5769 return this.endVariablesDeclaration($assert_num($0), ($1 && $1.is$scanner_Toke
n())); |
5770 }; | 5770 }; |
5771 NodeListener.prototype.handleAssignmentExpression$1 = function($0) { | 5771 NodeListener.prototype.handleAssignmentExpression$1 = function($0) { |
5772 return this.handleAssignmentExpression(($0 && $0.is$Token())); | 5772 return this.handleAssignmentExpression(($0 && $0.is$scanner_Token())); |
5773 }; | 5773 }; |
5774 NodeListener.prototype.handleBinaryExpression$1 = function($0) { | 5774 NodeListener.prototype.handleBinaryExpression$1 = function($0) { |
5775 return this.handleBinaryExpression(($0 && $0.is$Token())); | 5775 return this.handleBinaryExpression(($0 && $0.is$scanner_Token())); |
5776 }; | 5776 }; |
5777 NodeListener.prototype.handleConditionalExpression$2 = function($0, $1) { | 5777 NodeListener.prototype.handleConditionalExpression$2 = function($0, $1) { |
5778 return this.handleConditionalExpression(($0 && $0.is$Token()), ($1 && $1.is$To
ken())); | 5778 return this.handleConditionalExpression(($0 && $0.is$scanner_Token()), ($1 &&
$1.is$scanner_Token())); |
5779 }; | 5779 }; |
5780 NodeListener.prototype.handleFinalKeyword$1 = function($0) { | 5780 NodeListener.prototype.handleFinalKeyword$1 = function($0) { |
5781 return this.handleFinalKeyword(($0 && $0.is$Token())); | 5781 return this.handleFinalKeyword(($0 && $0.is$scanner_Token())); |
5782 }; | 5782 }; |
5783 NodeListener.prototype.handleLiteralBool$1 = function($0) { | 5783 NodeListener.prototype.handleLiteralBool$1 = function($0) { |
5784 return this.handleLiteralBool(($0 && $0.is$Token())); | 5784 return this.handleLiteralBool(($0 && $0.is$scanner_Token())); |
5785 }; | 5785 }; |
5786 NodeListener.prototype.handleLiteralDouble$1 = function($0) { | 5786 NodeListener.prototype.handleLiteralDouble$1 = function($0) { |
5787 return this.handleLiteralDouble(($0 && $0.is$Token())); | 5787 return this.handleLiteralDouble(($0 && $0.is$scanner_Token())); |
5788 }; | 5788 }; |
5789 NodeListener.prototype.handleLiteralInt$1 = function($0) { | 5789 NodeListener.prototype.handleLiteralInt$1 = function($0) { |
5790 return this.handleLiteralInt(($0 && $0.is$Token())); | 5790 return this.handleLiteralInt(($0 && $0.is$scanner_Token())); |
5791 }; | 5791 }; |
5792 NodeListener.prototype.handleLiteralString$1 = function($0) { | 5792 NodeListener.prototype.handleLiteralString$1 = function($0) { |
5793 return this.handleLiteralString(($0 && $0.is$Token())); | 5793 return this.handleLiteralString(($0 && $0.is$scanner_Token())); |
5794 }; | 5794 }; |
5795 NodeListener.prototype.handleNoArguments$1 = function($0) { | 5795 NodeListener.prototype.handleNoArguments$1 = function($0) { |
5796 return this.handleNoArguments(($0 && $0.is$Token())); | 5796 return this.handleNoArguments(($0 && $0.is$scanner_Token())); |
5797 }; | 5797 }; |
5798 NodeListener.prototype.handleUnaryPostfixExpression$1 = function($0) { | 5798 NodeListener.prototype.handleUnaryPostfixExpression$1 = function($0) { |
5799 return this.handleUnaryPostfixExpression(($0 && $0.is$Token())); | 5799 return this.handleUnaryPostfixExpression(($0 && $0.is$scanner_Token())); |
5800 }; | 5800 }; |
5801 NodeListener.prototype.handleUnaryPrefixExpression$1 = function($0) { | 5801 NodeListener.prototype.handleUnaryPrefixExpression$1 = function($0) { |
5802 return this.handleUnaryPrefixExpression(($0 && $0.is$Token())); | 5802 return this.handleUnaryPrefixExpression(($0 && $0.is$scanner_Token())); |
5803 }; | 5803 }; |
5804 NodeListener.prototype.handleVarKeyword$1 = function($0) { | 5804 NodeListener.prototype.handleVarKeyword$1 = function($0) { |
5805 return this.handleVarKeyword(($0 && $0.is$Token())); | 5805 return this.handleVarKeyword(($0 && $0.is$scanner_Token())); |
5806 }; | 5806 }; |
5807 NodeListener.prototype.handleVoidKeyword$1 = function($0) { | 5807 NodeListener.prototype.handleVoidKeyword$1 = function($0) { |
5808 return this.handleVoidKeyword(($0 && $0.is$Token())); | 5808 return this.handleVoidKeyword(($0 && $0.is$scanner_Token())); |
5809 }; | 5809 }; |
5810 // ********** Code for PartialFunctionElement ************** | 5810 // ********** Code for PartialFunctionElement ************** |
5811 function PartialFunctionElement(name, beginToken, endToken) { | 5811 function PartialFunctionElement(name, beginToken, endToken) { |
5812 this.beginToken = beginToken; | 5812 this.beginToken = beginToken; |
5813 this.endToken = endToken; | 5813 this.endToken = endToken; |
5814 // Initializers done | 5814 // Initializers done |
5815 FunctionElement.call(this, name); | 5815 FunctionElement.call(this, name); |
5816 } | 5816 } |
5817 $inherits(PartialFunctionElement, FunctionElement); | 5817 $inherits(PartialFunctionElement, FunctionElement); |
5818 PartialFunctionElement.prototype.parseNode = function(canceler, logger) { | 5818 PartialFunctionElement.prototype.parseNode = function(canceler, logger) { |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5897 } | 5897 } |
5898 SubstringWrapper.prototype.hashCode$0 = function() { | 5898 SubstringWrapper.prototype.hashCode$0 = function() { |
5899 return this.hashCode(); | 5899 return this.hashCode(); |
5900 }; | 5900 }; |
5901 SubstringWrapper.prototype.printOn$1 = function($0) { | 5901 SubstringWrapper.prototype.printOn$1 = function($0) { |
5902 return this.printOn(($0 && $0.is$StringBuffer())); | 5902 return this.printOn(($0 && $0.is$StringBuffer())); |
5903 }; | 5903 }; |
5904 SubstringWrapper.prototype.toString$0 = function() { | 5904 SubstringWrapper.prototype.toString$0 = function() { |
5905 return this.toString(); | 5905 return this.toString(); |
5906 }; | 5906 }; |
5907 // ********** Code for Token ************** | 5907 // ********** Code for scanner_Token ************** |
5908 function Token(kind, charOffset) { | 5908 function scanner_Token(kind, charOffset) { |
5909 this.kind = kind; | 5909 this.kind = kind; |
5910 this.charOffset = charOffset; | 5910 this.charOffset = charOffset; |
5911 // Initializers done | 5911 // Initializers done |
5912 } | 5912 } |
5913 Token.prototype.is$Token = function(){return this;}; | 5913 scanner_Token.prototype.is$scanner_Token = function(){return this;}; |
5914 Token.prototype.get$charOffset = function() { return this.charOffset; }; | 5914 scanner_Token.prototype.get$charOffset = function() { return this.charOffset; }; |
5915 Token.prototype.get$value = function() { | 5915 scanner_Token.prototype.get$value = function() { |
5916 return const$112/*const SourceString('EOF')*/; | 5916 return const$112/*const SourceString('EOF')*/; |
5917 } | 5917 } |
5918 Token.prototype.get$stringValue = function() { | 5918 scanner_Token.prototype.get$stringValue = function() { |
5919 return 'EOF'; | 5919 return 'EOF'; |
5920 } | 5920 } |
5921 Token.prototype.toString = function() { | 5921 scanner_Token.prototype.toString = function() { |
5922 return Strings.String$fromCharCodes$factory([this.kind]); | 5922 return Strings.String$fromCharCodes$factory([this.kind]); |
5923 } | 5923 } |
5924 Token.prototype.next$0 = function() { | 5924 scanner_Token.prototype.next$0 = function() { |
5925 return this.next(); | 5925 return this.next(); |
5926 }; | 5926 }; |
5927 Token.prototype.toString$0 = function() { | 5927 scanner_Token.prototype.toString$0 = function() { |
5928 return this.toString(); | 5928 return this.toString(); |
5929 }; | 5929 }; |
5930 // ********** Code for KeywordToken ************** | 5930 // ********** Code for KeywordToken ************** |
5931 function KeywordToken(value, charOffset) { | 5931 function KeywordToken(value, charOffset) { |
5932 this.value = value; | 5932 this.value = value; |
5933 // Initializers done | 5933 // Initializers done |
5934 Token.call(this, 107/*null.KEYWORD_TOKEN*/, charOffset); | 5934 scanner_Token.call(this, 107/*null.KEYWORD_TOKEN*/, charOffset); |
5935 } | 5935 } |
5936 $inherits(KeywordToken, Token); | 5936 $inherits(KeywordToken, scanner_Token); |
5937 KeywordToken.prototype.get$value = function() { return this.value; }; | 5937 KeywordToken.prototype.get$value = function() { return this.value; }; |
5938 KeywordToken.prototype.get$stringValue = function() { | 5938 KeywordToken.prototype.get$stringValue = function() { |
5939 return this.value.syntax; | 5939 return this.value.syntax; |
5940 } | 5940 } |
5941 KeywordToken.prototype.toString = function() { | 5941 KeywordToken.prototype.toString = function() { |
5942 return this.value.syntax; | 5942 return this.value.syntax; |
5943 } | 5943 } |
5944 KeywordToken.prototype.toString$0 = function() { | 5944 KeywordToken.prototype.toString$0 = function() { |
5945 return this.toString(); | 5945 return this.toString(); |
5946 }; | 5946 }; |
5947 // ********** Code for StringToken ************** | 5947 // ********** Code for StringToken ************** |
5948 function StringToken(kind, value, charOffset) { | 5948 function StringToken(kind, value, charOffset) { |
5949 // Initializers done | 5949 // Initializers done |
5950 StringToken.fromSource$ctor.call(this, kind, new StringWrapper(value), charOff
set); | 5950 StringToken.fromSource$ctor.call(this, kind, new StringWrapper(value), charOff
set); |
5951 } | 5951 } |
5952 StringToken.fromSource$ctor = function(kind, value, charOffset) { | 5952 StringToken.fromSource$ctor = function(kind, value, charOffset) { |
5953 this.value = value; | 5953 this.value = value; |
5954 // Initializers done | 5954 // Initializers done |
5955 Token.call(this, kind, charOffset); | 5955 scanner_Token.call(this, kind, charOffset); |
5956 } | 5956 } |
5957 StringToken.fromSource$ctor.prototype = StringToken.prototype; | 5957 StringToken.fromSource$ctor.prototype = StringToken.prototype; |
5958 $inherits(StringToken, Token); | 5958 $inherits(StringToken, scanner_Token); |
5959 StringToken.prototype.get$value = function() { return this.value; }; | 5959 StringToken.prototype.get$value = function() { return this.value; }; |
5960 StringToken.prototype.get$stringValue = function() { | 5960 StringToken.prototype.get$stringValue = function() { |
5961 return this.value.get$stringValue(); | 5961 return this.value.get$stringValue(); |
5962 } | 5962 } |
5963 StringToken.prototype.toString = function() { | 5963 StringToken.prototype.toString = function() { |
5964 return this.value.toString(); | 5964 return this.value.toString(); |
5965 } | 5965 } |
5966 StringToken.prototype.toString$0 = function() { | 5966 StringToken.prototype.toString$0 = function() { |
5967 return this.toString(); | 5967 return this.toString(); |
5968 }; | 5968 }; |
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6145 } | 6145 } |
6146 LeafKeywordState.prototype.toString = function() { | 6146 LeafKeywordState.prototype.toString = function() { |
6147 return this.keyword.syntax; | 6147 return this.keyword.syntax; |
6148 } | 6148 } |
6149 LeafKeywordState.prototype.toString$0 = function() { | 6149 LeafKeywordState.prototype.toString$0 = function() { |
6150 return this.toString(); | 6150 return this.toString(); |
6151 }; | 6151 }; |
6152 // ********** Code for top level ************** | 6152 // ********** Code for top level ************** |
6153 function parse(canceler, logger, doParse) { | 6153 function parse(canceler, logger, doParse) { |
6154 var listener = new NodeListener(canceler, logger); | 6154 var listener = new NodeListener(canceler, logger); |
6155 doParse(new Parser(listener)); | 6155 doParse(new scanner_Parser(listener)); |
6156 var node = listener.popNode(); | 6156 var node = listener.popNode(); |
6157 logger.log(("parsed: " + node + "")); | 6157 logger.log(("parsed: " + node + "")); |
6158 return node; | 6158 return node; |
6159 } | 6159 } |
6160 // ********** Library tree ************** | 6160 // ********** Library tree ************** |
6161 // ********** Code for Node ************** | 6161 // ********** Code for tree_Node ************** |
6162 function Node() { | 6162 function tree_Node() { |
6163 this._hashCode = (Math.random() * 0xFFFFFFFF).toInt(); | 6163 this._hashCode = (Math.random() * 0xFFFFFFFF).toInt(); |
6164 // Initializers done | 6164 // Initializers done |
6165 } | 6165 } |
6166 Node.prototype.is$Node = function(){return this;}; | 6166 tree_Node.prototype.is$tree_Node = function(){return this;}; |
6167 Node.prototype.hashCode = function() { | 6167 tree_Node.prototype.hashCode = function() { |
6168 return this._hashCode; | 6168 return this._hashCode; |
6169 } | 6169 } |
6170 Node.prototype.toString = function() { | 6170 tree_Node.prototype.toString = function() { |
6171 return this.unparse(); | 6171 return this.unparse(); |
6172 } | 6172 } |
6173 Node.prototype.getObjectDescription = function() { | 6173 tree_Node.prototype.getObjectDescription = function() { |
6174 return Object.prototype.toString.call(this); | 6174 return Object.prototype.toString.call(this); |
6175 } | 6175 } |
6176 Node.prototype.unparse = function() { | 6176 tree_Node.prototype.unparse = function() { |
6177 var unparser = new Unparser(false); | 6177 var unparser = new Unparser(false); |
6178 try { | 6178 try { |
6179 return unparser.unparse(this); | 6179 return unparser.unparse(this); |
6180 } catch (e) { | 6180 } catch (e) { |
6181 e = $toDartException(e); | 6181 e = $toDartException(e); |
6182 return ('<<unparse error: ' + this.getObjectDescription() + ': ' + unparser.
sb + '>>'); | 6182 return ('<<unparse error: ' + this.getObjectDescription() + ': ' + unparser.
sb + '>>'); |
6183 } | 6183 } |
6184 } | 6184 } |
6185 Node.prototype.accept$1 = function($0) { | 6185 tree_Node.prototype.accept$1 = function($0) { |
6186 return this.accept(($0 && $0.is$Visitor())); | 6186 return this.accept(($0 && $0.is$Visitor())); |
6187 }; | 6187 }; |
6188 Node.prototype.getBeginToken$0 = function() { | 6188 tree_Node.prototype.getBeginToken$0 = function() { |
6189 return this.getBeginToken(); | 6189 return this.getBeginToken(); |
6190 }; | 6190 }; |
6191 Node.prototype.getEndToken$0 = function() { | 6191 tree_Node.prototype.getEndToken$0 = function() { |
6192 return this.getEndToken(); | 6192 return this.getEndToken(); |
6193 }; | 6193 }; |
6194 Node.prototype.hashCode$0 = function() { | 6194 tree_Node.prototype.hashCode$0 = function() { |
6195 return this.hashCode(); | 6195 return this.hashCode(); |
6196 }; | 6196 }; |
6197 Node.prototype.toString$0 = function() { | 6197 tree_Node.prototype.toString$0 = function() { |
6198 return this.toString(); | 6198 return this.toString(); |
6199 }; | 6199 }; |
6200 // ********** Code for ClassNode ************** | 6200 // ********** Code for ClassNode ************** |
6201 function ClassNode(name, superclass, interfaces, beginToken, extendsKeyword, end
Token) { | 6201 function ClassNode(name, superclass, interfaces, beginToken, extendsKeyword, end
Token) { |
6202 this.name = name; | 6202 this.name = name; |
6203 this.superclass = superclass; | 6203 this.superclass = superclass; |
6204 this.interfaces = interfaces; | 6204 this.interfaces = interfaces; |
6205 this.beginToken = beginToken; | 6205 this.beginToken = beginToken; |
6206 this.extendsKeyword = extendsKeyword; | 6206 this.extendsKeyword = extendsKeyword; |
6207 this.endToken = endToken; | 6207 this.endToken = endToken; |
6208 // Initializers done | 6208 // Initializers done |
6209 Node.call(this); | 6209 tree_Node.call(this); |
6210 } | 6210 } |
6211 $inherits(ClassNode, Node); | 6211 $inherits(ClassNode, tree_Node); |
6212 ClassNode.prototype.is$ClassNode = function(){return this;}; | 6212 ClassNode.prototype.is$ClassNode = function(){return this;}; |
6213 ClassNode.prototype.get$name = function() { return this.name; }; | 6213 ClassNode.prototype.get$name = function() { return this.name; }; |
6214 ClassNode.prototype.get$interfaces = function() { return this.interfaces; }; | 6214 ClassNode.prototype.get$interfaces = function() { return this.interfaces; }; |
6215 ClassNode.prototype.accept = function(visitor) { | 6215 ClassNode.prototype.accept = function(visitor) { |
6216 return visitor.visitClassNode(this); | 6216 return visitor.visitClassNode(this); |
6217 } | 6217 } |
6218 ClassNode.prototype.get$isInterface = function() { | 6218 ClassNode.prototype.get$isInterface = function() { |
6219 return this.beginToken.get$stringValue() === 'interface'; | 6219 return this.beginToken.get$stringValue() === 'interface'; |
6220 } | 6220 } |
6221 ClassNode.prototype.get$isClass = function() { | 6221 ClassNode.prototype.get$isClass = function() { |
6222 return !$notnull_bool(this.get$isInterface()); | 6222 return !$notnull_bool(this.get$isInterface()); |
6223 } | 6223 } |
6224 ClassNode.prototype.getBeginToken = function() { | 6224 ClassNode.prototype.getBeginToken = function() { |
6225 return this.beginToken; | 6225 return this.beginToken; |
6226 } | 6226 } |
6227 ClassNode.prototype.getEndToken = function() { | 6227 ClassNode.prototype.getEndToken = function() { |
6228 return this.endToken; | 6228 return this.endToken; |
6229 } | 6229 } |
6230 ClassNode.prototype.accept$1 = function($0) { | 6230 ClassNode.prototype.accept$1 = function($0) { |
6231 return this.accept(($0 && $0.is$Visitor())); | 6231 return this.accept(($0 && $0.is$Visitor())); |
6232 }; | 6232 }; |
6233 ClassNode.prototype.getBeginToken$0 = function() { | 6233 ClassNode.prototype.getBeginToken$0 = function() { |
6234 return this.getBeginToken(); | 6234 return this.getBeginToken(); |
6235 }; | 6235 }; |
6236 ClassNode.prototype.getEndToken$0 = function() { | 6236 ClassNode.prototype.getEndToken$0 = function() { |
6237 return this.getEndToken(); | 6237 return this.getEndToken(); |
6238 }; | 6238 }; |
6239 // ********** Code for Expression ************** | 6239 // ********** Code for tree_Expression ************** |
6240 function Expression() { | 6240 function tree_Expression() { |
6241 // Initializers done | 6241 // Initializers done |
6242 Node.call(this); | 6242 tree_Node.call(this); |
6243 } | 6243 } |
6244 $inherits(Expression, Node); | 6244 $inherits(tree_Expression, tree_Node); |
6245 Expression.prototype.is$Expression = function(){return this;}; | 6245 tree_Expression.prototype.is$tree_Expression = function(){return this;}; |
6246 // ********** Code for Statement ************** | 6246 // ********** Code for tree_Statement ************** |
6247 function Statement() { | 6247 function tree_Statement() { |
6248 // Initializers done | 6248 // Initializers done |
6249 Node.call(this); | 6249 tree_Node.call(this); |
6250 } | 6250 } |
6251 $inherits(Statement, Node); | 6251 $inherits(tree_Statement, tree_Node); |
6252 Statement.prototype.is$Statement = function(){return this;}; | 6252 tree_Statement.prototype.is$tree_Statement = function(){return this;}; |
6253 // ********** Code for Send ************** | 6253 // ********** Code for Send ************** |
6254 function Send(receiver, selector, argumentsNode) { | 6254 function Send(receiver, selector, argumentsNode) { |
6255 this.receiver = receiver; | 6255 this.receiver = receiver; |
6256 this.selector = selector; | 6256 this.selector = selector; |
6257 this.argumentsNode = argumentsNode; | 6257 this.argumentsNode = argumentsNode; |
6258 // Initializers done | 6258 // Initializers done |
6259 Expression.call(this); | 6259 tree_Expression.call(this); |
6260 } | 6260 } |
6261 Send.postfix$ctor = function(receiver, selector) { | 6261 Send.postfix$ctor = function(receiver, selector) { |
6262 this.receiver = receiver; | 6262 this.receiver = receiver; |
6263 this.selector = selector; | 6263 this.selector = selector; |
6264 this.argumentsNode = const$211/*const Postfix()*/; | 6264 this.argumentsNode = const$211/*const Postfix()*/; |
6265 // Initializers done | 6265 // Initializers done |
6266 Expression.call(this); | 6266 tree_Expression.call(this); |
6267 } | 6267 } |
6268 Send.postfix$ctor.prototype = Send.prototype; | 6268 Send.postfix$ctor.prototype = Send.prototype; |
6269 Send.prefix$ctor = function(receiver, selector) { | 6269 Send.prefix$ctor = function(receiver, selector) { |
6270 this.receiver = receiver; | 6270 this.receiver = receiver; |
6271 this.selector = selector; | 6271 this.selector = selector; |
6272 this.argumentsNode = const$210/*const Prefix()*/; | 6272 this.argumentsNode = const$210/*const Prefix()*/; |
6273 // Initializers done | 6273 // Initializers done |
6274 Expression.call(this); | 6274 tree_Expression.call(this); |
6275 } | 6275 } |
6276 Send.prefix$ctor.prototype = Send.prototype; | 6276 Send.prefix$ctor.prototype = Send.prototype; |
6277 $inherits(Send, Expression); | 6277 $inherits(Send, tree_Expression); |
6278 Send.prototype.is$Send = function(){return this;}; | 6278 Send.prototype.is$Send = function(){return this;}; |
6279 Send.prototype.get$arguments = function() { | 6279 Send.prototype.get$arguments = function() { |
6280 return this.argumentsNode.nodes; | 6280 return this.argumentsNode.nodes; |
6281 } | 6281 } |
6282 Send.prototype.accept = function(visitor) { | 6282 Send.prototype.accept = function(visitor) { |
6283 return visitor.visitSend(this); | 6283 return visitor.visitSend(this); |
6284 } | 6284 } |
6285 Send.prototype.get$isOperator = function() { | 6285 Send.prototype.get$isOperator = function() { |
6286 return (this.selector instanceof Operator); | 6286 return (this.selector instanceof Operator); |
6287 } | 6287 } |
6288 Send.prototype.get$isPropertyAccess = function() { | 6288 Send.prototype.get$isPropertyAccess = function() { |
6289 return this.argumentsNode == null; | 6289 return this.argumentsNode == null; |
6290 } | 6290 } |
6291 Send.prototype.get$isFunctionObjectInvocation = function() { | 6291 Send.prototype.get$isFunctionObjectInvocation = function() { |
6292 return this.selector == null; | 6292 return this.selector == null; |
6293 } | 6293 } |
6294 Send.prototype.get$isPrefix = function() { | 6294 Send.prototype.get$isPrefix = function() { |
6295 return (this.argumentsNode instanceof Prefix); | 6295 return (this.argumentsNode instanceof Prefix); |
6296 } | 6296 } |
6297 Send.prototype.getBeginToken = function() { | 6297 Send.prototype.getBeginToken = function() { |
6298 return firstBeginToken(this.receiver, this.selector); | 6298 return firstBeginToken(this.receiver, this.selector); |
6299 } | 6299 } |
6300 Send.prototype.getEndToken = function() { | 6300 Send.prototype.getEndToken = function() { |
6301 var $0; | 6301 var $0; |
6302 var token; | 6302 var token; |
6303 if (this.argumentsNode != null) token = this.argumentsNode.getEndToken(); | 6303 if (this.argumentsNode != null) token = this.argumentsNode.getEndToken(); |
6304 if (token != null) return token; | 6304 if (token != null) return token; |
6305 if (this.selector != null) { | 6305 if (this.selector != null) { |
6306 return (($0 = this.selector.getEndToken()) && $0.is$Token()); | 6306 return (($0 = this.selector.getEndToken()) && $0.is$scanner_Token()); |
6307 } | 6307 } |
6308 return (($0 = this.receiver.getBeginToken()) && $0.is$Token()); | 6308 return (($0 = this.receiver.getBeginToken()) && $0.is$scanner_Token()); |
6309 } | 6309 } |
6310 Send.prototype.accept$1 = function($0) { | 6310 Send.prototype.accept$1 = function($0) { |
6311 return this.accept(($0 && $0.is$Visitor())); | 6311 return this.accept(($0 && $0.is$Visitor())); |
6312 }; | 6312 }; |
6313 Send.prototype.getBeginToken$0 = function() { | 6313 Send.prototype.getBeginToken$0 = function() { |
6314 return this.getBeginToken(); | 6314 return this.getBeginToken(); |
6315 }; | 6315 }; |
6316 Send.prototype.getEndToken$0 = function() { | 6316 Send.prototype.getEndToken$0 = function() { |
6317 return this.getEndToken(); | 6317 return this.getEndToken(); |
6318 }; | 6318 }; |
(...skipping 23 matching lines...) Expand all Loading... |
6342 SendSet.prototype.accept$1 = function($0) { | 6342 SendSet.prototype.accept$1 = function($0) { |
6343 return this.accept(($0 && $0.is$Visitor())); | 6343 return this.accept(($0 && $0.is$Visitor())); |
6344 }; | 6344 }; |
6345 // ********** Code for NodeList ************** | 6345 // ********** Code for NodeList ************** |
6346 function NodeList(beginToken, nodes, endToken, delimiter) { | 6346 function NodeList(beginToken, nodes, endToken, delimiter) { |
6347 this.beginToken = beginToken; | 6347 this.beginToken = beginToken; |
6348 this.nodes = nodes; | 6348 this.nodes = nodes; |
6349 this.endToken = endToken; | 6349 this.endToken = endToken; |
6350 this.delimiter = delimiter; | 6350 this.delimiter = delimiter; |
6351 // Initializers done | 6351 // Initializers done |
6352 Node.call(this); | 6352 tree_Node.call(this); |
6353 } | 6353 } |
6354 NodeList.singleton$ctor = function(node) { | 6354 NodeList.singleton$ctor = function(node) { |
6355 // Initializers done | 6355 // Initializers done |
6356 NodeList.call(this, null, LinkFactory.Link$factory(node)); | 6356 NodeList.call(this, null, LinkFactory.Link$factory(node)); |
6357 } | 6357 } |
6358 NodeList.singleton$ctor.prototype = NodeList.prototype; | 6358 NodeList.singleton$ctor.prototype = NodeList.prototype; |
6359 $inherits(NodeList, Node); | 6359 $inherits(NodeList, tree_Node); |
6360 NodeList.prototype.is$NodeList = function(){return this;}; | 6360 NodeList.prototype.is$NodeList = function(){return this;}; |
6361 NodeList.prototype.accept = function(visitor) { | 6361 NodeList.prototype.accept = function(visitor) { |
6362 return visitor.visitNodeList(this); | 6362 return visitor.visitNodeList(this); |
6363 } | 6363 } |
6364 NodeList.prototype.getBeginToken = function() { | 6364 NodeList.prototype.getBeginToken = function() { |
6365 var $0; | 6365 var $0; |
6366 if (this.beginToken != null) return this.beginToken; | 6366 if (this.beginToken != null) return this.beginToken; |
6367 if (this.nodes != null) { | 6367 if (this.nodes != null) { |
6368 for (var link = this.nodes; | 6368 for (var link = this.nodes; |
6369 !$notnull_bool(link.isEmpty()); link = (($0 = link.get$tail()) && $0.is$Lin
k$Node())) { | 6369 !$notnull_bool(link.isEmpty()); link = (($0 = link.get$tail()) && $0.is$Lin
k$Node())) { |
6370 if (link.get$head().getBeginToken$0() != null) { | 6370 if (link.get$head().getBeginToken$0() != null) { |
6371 return (($0 = link.get$head().getBeginToken$0()) && $0.is$Token()); | 6371 return (($0 = link.get$head().getBeginToken$0()) && $0.is$scanner_Token(
)); |
6372 } | 6372 } |
6373 if (link.get$head().getEndToken$0() != null) { | 6373 if (link.get$head().getEndToken$0() != null) { |
6374 return (($0 = link.get$head().getEndToken$0()) && $0.is$Token()); | 6374 return (($0 = link.get$head().getEndToken$0()) && $0.is$scanner_Token())
; |
6375 } | 6375 } |
6376 } | 6376 } |
6377 } | 6377 } |
6378 return this.endToken; | 6378 return this.endToken; |
6379 } | 6379 } |
6380 NodeList.prototype.getEndToken = function() { | 6380 NodeList.prototype.getEndToken = function() { |
6381 var $0; | 6381 var $0; |
6382 if (this.endToken != null) return this.endToken; | 6382 if (this.endToken != null) return this.endToken; |
6383 if (this.nodes != null) { | 6383 if (this.nodes != null) { |
6384 var link = this.nodes; | 6384 var link = this.nodes; |
6385 while (!$notnull_bool(link.get$tail().isEmpty$0())) link = (($0 = link.get$t
ail()) && $0.is$Link$Node()); | 6385 while (!$notnull_bool(link.get$tail().isEmpty$0())) link = (($0 = link.get$t
ail()) && $0.is$Link$Node()); |
6386 if (link.get$head().getEndToken$0() != null) return (($0 = link.get$head().g
etEndToken$0()) && $0.is$Token()); | 6386 if (link.get$head().getEndToken$0() != null) return (($0 = link.get$head().g
etEndToken$0()) && $0.is$scanner_Token()); |
6387 if (link.get$head().getBeginToken$0() != null) return (($0 = link.get$head()
.getBeginToken$0()) && $0.is$Token()); | 6387 if (link.get$head().getBeginToken$0() != null) return (($0 = link.get$head()
.getBeginToken$0()) && $0.is$scanner_Token()); |
6388 } | 6388 } |
6389 return this.beginToken; | 6389 return this.beginToken; |
6390 } | 6390 } |
6391 NodeList.prototype.accept$1 = function($0) { | 6391 NodeList.prototype.accept$1 = function($0) { |
6392 return this.accept(($0 && $0.is$Visitor())); | 6392 return this.accept(($0 && $0.is$Visitor())); |
6393 }; | 6393 }; |
6394 NodeList.prototype.getBeginToken$0 = function() { | 6394 NodeList.prototype.getBeginToken$0 = function() { |
6395 return this.getBeginToken(); | 6395 return this.getBeginToken(); |
6396 }; | 6396 }; |
6397 NodeList.prototype.getEndToken$0 = function() { | 6397 NodeList.prototype.getEndToken$0 = function() { |
6398 return this.getEndToken(); | 6398 return this.getEndToken(); |
6399 }; | 6399 }; |
6400 // ********** Code for Block ************** | 6400 // ********** Code for Block ************** |
6401 function Block(statements) { | 6401 function Block(statements) { |
6402 this.statements = statements; | 6402 this.statements = statements; |
6403 // Initializers done | 6403 // Initializers done |
6404 Statement.call(this); | 6404 tree_Statement.call(this); |
6405 } | 6405 } |
6406 $inherits(Block, Statement); | 6406 $inherits(Block, tree_Statement); |
6407 Block.prototype.accept = function(visitor) { | 6407 Block.prototype.accept = function(visitor) { |
6408 return visitor.visitBlock(this); | 6408 return visitor.visitBlock(this); |
6409 } | 6409 } |
6410 Block.prototype.getBeginToken = function() { | 6410 Block.prototype.getBeginToken = function() { |
6411 return this.statements.getBeginToken(); | 6411 return this.statements.getBeginToken(); |
6412 } | 6412 } |
6413 Block.prototype.getEndToken = function() { | 6413 Block.prototype.getEndToken = function() { |
6414 return this.statements.getEndToken(); | 6414 return this.statements.getEndToken(); |
6415 } | 6415 } |
6416 Block.prototype.accept$1 = function($0) { | 6416 Block.prototype.accept$1 = function($0) { |
6417 return this.accept(($0 && $0.is$Visitor())); | 6417 return this.accept(($0 && $0.is$Visitor())); |
6418 }; | 6418 }; |
6419 Block.prototype.getBeginToken$0 = function() { | 6419 Block.prototype.getBeginToken$0 = function() { |
6420 return this.getBeginToken(); | 6420 return this.getBeginToken(); |
6421 }; | 6421 }; |
6422 Block.prototype.getEndToken$0 = function() { | 6422 Block.prototype.getEndToken$0 = function() { |
6423 return this.getEndToken(); | 6423 return this.getEndToken(); |
6424 }; | 6424 }; |
6425 // ********** Code for If ************** | 6425 // ********** Code for If ************** |
6426 function If(condition, thenPart, elsePart, ifToken, elseToken) { | 6426 function If(condition, thenPart, elsePart, ifToken, elseToken) { |
6427 this.condition = condition; | 6427 this.condition = condition; |
6428 this.thenPart = thenPart; | 6428 this.thenPart = thenPart; |
6429 this.elsePart = elsePart; | 6429 this.elsePart = elsePart; |
6430 this.ifToken = ifToken; | 6430 this.ifToken = ifToken; |
6431 this.elseToken = elseToken; | 6431 this.elseToken = elseToken; |
6432 // Initializers done | 6432 // Initializers done |
6433 Statement.call(this); | 6433 tree_Statement.call(this); |
6434 } | 6434 } |
6435 $inherits(If, Statement); | 6435 $inherits(If, tree_Statement); |
6436 If.prototype.get$hasElsePart = function() { | 6436 If.prototype.get$hasElsePart = function() { |
6437 return this.elsePart != null; | 6437 return this.elsePart != null; |
6438 } | 6438 } |
6439 If.prototype.accept = function(visitor) { | 6439 If.prototype.accept = function(visitor) { |
6440 return visitor.visitIf(this); | 6440 return visitor.visitIf(this); |
6441 } | 6441 } |
6442 If.prototype.getBeginToken = function() { | 6442 If.prototype.getBeginToken = function() { |
6443 return this.ifToken; | 6443 return this.ifToken; |
6444 } | 6444 } |
6445 If.prototype.getEndToken = function() { | 6445 If.prototype.getEndToken = function() { |
(...skipping 10 matching lines...) Expand all Loading... |
6456 return this.getEndToken(); | 6456 return this.getEndToken(); |
6457 }; | 6457 }; |
6458 // ********** Code for For ************** | 6458 // ********** Code for For ************** |
6459 function For(initializer, condition, update, body, forToken) { | 6459 function For(initializer, condition, update, body, forToken) { |
6460 this.initializer = initializer; | 6460 this.initializer = initializer; |
6461 this.condition = condition; | 6461 this.condition = condition; |
6462 this.update = update; | 6462 this.update = update; |
6463 this.body = body; | 6463 this.body = body; |
6464 this.forToken = forToken; | 6464 this.forToken = forToken; |
6465 // Initializers done | 6465 // Initializers done |
6466 Statement.call(this); | 6466 tree_Statement.call(this); |
6467 } | 6467 } |
6468 $inherits(For, Statement); | 6468 $inherits(For, tree_Statement); |
6469 For.prototype.accept = function(visitor) { | 6469 For.prototype.accept = function(visitor) { |
6470 return visitor.visitFor(this); | 6470 return visitor.visitFor(this); |
6471 } | 6471 } |
6472 For.prototype.getBeginToken = function() { | 6472 For.prototype.getBeginToken = function() { |
6473 return this.forToken; | 6473 return this.forToken; |
6474 } | 6474 } |
6475 For.prototype.getEndToken = function() { | 6475 For.prototype.getEndToken = function() { |
6476 return this.body.getEndToken(); | 6476 return this.body.getEndToken(); |
6477 } | 6477 } |
6478 For.prototype.accept$1 = function($0) { | 6478 For.prototype.accept$1 = function($0) { |
6479 return this.accept(($0 && $0.is$Visitor())); | 6479 return this.accept(($0 && $0.is$Visitor())); |
6480 }; | 6480 }; |
6481 For.prototype.getBeginToken$0 = function() { | 6481 For.prototype.getBeginToken$0 = function() { |
6482 return this.getBeginToken(); | 6482 return this.getBeginToken(); |
6483 }; | 6483 }; |
6484 For.prototype.getEndToken$0 = function() { | 6484 For.prototype.getEndToken$0 = function() { |
6485 return this.getEndToken(); | 6485 return this.getEndToken(); |
6486 }; | 6486 }; |
6487 // ********** Code for FunctionExpression ************** | 6487 // ********** Code for FunctionExpression ************** |
6488 function FunctionExpression(name, parameters, body, returnType) { | 6488 function FunctionExpression(name, parameters, body, returnType) { |
6489 this.name = name; | 6489 this.name = name; |
6490 this.parameters = parameters; | 6490 this.parameters = parameters; |
6491 this.body = body; | 6491 this.body = body; |
6492 this.returnType = returnType; | 6492 this.returnType = returnType; |
6493 // Initializers done | 6493 // Initializers done |
6494 Expression.call(this); | 6494 tree_Expression.call(this); |
6495 } | 6495 } |
6496 $inherits(FunctionExpression, Expression); | 6496 $inherits(FunctionExpression, tree_Expression); |
6497 FunctionExpression.prototype.is$FunctionExpression = function(){return this;}; | 6497 FunctionExpression.prototype.is$FunctionExpression = function(){return this;}; |
6498 FunctionExpression.prototype.get$name = function() { return this.name; }; | 6498 FunctionExpression.prototype.get$name = function() { return this.name; }; |
6499 FunctionExpression.prototype.get$parameters = function() { return this.parameter
s; }; | 6499 FunctionExpression.prototype.get$parameters = function() { return this.parameter
s; }; |
6500 FunctionExpression.prototype.get$returnType = function() { return this.returnTyp
e; }; | 6500 FunctionExpression.prototype.get$returnType = function() { return this.returnTyp
e; }; |
6501 FunctionExpression.prototype.accept = function(visitor) { | 6501 FunctionExpression.prototype.accept = function(visitor) { |
6502 return visitor.visitFunctionExpression(this); | 6502 return visitor.visitFunctionExpression(this); |
6503 } | 6503 } |
6504 FunctionExpression.prototype.getBeginToken = function() { | 6504 FunctionExpression.prototype.getBeginToken = function() { |
6505 return firstBeginToken(this.returnType, this.name); | 6505 return firstBeginToken(this.returnType, this.name); |
6506 } | 6506 } |
6507 FunctionExpression.prototype.getEndToken = function() { | 6507 FunctionExpression.prototype.getEndToken = function() { |
6508 return this.body.getEndToken(); | 6508 return this.body.getEndToken(); |
6509 } | 6509 } |
6510 FunctionExpression.prototype.accept$1 = function($0) { | 6510 FunctionExpression.prototype.accept$1 = function($0) { |
6511 return this.accept(($0 && $0.is$Visitor())); | 6511 return this.accept(($0 && $0.is$Visitor())); |
6512 }; | 6512 }; |
6513 FunctionExpression.prototype.getBeginToken$0 = function() { | 6513 FunctionExpression.prototype.getBeginToken$0 = function() { |
6514 return this.getBeginToken(); | 6514 return this.getBeginToken(); |
6515 }; | 6515 }; |
6516 FunctionExpression.prototype.getEndToken$0 = function() { | 6516 FunctionExpression.prototype.getEndToken$0 = function() { |
6517 return this.getEndToken(); | 6517 return this.getEndToken(); |
6518 }; | 6518 }; |
6519 // ********** Code for Literal ************** | 6519 // ********** Code for Literal ************** |
6520 function Literal(token, handler) { | 6520 function Literal(token, handler) { |
6521 this.token = token; | 6521 this.token = token; |
6522 this.handler = handler; | 6522 this.handler = handler; |
6523 // Initializers done | 6523 // Initializers done |
6524 Expression.call(this); | 6524 tree_Expression.call(this); |
6525 } | 6525 } |
6526 $inherits(Literal, Expression); | 6526 $inherits(Literal, tree_Expression); |
6527 Literal.prototype.getBeginToken = function() { | 6527 Literal.prototype.getBeginToken = function() { |
6528 return this.token; | 6528 return this.token; |
6529 } | 6529 } |
6530 Literal.prototype.getEndToken = function() { | 6530 Literal.prototype.getEndToken = function() { |
6531 return this.token; | 6531 return this.token; |
6532 } | 6532 } |
6533 Literal.prototype.getBeginToken$0 = function() { | 6533 Literal.prototype.getBeginToken$0 = function() { |
6534 return this.getBeginToken(); | 6534 return this.getBeginToken(); |
6535 }; | 6535 }; |
6536 Literal.prototype.getEndToken$0 = function() { | 6536 Literal.prototype.getEndToken$0 = function() { |
6537 return this.getEndToken(); | 6537 return this.getEndToken(); |
6538 }; | 6538 }; |
6539 // ********** Code for Literal$SourceString ************** | 6539 // ********** Code for Literal$SourceString ************** |
6540 function Literal$SourceString(token, handler) { | 6540 function Literal$SourceString(token, handler) { |
6541 this.token = token; | 6541 this.token = token; |
6542 this.handler = handler; | 6542 this.handler = handler; |
6543 // Initializers done | 6543 // Initializers done |
6544 Expression.call(this); | 6544 tree_Expression.call(this); |
6545 } | 6545 } |
6546 $inherits(Literal$SourceString, Literal); | 6546 $inherits(Literal$SourceString, Literal); |
6547 // ********** Code for Literal$bool ************** | 6547 // ********** Code for Literal$bool ************** |
6548 function Literal$bool(token, handler) { | 6548 function Literal$bool(token, handler) { |
6549 this.token = token; | 6549 this.token = token; |
6550 this.handler = handler; | 6550 this.handler = handler; |
6551 // Initializers done | 6551 // Initializers done |
6552 Expression.call(this); | 6552 tree_Expression.call(this); |
6553 } | 6553 } |
6554 $inherits(Literal$bool, Literal); | 6554 $inherits(Literal$bool, Literal); |
6555 // ********** Code for Literal$double ************** | 6555 // ********** Code for Literal$double ************** |
6556 function Literal$double(token, handler) { | 6556 function Literal$double(token, handler) { |
6557 this.token = token; | 6557 this.token = token; |
6558 this.handler = handler; | 6558 this.handler = handler; |
6559 // Initializers done | 6559 // Initializers done |
6560 Expression.call(this); | 6560 tree_Expression.call(this); |
6561 } | 6561 } |
6562 $inherits(Literal$double, Literal); | 6562 $inherits(Literal$double, Literal); |
6563 // ********** Code for Literal$int ************** | 6563 // ********** Code for Literal$int ************** |
6564 function Literal$int(token, handler) { | 6564 function Literal$int(token, handler) { |
6565 this.token = token; | 6565 this.token = token; |
6566 this.handler = handler; | 6566 this.handler = handler; |
6567 // Initializers done | 6567 // Initializers done |
6568 Expression.call(this); | 6568 tree_Expression.call(this); |
6569 } | 6569 } |
6570 $inherits(Literal$int, Literal); | 6570 $inherits(Literal$int, Literal); |
6571 // ********** Code for LiteralInt ************** | 6571 // ********** Code for LiteralInt ************** |
6572 function LiteralInt(token, handler) { | 6572 function LiteralInt(token, handler) { |
6573 // Initializers done | 6573 // Initializers done |
6574 Literal$int.call(this, token, handler); | 6574 Literal$int.call(this, token, handler); |
6575 } | 6575 } |
6576 $inherits(LiteralInt, Literal$int); | 6576 $inherits(LiteralInt, Literal$int); |
6577 LiteralInt.prototype.get$value = function() { | 6577 LiteralInt.prototype.get$value = function() { |
6578 try { | 6578 try { |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6648 LiteralString.prototype.get$value = function() { | 6648 LiteralString.prototype.get$value = function() { |
6649 var $0; | 6649 var $0; |
6650 return (($0 = this.token.get$value()) && $0.is$SourceString()); | 6650 return (($0 = this.token.get$value()) && $0.is$SourceString()); |
6651 } | 6651 } |
6652 LiteralString.prototype.accept = function(visitor) { | 6652 LiteralString.prototype.accept = function(visitor) { |
6653 return visitor.visitLiteralString(this); | 6653 return visitor.visitLiteralString(this); |
6654 } | 6654 } |
6655 LiteralString.prototype.accept$1 = function($0) { | 6655 LiteralString.prototype.accept$1 = function($0) { |
6656 return this.accept(($0 && $0.is$Visitor())); | 6656 return this.accept(($0 && $0.is$Visitor())); |
6657 }; | 6657 }; |
6658 // ********** Code for Identifier ************** | 6658 // ********** Code for tree_Identifier ************** |
6659 function Identifier(token) { | 6659 function tree_Identifier(token) { |
6660 this.token = token; | 6660 this.token = token; |
6661 // Initializers done | 6661 // Initializers done |
6662 Expression.call(this); | 6662 tree_Expression.call(this); |
6663 } | 6663 } |
6664 $inherits(Identifier, Expression); | 6664 $inherits(tree_Identifier, tree_Expression); |
6665 Identifier.prototype.is$Identifier = function(){return this;}; | 6665 tree_Identifier.prototype.is$tree_Identifier = function(){return this;}; |
6666 Identifier.prototype.get$source = function() { | 6666 tree_Identifier.prototype.get$source = function() { |
6667 var $0; | 6667 var $0; |
6668 return (($0 = this.token.get$value()) && $0.is$SourceString()); | 6668 return (($0 = this.token.get$value()) && $0.is$SourceString()); |
6669 } | 6669 } |
6670 Identifier.prototype.accept = function(visitor) { | 6670 tree_Identifier.prototype.accept = function(visitor) { |
6671 return visitor.visitIdentifier(this); | 6671 return visitor.visitIdentifier(this); |
6672 } | 6672 } |
6673 Identifier.prototype.getBeginToken = function() { | 6673 tree_Identifier.prototype.getBeginToken = function() { |
6674 return this.token; | 6674 return this.token; |
6675 } | 6675 } |
6676 Identifier.prototype.getEndToken = function() { | 6676 tree_Identifier.prototype.getEndToken = function() { |
6677 return this.token; | 6677 return this.token; |
6678 } | 6678 } |
6679 Identifier.prototype.accept$1 = function($0) { | 6679 tree_Identifier.prototype.accept$1 = function($0) { |
6680 return this.accept(($0 && $0.is$Visitor())); | 6680 return this.accept(($0 && $0.is$Visitor())); |
6681 }; | 6681 }; |
6682 Identifier.prototype.getBeginToken$0 = function() { | 6682 tree_Identifier.prototype.getBeginToken$0 = function() { |
6683 return this.getBeginToken(); | 6683 return this.getBeginToken(); |
6684 }; | 6684 }; |
6685 Identifier.prototype.getEndToken$0 = function() { | 6685 tree_Identifier.prototype.getEndToken$0 = function() { |
6686 return this.getEndToken(); | 6686 return this.getEndToken(); |
6687 }; | 6687 }; |
6688 // ********** Code for Operator ************** | 6688 // ********** Code for Operator ************** |
6689 function Operator(token) { | 6689 function Operator(token) { |
6690 // Initializers done | 6690 // Initializers done |
6691 Identifier.call(this, token); | 6691 tree_Identifier.call(this, token); |
6692 } | 6692 } |
6693 $inherits(Operator, Identifier); | 6693 $inherits(Operator, tree_Identifier); |
6694 Operator.prototype.is$Operator = function(){return this;}; | 6694 Operator.prototype.is$Operator = function(){return this;}; |
6695 Operator.prototype.accept = function(visitor) { | 6695 Operator.prototype.accept = function(visitor) { |
6696 return visitor.visitOperator(this); | 6696 return visitor.visitOperator(this); |
6697 } | 6697 } |
6698 Operator.prototype.accept$1 = function($0) { | 6698 Operator.prototype.accept$1 = function($0) { |
6699 return this.accept(($0 && $0.is$Visitor())); | 6699 return this.accept(($0 && $0.is$Visitor())); |
6700 }; | 6700 }; |
6701 // ********** Code for Return ************** | 6701 // ********** Code for Return ************** |
6702 function Return(beginToken, endToken, expression) { | 6702 function Return(beginToken, endToken, expression) { |
6703 this.beginToken = beginToken; | 6703 this.beginToken = beginToken; |
6704 this.endToken = endToken; | 6704 this.endToken = endToken; |
6705 this.expression = expression; | 6705 this.expression = expression; |
6706 // Initializers done | 6706 // Initializers done |
6707 Statement.call(this); | 6707 tree_Statement.call(this); |
6708 } | 6708 } |
6709 $inherits(Return, Statement); | 6709 $inherits(Return, tree_Statement); |
6710 Return.prototype.get$hasExpression = function() { | 6710 Return.prototype.get$hasExpression = function() { |
6711 return this.expression != null; | 6711 return this.expression != null; |
6712 } | 6712 } |
6713 Return.prototype.accept = function(visitor) { | 6713 Return.prototype.accept = function(visitor) { |
6714 return visitor.visitReturn(this); | 6714 return visitor.visitReturn(this); |
6715 } | 6715 } |
6716 Return.prototype.getBeginToken = function() { | 6716 Return.prototype.getBeginToken = function() { |
6717 return this.beginToken; | 6717 return this.beginToken; |
6718 } | 6718 } |
6719 Return.prototype.getEndToken = function() { | 6719 Return.prototype.getEndToken = function() { |
6720 return this.endToken; | 6720 return this.endToken; |
6721 } | 6721 } |
6722 Return.prototype.accept$1 = function($0) { | 6722 Return.prototype.accept$1 = function($0) { |
6723 return this.accept(($0 && $0.is$Visitor())); | 6723 return this.accept(($0 && $0.is$Visitor())); |
6724 }; | 6724 }; |
6725 Return.prototype.getBeginToken$0 = function() { | 6725 Return.prototype.getBeginToken$0 = function() { |
6726 return this.getBeginToken(); | 6726 return this.getBeginToken(); |
6727 }; | 6727 }; |
6728 Return.prototype.getEndToken$0 = function() { | 6728 Return.prototype.getEndToken$0 = function() { |
6729 return this.getEndToken(); | 6729 return this.getEndToken(); |
6730 }; | 6730 }; |
6731 // ********** Code for ExpressionStatement ************** | 6731 // ********** Code for tree_ExpressionStatement ************** |
6732 function ExpressionStatement(expression, endToken) { | 6732 function tree_ExpressionStatement(expression, endToken) { |
6733 this.expression = expression; | 6733 this.expression = expression; |
6734 this.endToken = endToken; | 6734 this.endToken = endToken; |
6735 // Initializers done | 6735 // Initializers done |
6736 Statement.call(this); | 6736 tree_Statement.call(this); |
6737 } | 6737 } |
6738 $inherits(ExpressionStatement, Statement); | 6738 $inherits(tree_ExpressionStatement, tree_Statement); |
6739 ExpressionStatement.prototype.is$ExpressionStatement = function(){return this;}; | 6739 tree_ExpressionStatement.prototype.is$tree_ExpressionStatement = function(){retu
rn this;}; |
6740 ExpressionStatement.prototype.accept = function(visitor) { | 6740 tree_ExpressionStatement.prototype.accept = function(visitor) { |
6741 return visitor.visitExpressionStatement(this); | 6741 return visitor.visitExpressionStatement(this); |
6742 } | 6742 } |
6743 ExpressionStatement.prototype.getBeginToken = function() { | 6743 tree_ExpressionStatement.prototype.getBeginToken = function() { |
6744 var $0; | 6744 var $0; |
6745 return (($0 = this.expression.getBeginToken()) && $0.is$Token()); | 6745 return (($0 = this.expression.getBeginToken()) && $0.is$scanner_Token()); |
6746 } | 6746 } |
6747 ExpressionStatement.prototype.getEndToken = function() { | 6747 tree_ExpressionStatement.prototype.getEndToken = function() { |
6748 return this.endToken; | 6748 return this.endToken; |
6749 } | 6749 } |
6750 ExpressionStatement.prototype.accept$1 = function($0) { | 6750 tree_ExpressionStatement.prototype.accept$1 = function($0) { |
6751 return this.accept(($0 && $0.is$Visitor())); | 6751 return this.accept(($0 && $0.is$Visitor())); |
6752 }; | 6752 }; |
6753 ExpressionStatement.prototype.getBeginToken$0 = function() { | 6753 tree_ExpressionStatement.prototype.getBeginToken$0 = function() { |
6754 return this.getBeginToken(); | 6754 return this.getBeginToken(); |
6755 }; | 6755 }; |
6756 ExpressionStatement.prototype.getEndToken$0 = function() { | 6756 tree_ExpressionStatement.prototype.getEndToken$0 = function() { |
6757 return this.getEndToken(); | 6757 return this.getEndToken(); |
6758 }; | 6758 }; |
6759 // ********** Code for Throw ************** | 6759 // ********** Code for Throw ************** |
6760 function Throw(expression, throwToken, endToken) { | 6760 function Throw(expression, throwToken, endToken) { |
6761 this.expression = expression; | 6761 this.expression = expression; |
6762 this.throwToken = throwToken; | 6762 this.throwToken = throwToken; |
6763 this.endToken = endToken; | 6763 this.endToken = endToken; |
6764 // Initializers done | 6764 // Initializers done |
6765 Statement.call(this); | 6765 tree_Statement.call(this); |
6766 } | 6766 } |
6767 $inherits(Throw, Statement); | 6767 $inherits(Throw, tree_Statement); |
6768 Throw.prototype.accept = function(visitor) { | 6768 Throw.prototype.accept = function(visitor) { |
6769 return visitor.visitThrow(this); | 6769 return visitor.visitThrow(this); |
6770 } | 6770 } |
6771 Throw.prototype.getBeginToken = function() { | 6771 Throw.prototype.getBeginToken = function() { |
6772 return this.throwToken; | 6772 return this.throwToken; |
6773 } | 6773 } |
6774 Throw.prototype.getEndToken = function() { | 6774 Throw.prototype.getEndToken = function() { |
6775 return this.endToken; | 6775 return this.endToken; |
6776 } | 6776 } |
6777 Throw.prototype.accept$1 = function($0) { | 6777 Throw.prototype.accept$1 = function($0) { |
6778 return this.accept(($0 && $0.is$Visitor())); | 6778 return this.accept(($0 && $0.is$Visitor())); |
6779 }; | 6779 }; |
6780 Throw.prototype.getBeginToken$0 = function() { | 6780 Throw.prototype.getBeginToken$0 = function() { |
6781 return this.getBeginToken(); | 6781 return this.getBeginToken(); |
6782 }; | 6782 }; |
6783 Throw.prototype.getEndToken$0 = function() { | 6783 Throw.prototype.getEndToken$0 = function() { |
6784 return this.getEndToken(); | 6784 return this.getEndToken(); |
6785 }; | 6785 }; |
6786 // ********** Code for TypeAnnotation ************** | 6786 // ********** Code for TypeAnnotation ************** |
6787 function TypeAnnotation(typeName) { | 6787 function TypeAnnotation(typeName) { |
6788 this.typeName = typeName; | 6788 this.typeName = typeName; |
6789 // Initializers done | 6789 // Initializers done |
6790 Node.call(this); | 6790 tree_Node.call(this); |
6791 } | 6791 } |
6792 $inherits(TypeAnnotation, Node); | 6792 $inherits(TypeAnnotation, tree_Node); |
6793 TypeAnnotation.prototype.is$TypeAnnotation = function(){return this;}; | 6793 TypeAnnotation.prototype.is$TypeAnnotation = function(){return this;}; |
6794 TypeAnnotation.prototype.get$typeName = function() { return this.typeName; }; | 6794 TypeAnnotation.prototype.get$typeName = function() { return this.typeName; }; |
6795 TypeAnnotation.prototype.accept = function(visitor) { | 6795 TypeAnnotation.prototype.accept = function(visitor) { |
6796 return visitor.visitTypeAnnotation(this); | 6796 return visitor.visitTypeAnnotation(this); |
6797 } | 6797 } |
6798 TypeAnnotation.prototype.getBeginToken = function() { | 6798 TypeAnnotation.prototype.getBeginToken = function() { |
6799 var $0; | 6799 var $0; |
6800 return (($0 = this.typeName.getBeginToken()) && $0.is$Token()); | 6800 return (($0 = this.typeName.getBeginToken()) && $0.is$scanner_Token()); |
6801 } | 6801 } |
6802 TypeAnnotation.prototype.getEndToken = function() { | 6802 TypeAnnotation.prototype.getEndToken = function() { |
6803 var $0; | 6803 var $0; |
6804 return (($0 = this.typeName.getEndToken()) && $0.is$Token()); | 6804 return (($0 = this.typeName.getEndToken()) && $0.is$scanner_Token()); |
6805 } | 6805 } |
6806 TypeAnnotation.prototype.accept$1 = function($0) { | 6806 TypeAnnotation.prototype.accept$1 = function($0) { |
6807 return this.accept(($0 && $0.is$Visitor())); | 6807 return this.accept(($0 && $0.is$Visitor())); |
6808 }; | 6808 }; |
6809 TypeAnnotation.prototype.getBeginToken$0 = function() { | 6809 TypeAnnotation.prototype.getBeginToken$0 = function() { |
6810 return this.getBeginToken(); | 6810 return this.getBeginToken(); |
6811 }; | 6811 }; |
6812 TypeAnnotation.prototype.getEndToken$0 = function() { | 6812 TypeAnnotation.prototype.getEndToken$0 = function() { |
6813 return this.getEndToken(); | 6813 return this.getEndToken(); |
6814 }; | 6814 }; |
6815 // ********** Code for VariableDefinitions ************** | 6815 // ********** Code for VariableDefinitions ************** |
6816 function VariableDefinitions(type, modifiers, definitions, endToken) { | 6816 function VariableDefinitions(type, modifiers, definitions, endToken) { |
6817 this.type = type; | 6817 this.type = type; |
6818 this.modifiers = modifiers; | 6818 this.modifiers = modifiers; |
6819 this.definitions = definitions; | 6819 this.definitions = definitions; |
6820 this.endToken = endToken; | 6820 this.endToken = endToken; |
6821 // Initializers done | 6821 // Initializers done |
6822 Statement.call(this); | 6822 tree_Statement.call(this); |
6823 } | 6823 } |
6824 $inherits(VariableDefinitions, Statement); | 6824 $inherits(VariableDefinitions, tree_Statement); |
6825 VariableDefinitions.prototype.is$VariableDefinitions = function(){return this;}; | 6825 VariableDefinitions.prototype.is$VariableDefinitions = function(){return this;}; |
6826 VariableDefinitions.prototype.get$type = function() { return this.type; }; | 6826 VariableDefinitions.prototype.get$type = function() { return this.type; }; |
6827 VariableDefinitions.prototype.accept = function(visitor) { | 6827 VariableDefinitions.prototype.accept = function(visitor) { |
6828 return visitor.visitVariableDefinitions(this); | 6828 return visitor.visitVariableDefinitions(this); |
6829 } | 6829 } |
6830 VariableDefinitions.prototype.getBeginToken = function() { | 6830 VariableDefinitions.prototype.getBeginToken = function() { |
6831 return firstBeginToken(this.type, this.definitions); | 6831 return firstBeginToken(this.type, this.definitions); |
6832 } | 6832 } |
6833 VariableDefinitions.prototype.getEndToken = function() { | 6833 VariableDefinitions.prototype.getEndToken = function() { |
6834 return this.endToken; | 6834 return this.endToken; |
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6986 this.sb.add(' '); | 6986 this.sb.add(' '); |
6987 this.visit(node.definitions); | 6987 this.visit(node.definitions); |
6988 if ($notnull_bool($eq(node.endToken.get$value(), const$208/*const SourceString
(';')*/))) { | 6988 if ($notnull_bool($eq(node.endToken.get$value(), const$208/*const SourceString
(';')*/))) { |
6989 this.add((($0 = node.endToken.get$value()) && $0.is$SourceString())); | 6989 this.add((($0 = node.endToken.get$value()) && $0.is$SourceString())); |
6990 } | 6990 } |
6991 } | 6991 } |
6992 Unparser.prototype.add$1 = function($0) { | 6992 Unparser.prototype.add$1 = function($0) { |
6993 return this.add(($0 && $0.is$SourceString())); | 6993 return this.add(($0 && $0.is$SourceString())); |
6994 }; | 6994 }; |
6995 Unparser.prototype.visit$1 = function($0) { | 6995 Unparser.prototype.visit$1 = function($0) { |
6996 return this.visit(($0 && $0.is$Node())); | 6996 return this.visit(($0 && $0.is$tree_Node())); |
6997 }; | 6997 }; |
6998 // ********** Code for top level ************** | 6998 // ********** Code for top level ************** |
6999 function firstBeginToken(first, second) { | 6999 function firstBeginToken(first, second) { |
7000 var $0; | 7000 var $0; |
7001 return (($0 = (first != null) ? first.getBeginToken() : second.getBeginToken()
) && $0.is$Token()); | 7001 return (($0 = (first != null) ? first.getBeginToken() : second.getBeginToken()
) && $0.is$scanner_Token()); |
7002 } | 7002 } |
7003 // ********** Library elements ************** | 7003 // ********** Library elements ************** |
7004 // ********** Code for ElementKind ************** | 7004 // ********** Code for ElementKind ************** |
7005 function ElementKind(id) { | 7005 function ElementKind(id) { |
7006 this.id = id; | 7006 this.id = id; |
7007 // Initializers done | 7007 // Initializers done |
7008 } | 7008 } |
7009 // ********** Code for Element ************** | 7009 // ********** Code for Element ************** |
7010 function Element(name, kind, enclosingElement) { | 7010 function Element(name, kind, enclosingElement) { |
7011 this.name = name; | 7011 this.name = name; |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7104 this.isResolved = true; | 7104 this.isResolved = true; |
7105 } | 7105 } |
7106 ClassElement.prototype.computeType$2 = ClassElement.prototype.computeType; | 7106 ClassElement.prototype.computeType$2 = ClassElement.prototype.computeType; |
7107 ClassElement.prototype.resolve$1 = function($0) { | 7107 ClassElement.prototype.resolve$1 = function($0) { |
7108 return this.resolve(($0 && $0.is$Compiler())); | 7108 return this.resolve(($0 && $0.is$Compiler())); |
7109 }; | 7109 }; |
7110 // ********** Code for top level ************** | 7110 // ********** Code for top level ************** |
7111 function getType(annotation, types) { | 7111 function getType(annotation, types) { |
7112 var $0; | 7112 var $0; |
7113 if (annotation == null || annotation.typeName == null) { | 7113 if (annotation == null || annotation.typeName == null) { |
7114 return (($0 = types.dynamicType) && $0.is$Type()); | 7114 return (($0 = types.dynamicType) && $0.is$leg_Type()); |
7115 } | 7115 } |
7116 return (($0 = types.lookup$1(annotation.typeName.get$source())) && $0.is$Type(
)); | 7116 return (($0 = types.lookup$1(annotation.typeName.get$source())) && $0.is$leg_T
ype()); |
7117 } | 7117 } |
7118 // ********** Library ssa ************** | 7118 // ********** Library ssa ************** |
7119 // ********** Code for SsaBuilderTask ************** | 7119 // ********** Code for SsaBuilderTask ************** |
7120 function SsaBuilderTask(compiler) { | 7120 function SsaBuilderTask(compiler) { |
7121 // Initializers done | 7121 // Initializers done |
7122 CompilerTask.call(this, compiler); | 7122 CompilerTask.call(this, compiler); |
7123 } | 7123 } |
7124 $inherits(SsaBuilderTask, CompilerTask); | 7124 $inherits(SsaBuilderTask, CompilerTask); |
7125 SsaBuilderTask.prototype.get$name = function() { | 7125 SsaBuilderTask.prototype.get$name = function() { |
7126 return 'SSA builder'; | 7126 return 'SSA builder'; |
7127 } | 7127 } |
7128 SsaBuilderTask.prototype.build = function(tree, elements) { | 7128 SsaBuilderTask.prototype.build = function(tree, elements) { |
7129 var $this = this; // closure support | 7129 var $this = this; // closure support |
7130 var $0; | 7130 var $0; |
7131 return (($0 = this.measure((function () { | 7131 return (($0 = this.measure((function () { |
7132 var $0; | 7132 var $0; |
7133 var function_ = (tree && tree.is$FunctionExpression()); | 7133 var function_ = (tree && tree.is$FunctionExpression()); |
7134 var graph = $this.compileMethod(function_.parameters, function_.body, elemen
ts); | 7134 var graph = $this.compileMethod(function_.parameters, function_.body, elemen
ts); |
7135 $assert(graph.isValid(), "graph.isValid()", "builder.dart", 14, 14); | 7135 $assert(graph.isValid(), "graph.isValid()", "builder.dart", 14, 14); |
7136 if (false/*null.GENERATE_SSA_TRACE*/) { | 7136 if (false/*null.GENERATE_SSA_TRACE*/) { |
7137 var name = (($0 = function_.name) && $0.is$Identifier()); | 7137 var name = (($0 = function_.name) && $0.is$tree_Identifier()); |
7138 HTracer.HTracer$singleton$factory().traceCompilation(name.get$source().toS
tring()); | 7138 HTracer.HTracer$singleton$factory().traceCompilation(name.get$source().toS
tring()); |
7139 HTracer.HTracer$singleton$factory().traceGraph('builder', graph); | 7139 HTracer.HTracer$singleton$factory().traceGraph('builder', graph); |
7140 } | 7140 } |
7141 return graph; | 7141 return graph; |
7142 }) | 7142 }) |
7143 )) && $0.is$HGraph()); | 7143 )) && $0.is$HGraph()); |
7144 } | 7144 } |
7145 SsaBuilderTask.prototype.compileMethod = function(parameters, body, elements) { | 7145 SsaBuilderTask.prototype.compileMethod = function(parameters, body, elements) { |
7146 var builder = new SsaBuilder(this.compiler, elements); | 7146 var builder = new SsaBuilder(this.compiler, elements); |
7147 var graph = builder.build(parameters, body); | 7147 var graph = builder.build(parameters, body); |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7200 if (node != null) node.accept(this); | 7200 if (node != null) node.accept(this); |
7201 } | 7201 } |
7202 SsaBuilder.prototype.visitParameters = function(parameters) { | 7202 SsaBuilder.prototype.visitParameters = function(parameters) { |
7203 var $0; | 7203 var $0; |
7204 var parameterIndex = 0; | 7204 var parameterIndex = 0; |
7205 for (var link = parameters.nodes; | 7205 for (var link = parameters.nodes; |
7206 !$notnull_bool(link.isEmpty()); link = (($0 = link.get$tail()) && $0.is$Link$
Node())) { | 7206 !$notnull_bool(link.isEmpty()); link = (($0 = link.get$tail()) && $0.is$Link$
Node())) { |
7207 var container = (($0 = link.get$head()) && $0.is$VariableDefinitions()); | 7207 var container = (($0 = link.get$head()) && $0.is$VariableDefinitions()); |
7208 var identifierLink = container.definitions.nodes; | 7208 var identifierLink = container.definitions.nodes; |
7209 $assert(!$notnull_bool(identifierLink.isEmpty()) && $notnull_bool(identifier
Link.get$tail().isEmpty$0()), "!identifierLink.isEmpty() && identifierLink.tail.
isEmpty()", "builder.dart", 115, 14); | 7209 $assert(!$notnull_bool(identifierLink.isEmpty()) && $notnull_bool(identifier
Link.get$tail().isEmpty$0()), "!identifierLink.isEmpty() && identifierLink.tail.
isEmpty()", "builder.dart", 115, 14); |
7210 if (!(identifierLink.get$head() instanceof Identifier)) { | 7210 if (!(identifierLink.get$head() instanceof tree_Identifier)) { |
7211 this.compiler.unimplemented("SsaBuilder.visitParameters non-identifier"); | 7211 this.compiler.unimplemented("SsaBuilder.visitParameters non-identifier"); |
7212 } | 7212 } |
7213 var parameterId = (($0 = identifierLink.get$head()) && $0.is$Identifier()); | 7213 var parameterId = (($0 = identifierLink.get$head()) && $0.is$tree_Identifier
()); |
7214 var element = (($0 = this.elements.$index(parameterId)) && $0.is$Element()); | 7214 var element = (($0 = this.elements.$index(parameterId)) && $0.is$Element()); |
7215 var parameterInstruction = new HParameter(parameterIndex++); | 7215 var parameterInstruction = new HParameter(parameterIndex++); |
7216 this.definitions.$setindex(element, parameterInstruction); | 7216 this.definitions.$setindex(element, parameterInstruction); |
7217 this.add(parameterInstruction); | 7217 this.add(parameterInstruction); |
7218 } | 7218 } |
7219 } | 7219 } |
7220 SsaBuilder.prototype.visitBlock = function(node) { | 7220 SsaBuilder.prototype.visitBlock = function(node) { |
7221 var $0; | 7221 var $0; |
7222 for (var link = node.statements.nodes; | 7222 for (var link = node.statements.nodes; |
7223 !$notnull_bool(link.isEmpty()); link = (($0 = link.get$tail()) && $0.is$Link$
Node())) { | 7223 !$notnull_bool(link.isEmpty()); link = (($0 = link.get$tail()) && $0.is$Link$
Node())) { |
7224 this.visit((($0 = link.get$head()) && $0.is$Node())); | 7224 this.visit((($0 = link.get$head()) && $0.is$tree_Node())); |
7225 if ($notnull_bool(this.isAborted())) { | 7225 if ($notnull_bool(this.isAborted())) { |
7226 if (!this.stack.isEmpty()) this.compiler.cancel('non-empty instruction sta
ck'); | 7226 if (!this.stack.isEmpty()) this.compiler.cancel('non-empty instruction sta
ck'); |
7227 return; | 7227 return; |
7228 } | 7228 } |
7229 } | 7229 } |
7230 $assert(!$notnull_bool(this.current.isClosed()), "!current.isClosed()", "build
er.dart", 138, 12); | 7230 $assert(!$notnull_bool(this.current.isClosed()), "!current.isClosed()", "build
er.dart", 138, 12); |
7231 if (!this.stack.isEmpty()) this.compiler.cancel('non-empty instruction stack')
; | 7231 if (!this.stack.isEmpty()) this.compiler.cancel('non-empty instruction stack')
; |
7232 } | 7232 } |
7233 SsaBuilder.prototype.visitClassNode = function(node) { | 7233 SsaBuilder.prototype.visitClassNode = function(node) { |
7234 this.compiler.unimplemented("SsaBuilder.visitClassNode"); | 7234 this.compiler.unimplemented("SsaBuilder.visitClassNode"); |
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7401 } | 7401 } |
7402 this.stack.add(this.definitions.$index(element)); | 7402 this.stack.add(this.definitions.$index(element)); |
7403 } | 7403 } |
7404 else { | 7404 else { |
7405 var link = node.get$arguments(); | 7405 var link = node.get$arguments(); |
7406 if (element.kind === const$204/*ElementKind.FOREIGN*/) { | 7406 if (element.kind === const$204/*ElementKind.FOREIGN*/) { |
7407 link = (($0 = link.get$tail()) && $0.is$Link$Node()); | 7407 link = (($0 = link.get$tail()) && $0.is$Link$Node()); |
7408 } | 7408 } |
7409 var arguments = []; | 7409 var arguments = []; |
7410 for (; !$notnull_bool(link.isEmpty()); link = (($0 = link.get$tail()) && $0.
is$Link$Node())) { | 7410 for (; !$notnull_bool(link.isEmpty()); link = (($0 = link.get$tail()) && $0.
is$Link$Node())) { |
7411 this.visit((($0 = link.get$head()) && $0.is$Node())); | 7411 this.visit((($0 = link.get$head()) && $0.is$tree_Node())); |
7412 arguments.add$1(this.pop()); | 7412 arguments.add$1(this.pop()); |
7413 } | 7413 } |
7414 if (element.kind === const$204/*ElementKind.FOREIGN*/) { | 7414 if (element.kind === const$204/*ElementKind.FOREIGN*/) { |
7415 var literal = (($0 = node.get$arguments().get$head()) && $0.is$LiteralStri
ng()); | 7415 var literal = (($0 = node.get$arguments().get$head()) && $0.is$LiteralStri
ng()); |
7416 this.compiler.ensure((literal instanceof LiteralString)); | 7416 this.compiler.ensure((literal instanceof LiteralString)); |
7417 this.push(new HInvokeForeign(element, arguments, this.unquote(literal))); | 7417 this.push(new HInvokeForeign(element, arguments, this.unquote(literal))); |
7418 } | 7418 } |
7419 else { | 7419 else { |
7420 var selector = (($0 = node.selector) && $0.is$Identifier()); | 7420 var selector = (($0 = node.selector) && $0.is$tree_Identifier()); |
7421 this.push(new HInvoke(element, arguments)); | 7421 this.push(new HInvoke(element, arguments)); |
7422 } | 7422 } |
7423 } | 7423 } |
7424 } | 7424 } |
7425 SsaBuilder.prototype.visitSendSet = function(node) { | 7425 SsaBuilder.prototype.visitSendSet = function(node) { |
7426 this.stack.add(this.updateDefinition(node)); | 7426 this.stack.add(this.updateDefinition(node)); |
7427 } | 7427 } |
7428 SsaBuilder.prototype.visitLiteralInt = function(node) { | 7428 SsaBuilder.prototype.visitLiteralInt = function(node) { |
7429 this.push(new HLiteral(node.get$value())); | 7429 this.push(new HLiteral(node.get$value())); |
7430 } | 7430 } |
7431 SsaBuilder.prototype.visitLiteralDouble = function(node) { | 7431 SsaBuilder.prototype.visitLiteralDouble = function(node) { |
7432 this.push(new HLiteral(node.get$value())); | 7432 this.push(new HLiteral(node.get$value())); |
7433 } | 7433 } |
7434 SsaBuilder.prototype.visitLiteralBool = function(node) { | 7434 SsaBuilder.prototype.visitLiteralBool = function(node) { |
7435 this.push(new HLiteral(node.get$value())); | 7435 this.push(new HLiteral(node.get$value())); |
7436 } | 7436 } |
7437 SsaBuilder.prototype.visitLiteralString = function(node) { | 7437 SsaBuilder.prototype.visitLiteralString = function(node) { |
7438 this.push(new HLiteral(node.get$value())); | 7438 this.push(new HLiteral(node.get$value())); |
7439 } | 7439 } |
7440 SsaBuilder.prototype.visitNodeList = function(node) { | 7440 SsaBuilder.prototype.visitNodeList = function(node) { |
7441 var $0; | 7441 var $0; |
7442 for (var link = node.nodes; | 7442 for (var link = node.nodes; |
7443 !$notnull_bool(link.isEmpty()); link = (($0 = link.get$tail()) && $0.is$Link$
Node())) { | 7443 !$notnull_bool(link.isEmpty()); link = (($0 = link.get$tail()) && $0.is$Link$
Node())) { |
7444 this.visit((($0 = link.get$head()) && $0.is$Node())); | 7444 this.visit((($0 = link.get$head()) && $0.is$tree_Node())); |
7445 } | 7445 } |
7446 } | 7446 } |
7447 SsaBuilder.prototype.visitOperator = function(node) { | 7447 SsaBuilder.prototype.visitOperator = function(node) { |
7448 this.compiler.unimplemented("SsaBuilder.visitOperator"); | 7448 this.compiler.unimplemented("SsaBuilder.visitOperator"); |
7449 } | 7449 } |
7450 SsaBuilder.prototype.visitReturn = function(node) { | 7450 SsaBuilder.prototype.visitReturn = function(node) { |
7451 if (node.expression == null) { | 7451 if (node.expression == null) { |
7452 this.compiler.unimplemented("SsaBuilder: return without expression"); | 7452 this.compiler.unimplemented("SsaBuilder: return without expression"); |
7453 } | 7453 } |
7454 this.visit(node.expression); | 7454 this.visit(node.expression); |
(...skipping 10 matching lines...) Expand all Loading... |
7465 SsaBuilder.prototype.visitTypeAnnotation = function(node) { | 7465 SsaBuilder.prototype.visitTypeAnnotation = function(node) { |
7466 | 7466 |
7467 } | 7467 } |
7468 SsaBuilder.prototype.updateDefinition = function(node) { | 7468 SsaBuilder.prototype.updateDefinition = function(node) { |
7469 var $0; | 7469 var $0; |
7470 if (node.receiver != null) { | 7470 if (node.receiver != null) { |
7471 this.compiler.unimplemented("SsaBuilder: property access"); | 7471 this.compiler.unimplemented("SsaBuilder: property access"); |
7472 } | 7472 } |
7473 var link = node.get$arguments(); | 7473 var link = node.get$arguments(); |
7474 $assert(!$notnull_bool(link.isEmpty()) && $notnull_bool(link.get$tail().isEmpt
y$0()), "!link.isEmpty() && link.tail.isEmpty()", "builder.dart", 438, 12); | 7474 $assert(!$notnull_bool(link.isEmpty()) && $notnull_bool(link.get$tail().isEmpt
y$0()), "!link.isEmpty() && link.tail.isEmpty()", "builder.dart", 438, 12); |
7475 this.visit((($0 = link.get$head()) && $0.is$Node())); | 7475 this.visit((($0 = link.get$head()) && $0.is$tree_Node())); |
7476 var value = this.pop(); | 7476 var value = this.pop(); |
7477 this.definitions.$setindex(this.elements.$index(node), value); | 7477 this.definitions.$setindex(this.elements.$index(node), value); |
7478 return value; | 7478 return value; |
7479 } | 7479 } |
7480 SsaBuilder.prototype.visitVariableDefinitions = function(node) { | 7480 SsaBuilder.prototype.visitVariableDefinitions = function(node) { |
7481 var $0; | 7481 var $0; |
7482 for (var link = node.definitions.nodes; | 7482 for (var link = node.definitions.nodes; |
7483 !$notnull_bool(link.isEmpty()); link = (($0 = link.get$tail()) && $0.is$Link$
Node())) { | 7483 !$notnull_bool(link.isEmpty()); link = (($0 = link.get$tail()) && $0.is$Link$
Node())) { |
7484 var definition = (($0 = link.get$head()) && $0.is$Node()); | 7484 var definition = (($0 = link.get$head()) && $0.is$tree_Node()); |
7485 if ((definition instanceof Identifier)) { | 7485 if ((definition instanceof tree_Identifier)) { |
7486 this.compiler.unimplemented("SsaBuilder.visitVariableDefinitions without i
nitial value"); | 7486 this.compiler.unimplemented("SsaBuilder.visitVariableDefinitions without i
nitial value"); |
7487 } | 7487 } |
7488 else { | 7488 else { |
7489 $assert((definition instanceof SendSet), "definition is SendSet", "builder
.dart", 454, 16); | 7489 $assert((definition instanceof SendSet), "definition is SendSet", "builder
.dart", 454, 16); |
7490 this.updateDefinition((definition && definition.is$SendSet())); | 7490 this.updateDefinition((definition && definition.is$SendSet())); |
7491 } | 7491 } |
7492 } | 7492 } |
7493 } | 7493 } |
7494 SsaBuilder.prototype.add$1 = function($0) { | 7494 SsaBuilder.prototype.add$1 = function($0) { |
7495 return this.add(($0 && $0.is$HInstruction())); | 7495 return this.add(($0 && $0.is$HInstruction())); |
7496 }; | 7496 }; |
7497 SsaBuilder.prototype.visit$1 = function($0) { | 7497 SsaBuilder.prototype.visit$1 = function($0) { |
7498 return this.visit(($0 && $0.is$Node())); | 7498 return this.visit(($0 && $0.is$tree_Node())); |
7499 }; | 7499 }; |
7500 // ********** Code for SsaCodeGeneratorTask ************** | 7500 // ********** Code for SsaCodeGeneratorTask ************** |
7501 function SsaCodeGeneratorTask(compiler) { | 7501 function SsaCodeGeneratorTask(compiler) { |
7502 // Initializers done | 7502 // Initializers done |
7503 CompilerTask.call(this, compiler); | 7503 CompilerTask.call(this, compiler); |
7504 } | 7504 } |
7505 $inherits(SsaCodeGeneratorTask, CompilerTask); | 7505 $inherits(SsaCodeGeneratorTask, CompilerTask); |
7506 SsaCodeGeneratorTask.prototype.get$name = function() { | 7506 SsaCodeGeneratorTask.prototype.get$name = function() { |
7507 return 'SSA code generator'; | 7507 return 'SSA code generator'; |
7508 } | 7508 } |
7509 SsaCodeGeneratorTask.prototype.generate = function(tree, graph) { | 7509 SsaCodeGeneratorTask.prototype.generate = function(tree, graph) { |
7510 var $this = this; // closure support | 7510 var $this = this; // closure support |
7511 return $assert_String(this.measure((function () { | 7511 return $assert_String(this.measure((function () { |
7512 var $0; | 7512 var $0; |
7513 var function_ = (tree && tree.is$FunctionExpression()); | 7513 var function_ = (tree && tree.is$FunctionExpression()); |
7514 var parameters = function_.parameters; | 7514 var parameters = function_.parameters; |
7515 var parameterNames = []; | 7515 var parameterNames = []; |
7516 for (var link = parameters.nodes; | 7516 for (var link = parameters.nodes; |
7517 !$notnull_bool(link.isEmpty$0()); link = link.get$tail()) { | 7517 !$notnull_bool(link.isEmpty$0()); link = link.get$tail()) { |
7518 var parameter = (($0 = link.get$head()) && $0.is$VariableDefinitions()); | 7518 var parameter = (($0 = link.get$head()) && $0.is$VariableDefinitions()); |
7519 var name = (($0 = parameter.definitions.nodes.get$head().get$source()) &&
$0.is$SourceString()); | 7519 var name = (($0 = parameter.definitions.nodes.get$head().get$source()) &&
$0.is$SourceString()); |
7520 parameterNames.add(JsNames.getValid(('' + name + ''))); | 7520 parameterNames.add(JsNames.getValid(('' + name + ''))); |
7521 } | 7521 } |
7522 var name = (($0 = function_.name) && $0.is$Identifier()); | 7522 var name = (($0 = function_.name) && $0.is$tree_Identifier()); |
7523 if (false/*null.GENERATE_SSA_TRACE*/) { | 7523 if (false/*null.GENERATE_SSA_TRACE*/) { |
7524 HTracer.HTracer$singleton$factory().traceGraph("codegen", graph); | 7524 HTracer.HTracer$singleton$factory().traceGraph("codegen", graph); |
7525 } | 7525 } |
7526 var code = $this.generateMethod(name.get$source(), parameterNames, graph); | 7526 var code = $this.generateMethod(name.get$source(), parameterNames, graph); |
7527 return code; | 7527 return code; |
7528 }) | 7528 }) |
7529 )); | 7529 )); |
7530 } | 7530 } |
7531 SsaCodeGeneratorTask.prototype.generateMethod = function(methodName, parameterNa
mes, graph) { | 7531 SsaCodeGeneratorTask.prototype.generateMethod = function(methodName, parameterNa
mes, graph) { |
7532 new SsaPhiEliminator().visitGraph(graph); | 7532 new SsaPhiEliminator().visitGraph(graph); |
(...skipping 745 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8278 HInstruction.prototype.getFlag = function(position) { | 8278 HInstruction.prototype.getFlag = function(position) { |
8279 return (this.flags & (1 << position)) != 0; | 8279 return (this.flags & (1 << position)) != 0; |
8280 } | 8280 } |
8281 HInstruction.prototype.setFlag = function(position) { | 8281 HInstruction.prototype.setFlag = function(position) { |
8282 this.flags |= (1 << position); | 8282 this.flags |= (1 << position); |
8283 } | 8283 } |
8284 HInstruction.computeDependsOnFlags = function(flags) { | 8284 HInstruction.computeDependsOnFlags = function(flags) { |
8285 return flags << 1/*HInstruction.FLAG_CHANGES_COUNT*/; | 8285 return flags << 1/*HInstruction.FLAG_CHANGES_COUNT*/; |
8286 } | 8286 } |
8287 HInstruction.prototype.getChangesFlags = function() { | 8287 HInstruction.prototype.getChangesFlags = function() { |
8288 return this.flags & (1)/*((1 << FLAG_CHANGES_COUNT) - 1)*/; | 8288 return this.flags & (1.0)/*((1 << FLAG_CHANGES_COUNT) - 1)*/; |
8289 } | 8289 } |
8290 HInstruction.prototype.hasSideEffects = function() { | 8290 HInstruction.prototype.hasSideEffects = function() { |
8291 return this.getChangesFlags() != 0; | 8291 return this.getChangesFlags() != 0; |
8292 } | 8292 } |
8293 HInstruction.prototype.prepareGvn = function() { | 8293 HInstruction.prototype.prepareGvn = function() { |
8294 this.setAllSideEffects(); | 8294 this.setAllSideEffects(); |
8295 } | 8295 } |
8296 HInstruction.prototype.setAllSideEffects = function() { | 8296 HInstruction.prototype.setAllSideEffects = function() { |
8297 this.flags |= (1)/*((1 << FLAG_CHANGES_COUNT) - 1)*/; | 8297 this.flags |= (1.0)/*((1 << FLAG_CHANGES_COUNT) - 1)*/; |
8298 } | 8298 } |
8299 HInstruction.prototype.clearAllSideEffects = function() { | 8299 HInstruction.prototype.clearAllSideEffects = function() { |
8300 this.flags &= -2/*~((1 << FLAG_CHANGES_COUNT) - 1)*/; | 8300 this.flags &= -2.0/*~((1 << FLAG_CHANGES_COUNT) - 1)*/; |
8301 } | 8301 } |
8302 HInstruction.prototype.generateAtUseSite = function() { | 8302 HInstruction.prototype.generateAtUseSite = function() { |
8303 return this.getFlag(2/*HInstruction.FLAG_GENERATE_AT_USE_SITE*/); | 8303 return this.getFlag(2/*HInstruction.FLAG_GENERATE_AT_USE_SITE*/); |
8304 } | 8304 } |
8305 HInstruction.prototype.setGenerateAtUseSite = function() { | 8305 HInstruction.prototype.setGenerateAtUseSite = function() { |
8306 this.setFlag(2/*HInstruction.FLAG_GENERATE_AT_USE_SITE*/); | 8306 this.setFlag(2/*HInstruction.FLAG_GENERATE_AT_USE_SITE*/); |
8307 } | 8307 } |
8308 HInstruction.prototype.useGvn = function() { | 8308 HInstruction.prototype.useGvn = function() { |
8309 return this.getFlag(3/*HInstruction.FLAG_USE_GVN*/); | 8309 return this.getFlag(3/*HInstruction.FLAG_USE_GVN*/); |
8310 } | 8310 } |
(...skipping 1437 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9748 } | 9748 } |
9749 ResolverTask.prototype.resolveType = function(tree) { | 9749 ResolverTask.prototype.resolveType = function(tree) { |
9750 var $this = this; // closure support | 9750 var $this = this; // closure support |
9751 this.measure((function () { | 9751 this.measure((function () { |
9752 var visitor = new ClassResolverVisitor($this.compiler); | 9752 var visitor = new ClassResolverVisitor($this.compiler); |
9753 visitor.visit(tree); | 9753 visitor.visit(tree); |
9754 }) | 9754 }) |
9755 ); | 9755 ); |
9756 } | 9756 } |
9757 ResolverTask.prototype.resolve$1 = function($0) { | 9757 ResolverTask.prototype.resolve$1 = function($0) { |
9758 return this.resolve(($0 && $0.is$Node())); | 9758 return this.resolve(($0 && $0.is$tree_Node())); |
9759 }; | 9759 }; |
9760 // ********** Code for ErrorMessages ************** | 9760 // ********** Code for ErrorMessages ************** |
9761 function ErrorMessages() {} | 9761 function ErrorMessages() {} |
9762 ErrorMessages.cannotResolve = function(id) { | 9762 ErrorMessages.cannotResolve = function(id) { |
9763 return ("cannot resolve " + id + ""); | 9763 return ("cannot resolve " + id + ""); |
9764 } | 9764 } |
9765 ErrorMessages.cannotResolveType = function(id) { | 9765 ErrorMessages.cannotResolveType = function(id) { |
9766 return ("cannot resolve type " + id + ""); | 9766 return ("cannot resolve type " + id + ""); |
9767 } | 9767 } |
9768 ErrorMessages.duplicateDefinition = function(id) { | 9768 ErrorMessages.duplicateDefinition = function(id) { |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9834 if ($notnull_bool($eq(name, const$217/*const SourceString('*')*/))) return con
st$218/*const SourceString('mul')*/; | 9834 if ($notnull_bool($eq(name, const$217/*const SourceString('*')*/))) return con
st$218/*const SourceString('mul')*/; |
9835 if ($notnull_bool($eq(name, const$219/*const SourceString('/')*/))) return con
st$220/*const SourceString('div')*/; | 9835 if ($notnull_bool($eq(name, const$219/*const SourceString('/')*/))) return con
st$220/*const SourceString('div')*/; |
9836 if ($notnull_bool($eq(name, const$221/*const SourceString('~/')*/))) return co
nst$222/*const SourceString('tdiv')*/; | 9836 if ($notnull_bool($eq(name, const$221/*const SourceString('~/')*/))) return co
nst$222/*const SourceString('tdiv')*/; |
9837 if ($notnull_bool($eq(name, const$223/*const SourceString('==')*/))) return co
nst$224/*const SourceString('eq')*/; | 9837 if ($notnull_bool($eq(name, const$223/*const SourceString('==')*/))) return co
nst$224/*const SourceString('eq')*/; |
9838 if ($notnull_bool($eq(name, const$225/*const SourceString('<')*/))) return con
st$226/*const SourceString('lt')*/; | 9838 if ($notnull_bool($eq(name, const$225/*const SourceString('<')*/))) return con
st$226/*const SourceString('lt')*/; |
9839 return name; | 9839 return name; |
9840 } | 9840 } |
9841 ResolverVisitor.prototype.visitSend = function(node) { | 9841 ResolverVisitor.prototype.visitSend = function(node) { |
9842 var $0; | 9842 var $0; |
9843 this.visit(node.receiver); | 9843 this.visit(node.receiver); |
9844 var identifier = (($0 = node.selector) && $0.is$Identifier()); | 9844 var identifier = (($0 = node.selector) && $0.is$tree_Identifier()); |
9845 var name = this.potentiallyMapOperatorToMethodName(identifier.get$source()); | 9845 var name = this.potentiallyMapOperatorToMethodName(identifier.get$source()); |
9846 var target = this.context.lookup(name); | 9846 var target = this.context.lookup(name); |
9847 if (target == null) this.fail(node, ErrorMessages.cannotResolve(name)); | 9847 if (target == null) this.fail(node, ErrorMessages.cannotResolve(name)); |
9848 this.visit(node.argumentsNode); | 9848 this.visit(node.argumentsNode); |
9849 return this.useElement(node, target); | 9849 return this.useElement(node, target); |
9850 } | 9850 } |
9851 ResolverVisitor.prototype.visitSendSet = function(node) { | 9851 ResolverVisitor.prototype.visitSendSet = function(node) { |
9852 var $0; | 9852 var $0; |
9853 var receiver = (($0 = this.visit(node.receiver)) && $0.is$Element()); | 9853 var receiver = (($0 = this.visit(node.receiver)) && $0.is$Element()); |
9854 var selector = (($0 = node.selector) && $0.is$Identifier()); | 9854 var selector = (($0 = node.selector) && $0.is$tree_Identifier()); |
9855 if (receiver != null) { | 9855 if (receiver != null) { |
9856 this.compiler.unimplemented('Resolver: property access'); | 9856 this.compiler.unimplemented('Resolver: property access'); |
9857 } | 9857 } |
9858 var target = this.context.lookup(selector.get$source()); | 9858 var target = this.context.lookup(selector.get$source()); |
9859 if (target == null) this.fail(node, ErrorMessages.cannotResolve(node)); | 9859 if (target == null) this.fail(node, ErrorMessages.cannotResolve(node)); |
9860 this.visit(node.argumentsNode); | 9860 this.visit(node.argumentsNode); |
9861 return this.useElement(node, target); | 9861 return this.useElement(node, target); |
9862 } | 9862 } |
9863 ResolverVisitor.prototype.visitLiteralInt = function(node) { | 9863 ResolverVisitor.prototype.visitLiteralInt = function(node) { |
9864 | 9864 |
9865 } | 9865 } |
9866 ResolverVisitor.prototype.visitLiteralDouble = function(node) { | 9866 ResolverVisitor.prototype.visitLiteralDouble = function(node) { |
9867 | 9867 |
9868 } | 9868 } |
9869 ResolverVisitor.prototype.visitLiteralBool = function(node) { | 9869 ResolverVisitor.prototype.visitLiteralBool = function(node) { |
9870 | 9870 |
9871 } | 9871 } |
9872 ResolverVisitor.prototype.visitLiteralString = function(node) { | 9872 ResolverVisitor.prototype.visitLiteralString = function(node) { |
9873 | 9873 |
9874 } | 9874 } |
9875 ResolverVisitor.prototype.visitNodeList = function(node) { | 9875 ResolverVisitor.prototype.visitNodeList = function(node) { |
9876 var $0; | 9876 var $0; |
9877 for (var link = node.nodes; | 9877 for (var link = node.nodes; |
9878 !$notnull_bool(link.isEmpty()); link = (($0 = link.get$tail()) && $0.is$Link$
Node())) { | 9878 !$notnull_bool(link.isEmpty()); link = (($0 = link.get$tail()) && $0.is$Link$
Node())) { |
9879 this.visit((($0 = link.get$head()) && $0.is$Node())); | 9879 this.visit((($0 = link.get$head()) && $0.is$tree_Node())); |
9880 } | 9880 } |
9881 } | 9881 } |
9882 ResolverVisitor.prototype.visitOperator = function(node) { | 9882 ResolverVisitor.prototype.visitOperator = function(node) { |
9883 this.fail(node, "Unimplemented in the resolver"); | 9883 this.fail(node, "Unimplemented in the resolver"); |
9884 } | 9884 } |
9885 ResolverVisitor.prototype.visitReturn = function(node) { | 9885 ResolverVisitor.prototype.visitReturn = function(node) { |
9886 this.visit(node.expression); | 9886 this.visit(node.expression); |
9887 } | 9887 } |
9888 ResolverVisitor.prototype.visitThrow = function(node) { | 9888 ResolverVisitor.prototype.visitThrow = function(node) { |
9889 this.visit(node.expression); | 9889 this.visit(node.expression); |
(...skipping 25 matching lines...) Expand all Loading... |
9915 this.compiler.ensure(element != null); | 9915 this.compiler.ensure(element != null); |
9916 this.mapping.$setindex(node, element); | 9916 this.mapping.$setindex(node, element); |
9917 return (($0 = this.context.add(element)) && $0.is$Element()); | 9917 return (($0 = this.context.add(element)) && $0.is$Element()); |
9918 } | 9918 } |
9919 ResolverVisitor.prototype.useElement = function(node, element) { | 9919 ResolverVisitor.prototype.useElement = function(node, element) { |
9920 if (element == null) return null; | 9920 if (element == null) return null; |
9921 this.mapping.$setindex(node, element); | 9921 this.mapping.$setindex(node, element); |
9922 return element; | 9922 return element; |
9923 } | 9923 } |
9924 ResolverVisitor.prototype.visit$1 = function($0) { | 9924 ResolverVisitor.prototype.visit$1 = function($0) { |
9925 return this.visit(($0 && $0.is$Node())); | 9925 return this.visit(($0 && $0.is$tree_Node())); |
9926 }; | 9926 }; |
9927 // ********** Code for ClassResolverVisitor ************** | 9927 // ********** Code for ClassResolverVisitor ************** |
9928 function ClassResolverVisitor(compiler) { | 9928 function ClassResolverVisitor(compiler) { |
9929 this.compiler = compiler; | 9929 this.compiler = compiler; |
9930 this.context = new TopScope(compiler.universe); | 9930 this.context = new TopScope(compiler.universe); |
9931 // Initializers done | 9931 // Initializers done |
9932 } | 9932 } |
9933 ClassResolverVisitor.prototype.is$Visitor = function(){return this;}; | 9933 ClassResolverVisitor.prototype.is$Visitor = function(){return this;}; |
9934 ClassResolverVisitor.prototype.visitClassNode = function(node) { | 9934 ClassResolverVisitor.prototype.visitClassNode = function(node) { |
9935 var $0; | 9935 var $0; |
9936 var element = (($0 = this.context.lookup(node.name.get$source())) && $0.is$Cla
ssElement()); | 9936 var element = (($0 = this.context.lookup(node.name.get$source())) && $0.is$Cla
ssElement()); |
9937 this.compiler.ensure(element != null); | 9937 this.compiler.ensure(element != null); |
9938 this.compiler.ensure(!$notnull_bool(element.isResolved)); | 9938 this.compiler.ensure(!$notnull_bool(element.isResolved)); |
9939 element.supertype = this.visit(node.superclass); | 9939 element.supertype = this.visit(node.superclass); |
9940 for (var link = node.interfaces.nodes; | 9940 for (var link = node.interfaces.nodes; |
9941 !$notnull_bool(link.isEmpty()); link = (($0 = link.get$tail()) && $0.is$Link$
Node())) { | 9941 !$notnull_bool(link.isEmpty()); link = (($0 = link.get$tail()) && $0.is$Link$
Node())) { |
9942 element.interfaces = (($0 = element.interfaces.prepend(this.visit((($0 = lin
k.get$head()) && $0.is$Node())))) && $0.is$Link$Type()); | 9942 element.interfaces = (($0 = element.interfaces.prepend(this.visit((($0 = lin
k.get$head()) && $0.is$tree_Node())))) && $0.is$Link$Type()); |
9943 } | 9943 } |
9944 return element.computeType(this.compiler, null); | 9944 return element.computeType(this.compiler, null); |
9945 } | 9945 } |
9946 ClassResolverVisitor.prototype.visitTypeAnnotation = function(node) { | 9946 ClassResolverVisitor.prototype.visitTypeAnnotation = function(node) { |
9947 var $0; | 9947 var $0; |
9948 var name = node.typeName; | 9948 var name = node.typeName; |
9949 var element = this.context.lookup(name.get$source()); | 9949 var element = this.context.lookup(name.get$source()); |
9950 if (element == null) { | 9950 if (element == null) { |
9951 this.compiler.cancel(ErrorMessages.cannotResolveType(name)); | 9951 this.compiler.cancel(ErrorMessages.cannotResolveType(name)); |
9952 } | 9952 } |
9953 else if (element.kind !== const$199/*ElementKind.CLASS*/) { | 9953 else if (element.kind !== const$199/*ElementKind.CLASS*/) { |
9954 this.compiler.cancel(ErrorMessages.notAType(name)); | 9954 this.compiler.cancel(ErrorMessages.notAType(name)); |
9955 } | 9955 } |
9956 else { | 9956 else { |
9957 this.compiler.resolver.toResolve.add(element); | 9957 this.compiler.resolver.toResolve.add(element); |
9958 return (($0 = element.computeType(this.compiler, null)) && $0.is$Type()); | 9958 return (($0 = element.computeType(this.compiler, null)) && $0.is$leg_Type())
; |
9959 } | 9959 } |
9960 return null; | 9960 return null; |
9961 } | 9961 } |
9962 ClassResolverVisitor.prototype.visit = function(node) { | 9962 ClassResolverVisitor.prototype.visit = function(node) { |
9963 var $0; | 9963 var $0; |
9964 if (node == null) return null; | 9964 if (node == null) return null; |
9965 return (($0 = node.accept(this)) && $0.is$Type()); | 9965 return (($0 = node.accept(this)) && $0.is$leg_Type()); |
9966 } | 9966 } |
9967 ClassResolverVisitor.prototype.visit$1 = function($0) { | 9967 ClassResolverVisitor.prototype.visit$1 = function($0) { |
9968 return this.visit(($0 && $0.is$Node())); | 9968 return this.visit(($0 && $0.is$tree_Node())); |
9969 }; | 9969 }; |
9970 // ********** Code for VariableDefinitionsVisitor ************** | 9970 // ********** Code for VariableDefinitionsVisitor ************** |
9971 function VariableDefinitionsVisitor(definitions, resolver) { | 9971 function VariableDefinitionsVisitor(definitions, resolver) { |
9972 this.definitions = definitions; | 9972 this.definitions = definitions; |
9973 this.resolver = resolver; | 9973 this.resolver = resolver; |
9974 // Initializers done | 9974 // Initializers done |
9975 } | 9975 } |
9976 VariableDefinitionsVisitor.prototype.is$Visitor = function(){return this;}; | 9976 VariableDefinitionsVisitor.prototype.is$Visitor = function(){return this;}; |
9977 VariableDefinitionsVisitor.prototype.visitSendSet = function(node) { | 9977 VariableDefinitionsVisitor.prototype.visitSendSet = function(node) { |
9978 var $0; | 9978 var $0; |
9979 $assert(node.get$arguments().get$tail().isEmpty$0(), "node.arguments.tail.isEm
pty()", "resolver.dart", 269, 12); | 9979 $assert(node.get$arguments().get$tail().isEmpty$0(), "node.arguments.tail.isEm
pty()", "resolver.dart", 269, 12); |
9980 if (node.receiver != null) { | 9980 if (node.receiver != null) { |
9981 this.resolver.compiler.unimplemented("receiver on a variable definition"); | 9981 this.resolver.compiler.unimplemented("receiver on a variable definition"); |
9982 } | 9982 } |
9983 var selector = (($0 = node.selector) && $0.is$Identifier()); | 9983 var selector = (($0 = node.selector) && $0.is$tree_Identifier()); |
9984 this.resolver.visit((($0 = node.get$arguments().get$head()) && $0.is$Node())); | 9984 this.resolver.visit((($0 = node.get$arguments().get$head()) && $0.is$tree_Node
())); |
9985 return (($0 = this.visit(node.selector)) && $0.is$SourceString()); | 9985 return (($0 = this.visit(node.selector)) && $0.is$SourceString()); |
9986 } | 9986 } |
9987 VariableDefinitionsVisitor.prototype.visitIdentifier = function(node) { | 9987 VariableDefinitionsVisitor.prototype.visitIdentifier = function(node) { |
9988 return node.get$source(); | 9988 return node.get$source(); |
9989 } | 9989 } |
9990 VariableDefinitionsVisitor.prototype.visitNodeList = function(node) { | 9990 VariableDefinitionsVisitor.prototype.visitNodeList = function(node) { |
9991 var $0; | 9991 var $0; |
9992 for (var link = node.nodes; | 9992 for (var link = node.nodes; |
9993 !$notnull_bool(link.isEmpty()); link = (($0 = link.get$tail()) && $0.is$Link$
Node())) { | 9993 !$notnull_bool(link.isEmpty()); link = (($0 = link.get$tail()) && $0.is$Link$
Node())) { |
9994 var name = (($0 = this.visit((($0 = link.get$head()) && $0.is$Node()))) && $
0.is$SourceString()); | 9994 var name = (($0 = this.visit((($0 = link.get$head()) && $0.is$tree_Node())))
&& $0.is$SourceString()); |
9995 var element = new VariableElement((($0 = link.get$head()) && $0.is$Node()),
this.definitions.type, name, this.resolver.context.enclosingElement); | 9995 var element = new VariableElement((($0 = link.get$head()) && $0.is$tree_Node
()), this.definitions.type, name, this.resolver.context.enclosingElement); |
9996 var existing = this.resolver.defineElement((($0 = link.get$head()) && $0.is$
Node()), element); | 9996 var existing = this.resolver.defineElement((($0 = link.get$head()) && $0.is$
tree_Node()), element); |
9997 if ($ne(existing, element)) { | 9997 if ($ne(existing, element)) { |
9998 this.resolver.fail(node, ErrorMessages.duplicateDefinition(link.get$head()
)); | 9998 this.resolver.fail(node, ErrorMessages.duplicateDefinition(link.get$head()
)); |
9999 } | 9999 } |
10000 } | 10000 } |
10001 } | 10001 } |
10002 VariableDefinitionsVisitor.prototype.visit = function(node) { | 10002 VariableDefinitionsVisitor.prototype.visit = function(node) { |
10003 return node.accept(this); | 10003 return node.accept(this); |
10004 } | 10004 } |
10005 VariableDefinitionsVisitor.prototype.visit$1 = function($0) { | 10005 VariableDefinitionsVisitor.prototype.visit$1 = function($0) { |
10006 return this.visit(($0 && $0.is$Node())); | 10006 return this.visit(($0 && $0.is$tree_Node())); |
10007 }; | 10007 }; |
10008 // ********** Code for Scope ************** | 10008 // ********** Code for Scope ************** |
10009 function Scope(parent) { | 10009 function Scope(parent) { |
10010 // Initializers done | 10010 // Initializers done |
10011 Scope.enclosing$ctor.call(this, parent, parent.enclosingElement); | 10011 Scope.enclosing$ctor.call(this, parent, parent.enclosingElement); |
10012 } | 10012 } |
10013 Scope.top$ctor = function() { | |
10014 this.parent = null; | |
10015 this.elements = const$212/*const {}*/; | |
10016 this.enclosingElement = null; | |
10017 // Initializers done | |
10018 } | |
10019 Scope.top$ctor.prototype = Scope.prototype; | |
10020 Scope.enclosing$ctor = function(parent, enclosingElement) { | 10013 Scope.enclosing$ctor = function(parent, enclosingElement) { |
10021 this.parent = parent; | 10014 this.parent = parent; |
10022 this.enclosingElement = enclosingElement; | 10015 this.enclosingElement = enclosingElement; |
10023 this.elements = $map([]); | 10016 this.elements = $map([]); |
10024 // Initializers done | 10017 // Initializers done |
10025 } | 10018 } |
10026 Scope.enclosing$ctor.prototype = Scope.prototype; | 10019 Scope.enclosing$ctor.prototype = Scope.prototype; |
| 10020 Scope.top$ctor = function() { |
| 10021 this.parent = null; |
| 10022 this.elements = const$212/*const {}*/; |
| 10023 this.enclosingElement = null; |
| 10024 // Initializers done |
| 10025 } |
| 10026 Scope.top$ctor.prototype = Scope.prototype; |
10027 Scope.prototype.get$parent = function() { return this.parent; }; | 10027 Scope.prototype.get$parent = function() { return this.parent; }; |
10028 Scope.prototype.lookup = function(name) { | 10028 Scope.prototype.lookup = function(name) { |
10029 var $0; | 10029 var $0; |
10030 var element = (($0 = this.elements.$index(name)) && $0.is$Element()); | 10030 var element = (($0 = this.elements.$index(name)) && $0.is$Element()); |
10031 if (element != null) return element; | 10031 if (element != null) return element; |
10032 return this.parent.lookup(name); | 10032 return this.parent.lookup(name); |
10033 } | 10033 } |
10034 Scope.prototype.add = function(element) { | 10034 Scope.prototype.add = function(element) { |
10035 var $0; | 10035 var $0; |
10036 if (this.elements.containsKey(element.name)) return (($0 = this.elements.$inde
x(element.name)) && $0.is$Element()); | 10036 if (this.elements.containsKey(element.name)) return (($0 = this.elements.$inde
x(element.name)) && $0.is$Element()); |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10123 this.name = name; | 10123 this.name = name; |
10124 this.element = element; | 10124 this.element = element; |
10125 // Initializers done | 10125 // Initializers done |
10126 } | 10126 } |
10127 SimpleType.named$ctor = function(name) { | 10127 SimpleType.named$ctor = function(name) { |
10128 this.name = name; | 10128 this.name = name; |
10129 this.element = new Element(name, null, null); | 10129 this.element = new Element(name, null, null); |
10130 // Initializers done | 10130 // Initializers done |
10131 } | 10131 } |
10132 SimpleType.named$ctor.prototype = SimpleType.prototype; | 10132 SimpleType.named$ctor.prototype = SimpleType.prototype; |
10133 SimpleType.prototype.is$Type = function(){return this;}; | 10133 SimpleType.prototype.is$leg_Type = function(){return this;}; |
10134 SimpleType.prototype.get$name = function() { return this.name; }; | 10134 SimpleType.prototype.get$name = function() { return this.name; }; |
10135 SimpleType.prototype.get$element = function() { return this.element; }; | 10135 SimpleType.prototype.get$element = function() { return this.element; }; |
10136 SimpleType.prototype.toString = function() { | 10136 SimpleType.prototype.toString = function() { |
10137 return this.name.toString(); | 10137 return this.name.toString(); |
10138 } | 10138 } |
10139 SimpleType.prototype.toString$0 = function() { | 10139 SimpleType.prototype.toString$0 = function() { |
10140 return this.toString(); | 10140 return this.toString(); |
10141 }; | 10141 }; |
10142 // ********** Code for FunctionType ************** | 10142 // ********** Code for FunctionType ************** |
10143 function FunctionType(returnType, parameterTypes) { | 10143 function FunctionType(returnType, parameterTypes) { |
10144 this.returnType = returnType; | 10144 this.returnType = returnType; |
10145 this.parameterTypes = parameterTypes; | 10145 this.parameterTypes = parameterTypes; |
10146 // Initializers done | 10146 // Initializers done |
10147 } | 10147 } |
10148 FunctionType.prototype.is$FunctionType = function(){return this;}; | 10148 FunctionType.prototype.is$FunctionType = function(){return this;}; |
10149 FunctionType.prototype.is$Type = function(){return this;}; | 10149 FunctionType.prototype.is$leg_Type = function(){return this;}; |
10150 FunctionType.prototype.get$returnType = function() { return this.returnType; }; | 10150 FunctionType.prototype.get$returnType = function() { return this.returnType; }; |
10151 FunctionType.prototype.toString = function() { | 10151 FunctionType.prototype.toString = function() { |
10152 var sb = new StringBufferImpl(""); | 10152 var sb = new StringBufferImpl(""); |
10153 var first = true; | 10153 var first = true; |
10154 sb.add('('); | 10154 sb.add('('); |
10155 this.parameterTypes.printOn(sb, ', '); | 10155 this.parameterTypes.printOn(sb, ', '); |
10156 sb.add((') -> ' + this.returnType + '')); | 10156 sb.add((') -> ' + this.returnType + '')); |
10157 return sb.toString(); | 10157 return sb.toString(); |
10158 } | 10158 } |
10159 FunctionType.prototype.toString$0 = function() { | 10159 FunctionType.prototype.toString$0 = function() { |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10222 this.reportTypeWarning(node, const$243/*WarningKind.VOID_EXPRESSION*/, const
$13/*const []*/); | 10222 this.reportTypeWarning(node, const$243/*WarningKind.VOID_EXPRESSION*/, const
$13/*const []*/); |
10223 } | 10223 } |
10224 return type; | 10224 return type; |
10225 } | 10225 } |
10226 TypeCheckerVisitor.prototype.typeWithDefault = function(node, defaultValue) { | 10226 TypeCheckerVisitor.prototype.typeWithDefault = function(node, defaultValue) { |
10227 return node != null ? this.type(node) : defaultValue; | 10227 return node != null ? this.type(node) : defaultValue; |
10228 } | 10228 } |
10229 TypeCheckerVisitor.prototype.type = function(node) { | 10229 TypeCheckerVisitor.prototype.type = function(node) { |
10230 var $0; | 10230 var $0; |
10231 if (node == null) this.fail(null, 'unexpected node: null'); | 10231 if (node == null) this.fail(null, 'unexpected node: null'); |
10232 var result = (($0 = node.accept(this)) && $0.is$Type()); | 10232 var result = (($0 = node.accept(this)) && $0.is$leg_Type()); |
10233 return result; | 10233 return result; |
10234 } | 10234 } |
10235 TypeCheckerVisitor.prototype.get$type = function() { | 10235 TypeCheckerVisitor.prototype.get$type = function() { |
10236 return TypeCheckerVisitor.prototype.type.bind(this); | 10236 return TypeCheckerVisitor.prototype.type.bind(this); |
10237 } | 10237 } |
10238 TypeCheckerVisitor.prototype.checkAssignable = function(node, s, t) { | 10238 TypeCheckerVisitor.prototype.checkAssignable = function(node, s, t) { |
10239 if (!$notnull_bool(this.types.isAssignable(s, t))) { | 10239 if (!$notnull_bool(this.types.isAssignable(s, t))) { |
10240 this.reportTypeWarning(node, const$236/*WarningKind.NOT_ASSIGNABLE*/, [s, t]
); | 10240 this.reportTypeWarning(node, const$236/*WarningKind.NOT_ASSIGNABLE*/, [s, t]
); |
10241 } | 10241 } |
10242 } | 10242 } |
(...skipping 25 matching lines...) Expand all Loading... |
10268 } | 10268 } |
10269 TypeCheckerVisitor.prototype.visitIf = function(node) { | 10269 TypeCheckerVisitor.prototype.visitIf = function(node) { |
10270 this.type(node.condition); | 10270 this.type(node.condition); |
10271 this.type(node.thenPart); | 10271 this.type(node.thenPart); |
10272 if ($notnull_bool(node.get$hasElsePart())) this.type(node.elsePart); | 10272 if ($notnull_bool(node.get$hasElsePart())) this.type(node.elsePart); |
10273 return this.types.voidType; | 10273 return this.types.voidType; |
10274 } | 10274 } |
10275 TypeCheckerVisitor.prototype.visitSend = function(node) { | 10275 TypeCheckerVisitor.prototype.visitSend = function(node) { |
10276 var $0; | 10276 var $0; |
10277 var target = this.elements.$index(node); | 10277 var target = this.elements.$index(node); |
10278 var selector = (($0 = node.selector) && $0.is$Identifier()); | 10278 var selector = (($0 = node.selector) && $0.is$tree_Identifier()); |
10279 if (target != null) { | 10279 if (target != null) { |
10280 var name = selector.get$source(); | 10280 var name = selector.get$source(); |
10281 if ($notnull_bool($eq(name, const$213/*const SourceString('+')*/)) || $notnu
ll_bool($eq(name, const$240/*const SourceString('=')*/)) || $notnull_bool($eq(na
me, const$215/*const SourceString('-')*/)) || $notnull_bool($eq(name, const$217/
*const SourceString('*')*/)) || $notnull_bool($eq(name, const$219/*const SourceS
tring('/')*/)) || $notnull_bool($eq(name, const$225/*const SourceString('<')*/))
|| $notnull_bool($eq(name, const$221/*const SourceString('~/')*/))) { | 10281 if ($notnull_bool($eq(name, const$213/*const SourceString('+')*/)) || $notnu
ll_bool($eq(name, const$240/*const SourceString('=')*/)) || $notnull_bool($eq(na
me, const$215/*const SourceString('-')*/)) || $notnull_bool($eq(name, const$217/
*const SourceString('*')*/)) || $notnull_bool($eq(name, const$219/*const SourceS
tring('/')*/)) || $notnull_bool($eq(name, const$225/*const SourceString('<')*/))
|| $notnull_bool($eq(name, const$221/*const SourceString('~/')*/))) { |
10282 return this.types.dynamicType; | 10282 return this.types.dynamicType; |
10283 } | 10283 } |
10284 var targetType = target.computeType$2(this.compiler, this.types); | 10284 var targetType = target.computeType$2(this.compiler, this.types); |
10285 if ($notnull_bool(node.get$isPropertyAccess())) { | 10285 if ($notnull_bool(node.get$isPropertyAccess())) { |
10286 return (targetType && targetType.is$Type()); | 10286 return (targetType && targetType.is$leg_Type()); |
10287 } | 10287 } |
10288 else if ($notnull_bool(node.get$isFunctionObjectInvocation())) { | 10288 else if ($notnull_bool(node.get$isFunctionObjectInvocation())) { |
10289 this.fail(node); | 10289 this.fail(node); |
10290 } | 10290 } |
10291 else { | 10291 else { |
10292 if (!(targetType instanceof FunctionType)) { | 10292 if (!(targetType instanceof FunctionType)) { |
10293 if ((target instanceof ForeignElement)) { | 10293 if ((target instanceof ForeignElement)) { |
10294 return this.types.dynamicType; | 10294 return this.types.dynamicType; |
10295 } | 10295 } |
10296 this.fail(node, 'can only handle function types'); | 10296 this.fail(node, 'can only handle function types'); |
10297 } | 10297 } |
10298 var funType = (targetType && targetType.is$FunctionType()); | 10298 var funType = (targetType && targetType.is$FunctionType()); |
10299 var formals = funType.parameterTypes; | 10299 var formals = funType.parameterTypes; |
10300 var arguments = node.get$arguments(); | 10300 var arguments = node.get$arguments(); |
10301 while ((!$notnull_bool(formals.isEmpty())) && (!$notnull_bool(arguments.is
Empty()))) { | 10301 while ((!$notnull_bool(formals.isEmpty())) && (!$notnull_bool(arguments.is
Empty()))) { |
10302 var argument = (($0 = arguments.get$head()) && $0.is$Node()); | 10302 var argument = (($0 = arguments.get$head()) && $0.is$tree_Node()); |
10303 var argumentType = this.type(argument); | 10303 var argumentType = this.type(argument); |
10304 this.checkAssignable(argument, argumentType, (($0 = formals.get$head())
&& $0.is$Type())); | 10304 this.checkAssignable(argument, argumentType, (($0 = formals.get$head())
&& $0.is$leg_Type())); |
10305 formals = (($0 = formals.get$tail()) && $0.is$Link$Type()); | 10305 formals = (($0 = formals.get$tail()) && $0.is$Link$Type()); |
10306 arguments = (($0 = arguments.get$tail()) && $0.is$Link$Node()); | 10306 arguments = (($0 = arguments.get$tail()) && $0.is$Link$Node()); |
10307 } | 10307 } |
10308 if (!$notnull_bool(formals.isEmpty())) { | 10308 if (!$notnull_bool(formals.isEmpty())) { |
10309 this.compiler.reportWarning(node, 'missing argument'); | 10309 this.compiler.reportWarning(node, 'missing argument'); |
10310 } | 10310 } |
10311 if (!$notnull_bool(arguments.isEmpty())) { | 10311 if (!$notnull_bool(arguments.isEmpty())) { |
10312 this.compiler.reportWarning((($0 = arguments.get$head()) && $0.is$Node()
), 'additional arguments'); | 10312 this.compiler.reportWarning((($0 = arguments.get$head()) && $0.is$tree_N
ode()), 'additional arguments'); |
10313 } | 10313 } |
10314 return funType.returnType; | 10314 return funType.returnType; |
10315 } | 10315 } |
10316 } | 10316 } |
10317 else { | 10317 else { |
10318 this.fail(node, ('unresolved send ' + selector.get$source() + '')); | 10318 this.fail(node, ('unresolved send ' + selector.get$source() + '')); |
10319 } | 10319 } |
10320 } | 10320 } |
10321 TypeCheckerVisitor.prototype.visitSendSet = function(node) { | 10321 TypeCheckerVisitor.prototype.visitSendSet = function(node) { |
10322 var $0; | 10322 var $0; |
10323 this.compiler.ensure(node.get$arguments() != null && !$notnull_bool(node.get$a
rguments().isEmpty())); | 10323 this.compiler.ensure(node.get$arguments() != null && !$notnull_bool(node.get$a
rguments().isEmpty())); |
10324 var targetType = (($0 = this.elements.$index(node).computeType$2(this.compiler
, this.types)) && $0.is$Type()); | 10324 var targetType = (($0 = this.elements.$index(node).computeType$2(this.compiler
, this.types)) && $0.is$leg_Type()); |
10325 var value = (($0 = node.get$arguments().get$head()) && $0.is$Node()); | 10325 var value = (($0 = node.get$arguments().get$head()) && $0.is$tree_Node()); |
10326 this.checkAssignable(value, this.type(value), targetType); | 10326 this.checkAssignable(value, this.type(value), targetType); |
10327 return targetType; | 10327 return targetType; |
10328 } | 10328 } |
10329 TypeCheckerVisitor.prototype.visitLiteralInt = function(node) { | 10329 TypeCheckerVisitor.prototype.visitLiteralInt = function(node) { |
10330 return this.types.intType; | 10330 return this.types.intType; |
10331 } | 10331 } |
10332 TypeCheckerVisitor.prototype.visitLiteralDouble = function(node) { | 10332 TypeCheckerVisitor.prototype.visitLiteralDouble = function(node) { |
10333 return this.types.dynamicType; | 10333 return this.types.dynamicType; |
10334 } | 10334 } |
10335 TypeCheckerVisitor.prototype.visitLiteralBool = function(node) { | 10335 TypeCheckerVisitor.prototype.visitLiteralBool = function(node) { |
10336 return this.types.dynamicType; | 10336 return this.types.dynamicType; |
10337 } | 10337 } |
10338 TypeCheckerVisitor.prototype.visitLiteralString = function(node) { | 10338 TypeCheckerVisitor.prototype.visitLiteralString = function(node) { |
10339 return this.types.stringType; | 10339 return this.types.stringType; |
10340 } | 10340 } |
10341 TypeCheckerVisitor.prototype.visitNodeList = function(node) { | 10341 TypeCheckerVisitor.prototype.visitNodeList = function(node) { |
10342 var $0; | 10342 var $0; |
10343 for (var link = node.nodes; | 10343 for (var link = node.nodes; |
10344 !$notnull_bool(link.isEmpty()); link = (($0 = link.get$tail()) && $0.is$Link$
Node())) { | 10344 !$notnull_bool(link.isEmpty()); link = (($0 = link.get$tail()) && $0.is$Link$
Node())) { |
10345 this.type((($0 = link.get$head()) && $0.is$Node())); | 10345 this.type((($0 = link.get$head()) && $0.is$tree_Node())); |
10346 } | 10346 } |
10347 return null; | 10347 return null; |
10348 } | 10348 } |
10349 TypeCheckerVisitor.prototype.visitOperator = function(node) { | 10349 TypeCheckerVisitor.prototype.visitOperator = function(node) { |
10350 return this.types.dynamicType; | 10350 return this.types.dynamicType; |
10351 } | 10351 } |
10352 TypeCheckerVisitor.prototype.visitReturn = function(node) { | 10352 TypeCheckerVisitor.prototype.visitReturn = function(node) { |
10353 var expression = node.expression; | 10353 var expression = node.expression; |
10354 var isVoidFunction = (this.expectedReturnType === this.types.voidType); | 10354 var isVoidFunction = (this.expectedReturnType === this.types.voidType); |
10355 if (expression != null) { | 10355 if (expression != null) { |
(...skipping 23 matching lines...) Expand all Loading... |
10379 } | 10379 } |
10380 TypeCheckerVisitor.prototype.visitVariableDefinitions = function(node) { | 10380 TypeCheckerVisitor.prototype.visitVariableDefinitions = function(node) { |
10381 var $0; | 10381 var $0; |
10382 var type = this.typeWithDefault(node.type, this.types.dynamicType); | 10382 var type = this.typeWithDefault(node.type, this.types.dynamicType); |
10383 if ($eq(type, this.types.voidType)) { | 10383 if ($eq(type, this.types.voidType)) { |
10384 this.reportTypeWarning(node.type, const$241/*WarningKind.VOID_VARIABLE*/, co
nst$13/*const []*/); | 10384 this.reportTypeWarning(node.type, const$241/*WarningKind.VOID_VARIABLE*/, co
nst$13/*const []*/); |
10385 type = this.types.dynamicType; | 10385 type = this.types.dynamicType; |
10386 } | 10386 } |
10387 for (var link = node.definitions.nodes; | 10387 for (var link = node.definitions.nodes; |
10388 !$notnull_bool(link.isEmpty()); link = (($0 = link.get$tail()) && $0.is$Link$
Node())) { | 10388 !$notnull_bool(link.isEmpty()); link = (($0 = link.get$tail()) && $0.is$Link$
Node())) { |
10389 var initialization = (($0 = link.get$head()) && $0.is$Node()); | 10389 var initialization = (($0 = link.get$head()) && $0.is$tree_Node()); |
10390 this.compiler.ensure((initialization instanceof Identifier) || (initializati
on instanceof Send)); | 10390 this.compiler.ensure((initialization instanceof tree_Identifier) || (initial
ization instanceof Send)); |
10391 if ((initialization instanceof Send)) { | 10391 if ((initialization instanceof Send)) { |
10392 var initializer = this.nonVoidType((($0 = link.get$head()) && $0.is$Node()
)); | 10392 var initializer = this.nonVoidType((($0 = link.get$head()) && $0.is$tree_N
ode())); |
10393 this.checkAssignable(node, type, initializer); | 10393 this.checkAssignable(node, type, initializer); |
10394 } | 10394 } |
10395 } | 10395 } |
10396 return null; | 10396 return null; |
10397 } | 10397 } |
10398 // ********** Code for Universe ************** | 10398 // ********** Code for Universe ************** |
10399 function Universe() { | 10399 function Universe() { |
10400 this.elements = $map([]); | 10400 this.elements = $map([]); |
10401 this.generatedCode = $map([]); | 10401 this.generatedCode = $map([]); |
10402 this.scope = new Element(const$2, null, null); | 10402 this.scope = new Element(const$2, null, null); |
10403 // Initializers done | 10403 // Initializers done |
10404 } | 10404 } |
10405 Universe.prototype.find = function(name) { | 10405 Universe.prototype.find = function(name) { |
10406 var $0; | 10406 var $0; |
10407 return (($0 = this.elements.$index(name)) && $0.is$Element()); | 10407 return (($0 = this.elements.$index(name)) && $0.is$Element()); |
10408 } | 10408 } |
10409 Universe.prototype.define = function(element) { | 10409 Universe.prototype.define = function(element) { |
10410 $assert(this.elements.$index(element.name) == null, "elements[element.name] ==
null", "universe.dart", 20, 12); | 10410 $assert(this.elements.$index(element.name) == null, "elements[element.name] ==
null", "universe.dart", 20, 12); |
10411 this.elements.$setindex(element.name, element); | 10411 this.elements.$setindex(element.name, element); |
10412 } | 10412 } |
10413 Universe.prototype.addGeneratedCode = function(element, code) { | 10413 Universe.prototype.addGeneratedCode = function(element, code) { |
10414 this.generatedCode.$setindex(element, code); | 10414 this.generatedCode.$setindex(element, code); |
10415 } | 10415 } |
10416 // ********** Code for top level ************** | 10416 // ********** Code for top level ************** |
10417 function unreachable() { | 10417 function unreachable() { |
10418 $throw(const$267/*const Exception("Internal Error (Leg): UNREACHABLE")*/); | 10418 $throw(const$267/*const Exception("Internal Error (Leg): UNREACHABLE")*/); |
10419 } | 10419 } |
10420 function compile(world) { | 10420 function leg_compile(world) { |
10421 var file = world.readFile(options.dartScript); | 10421 var file = world.readFile(options.dartScript); |
10422 var script = new leg_Script(file); | 10422 var script = new leg_Script(file); |
10423 var compiler = new WorldCompiler(world, script); | 10423 var compiler = new WorldCompiler(world, script); |
10424 return compiler.run(); | 10424 return compiler.run(); |
10425 } | 10425 } |
10426 // ********** Library lang ************** | 10426 // ********** Library lang ************** |
10427 // ********** Code for CodeWriter ************** | 10427 // ********** Code for CodeWriter ************** |
10428 function CodeWriter() { | 10428 function CodeWriter() { |
10429 this._indentation = 0 | 10429 this._indentation = 0 |
10430 this._pendingIndent = false | 10430 this._pendingIndent = false |
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10686 var file = $list.$index($i); | 10686 var file = $list.$index($i); |
10687 var filename = basename(file.filename); | 10687 var filename = basename(file.filename); |
10688 this.writer.comment(('// ********** Natives ' + filename + ' **************
')); | 10688 this.writer.comment(('// ********** Natives ' + filename + ' **************
')); |
10689 this.writer.writeln(file.get$text()); | 10689 this.writer.writeln(file.get$text()); |
10690 } | 10690 } |
10691 lib.topType.markUsed(); | 10691 lib.topType.markUsed(); |
10692 var $list = this._orderValues(lib.types); | 10692 var $list = this._orderValues(lib.types); |
10693 for (var $i = 0;$i < $list.length; $i++) { | 10693 for (var $i = 0;$i < $list.length; $i++) { |
10694 var type = $list.$index($i); | 10694 var type = $list.$index($i); |
10695 if ($notnull_bool(type.get$isUsed()) && $notnull_bool(type.get$isClass())) { | 10695 if ($notnull_bool(type.get$isUsed()) && $notnull_bool(type.get$isClass())) { |
10696 this.writeType((type && type.is$lang_Type())); | 10696 this.writeType((type && type.is$Type())); |
10697 if ($notnull_bool(type.get$isGeneric())) { | 10697 if ($notnull_bool(type.get$isGeneric())) { |
10698 var $list0 = this._orderValues(type._concreteTypes); | 10698 var $list0 = this._orderValues(type._concreteTypes); |
10699 for (var $i0 = 0;$i0 < $list0.length; $i0++) { | 10699 for (var $i0 = 0;$i0 < $list0.length; $i0++) { |
10700 var ct = $list0.$index($i0); | 10700 var ct = $list0.$index($i0); |
10701 this.writeType((ct && ct.is$lang_Type())); | 10701 this.writeType((ct && ct.is$Type())); |
10702 } | 10702 } |
10703 } | 10703 } |
10704 } | 10704 } |
10705 if ($notnull_bool(type.get$isFunction()) && type.varStubs != null) { | 10705 if ($notnull_bool(type.get$isFunction()) && type.varStubs != null) { |
10706 this.writer.comment(('// ********** Code for ' + type.get$jsname() + ' ***
***********')); | 10706 this.writer.comment(('// ********** Code for ' + type.get$jsname() + ' ***
***********')); |
10707 this._writeDynamicStubs((type && type.is$lang_Type())); | 10707 this._writeDynamicStubs((type && type.is$Type())); |
10708 } | 10708 } |
10709 if (type.typeCheckCode != null) { | 10709 if (type.typeCheckCode != null) { |
10710 this.writer.writeln(type.typeCheckCode); | 10710 this.writer.writeln(type.typeCheckCode); |
10711 } | 10711 } |
10712 } | 10712 } |
10713 } | 10713 } |
10714 WorldGenerator.prototype.genMethod = function(meth, enclosingMethod) { | 10714 WorldGenerator.prototype.genMethod = function(meth, enclosingMethod) { |
10715 if (!$notnull_bool(meth.isGenerated) && !$notnull_bool(meth.get$isAbstract())
&& $notnull_bool($ne(meth.get$definition(), null))) { | 10715 if (!$notnull_bool(meth.isGenerated) && !$notnull_bool(meth.get$isAbstract())
&& $notnull_bool($ne(meth.get$definition(), null))) { |
10716 new MethodGenerator(meth, enclosingMethod).run(); | 10716 new MethodGenerator(meth, enclosingMethod).run(); |
10717 } | 10717 } |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10778 } | 10778 } |
10779 } | 10779 } |
10780 } | 10780 } |
10781 if (!(type instanceof ConcreteType)) { | 10781 if (!(type instanceof ConcreteType)) { |
10782 this._maybeIsTest(type, type); | 10782 this._maybeIsTest(type, type); |
10783 } | 10783 } |
10784 if (type.get$genericType()._concreteTypes != null) { | 10784 if (type.get$genericType()._concreteTypes != null) { |
10785 var $list = this._orderValues(type.get$genericType()._concreteTypes); | 10785 var $list = this._orderValues(type.get$genericType()._concreteTypes); |
10786 for (var $i = 0;$i < $list.length; $i++) { | 10786 for (var $i = 0;$i < $list.length; $i++) { |
10787 var ct = $list.$index($i); | 10787 var ct = $list.$index($i); |
10788 this._maybeIsTest(type, (ct && ct.is$lang_Type())); | 10788 this._maybeIsTest(type, (ct && ct.is$Type())); |
10789 } | 10789 } |
10790 } | 10790 } |
10791 if (type.get$interfaces() != null) { | 10791 if (type.get$interfaces() != null) { |
10792 var seen = new HashSetImplementation(); | 10792 var seen = new HashSetImplementation(); |
10793 var worklist = []; | 10793 var worklist = []; |
10794 worklist.addAll(type.get$interfaces()); | 10794 worklist.addAll(type.get$interfaces()); |
10795 seen.addAll(type.get$interfaces()); | 10795 seen.addAll(type.get$interfaces()); |
10796 while (!worklist.isEmpty()) { | 10796 while (!worklist.isEmpty()) { |
10797 var interface_ = worklist.removeLast(); | 10797 var interface_ = worklist.removeLast(); |
10798 this._maybeIsTest(type, interface_.get$genericType()); | 10798 this._maybeIsTest(type, interface_.get$genericType()); |
10799 if (interface_.get$genericType()._concreteTypes != null) { | 10799 if (interface_.get$genericType()._concreteTypes != null) { |
10800 var $list = this._orderValues(interface_.get$genericType()._concreteType
s); | 10800 var $list = this._orderValues(interface_.get$genericType()._concreteType
s); |
10801 for (var $i = 0;$i < $list.length; $i++) { | 10801 for (var $i = 0;$i < $list.length; $i++) { |
10802 var ct = $list.$index($i); | 10802 var ct = $list.$index($i); |
10803 this._maybeIsTest(type, (ct && ct.is$lang_Type())); | 10803 this._maybeIsTest(type, (ct && ct.is$Type())); |
10804 } | 10804 } |
10805 } | 10805 } |
10806 var $list = interface_.get$interfaces(); | 10806 var $list = interface_.get$interfaces(); |
10807 for (var $i = interface_.get$interfaces().iterator$0(); $i.hasNext$0(); )
{ | 10807 for (var $i = interface_.get$interfaces().iterator$0(); $i.hasNext$0(); )
{ |
10808 var other = $i.next$0(); | 10808 var other = $i.next$0(); |
10809 if (!seen.contains(other)) { | 10809 if (!seen.contains(other)) { |
10810 worklist.addLast(other); | 10810 worklist.addLast(other); |
10811 seen.add(other); | 10811 seen.add(other); |
10812 } | 10812 } |
10813 } | 10813 } |
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10928 return WorldGenerator.prototype._compareMembers.bind(this); | 10928 return WorldGenerator.prototype._compareMembers.bind(this); |
10929 } | 10929 } |
10930 WorldGenerator.prototype.useMapFactory = function() { | 10930 WorldGenerator.prototype.useMapFactory = function() { |
10931 var $0; | 10931 var $0; |
10932 this.corejs.useMap = true; | 10932 this.corejs.useMap = true; |
10933 var factType = world.get$coreimpl().types.$index('HashMapImplementation'); | 10933 var factType = world.get$coreimpl().types.$index('HashMapImplementation'); |
10934 var m = factType.resolveMember$1('\$setindex'); | 10934 var m = factType.resolveMember$1('\$setindex'); |
10935 this.genMethod((($0 = m.get$members().$index(0)) && $0.is$Member())); | 10935 this.genMethod((($0 = m.get$members().$index(0)) && $0.is$Member())); |
10936 var c = factType.getConstructor$1(''); | 10936 var c = factType.getConstructor$1(''); |
10937 this.genMethod((c && c.is$Member())); | 10937 this.genMethod((c && c.is$Member())); |
10938 return (factType && factType.is$lang_Type()); | 10938 return (factType && factType.is$Type()); |
10939 } | 10939 } |
10940 // ********** Code for BlockScope ************** | 10940 // ********** Code for BlockScope ************** |
10941 function BlockScope(enclosingMethod, parent, reentrant) { | 10941 function BlockScope(enclosingMethod, parent, reentrant) { |
10942 this.enclosingMethod = enclosingMethod; | 10942 this.enclosingMethod = enclosingMethod; |
10943 this.parent = parent; | 10943 this.parent = parent; |
10944 this.reentrant = reentrant; | 10944 this.reentrant = reentrant; |
10945 this._vars = $map([]); | 10945 this._vars = $map([]); |
10946 // Initializers done | 10946 // Initializers done |
10947 if ($notnull_bool(this.get$isMethodScope())) { | 10947 if ($notnull_bool(this.get$isMethodScope())) { |
10948 this._closedOver = new HashSetImplementation(); | 10948 this._closedOver = new HashSetImplementation(); |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11004 var ret = new Value(type, jsName, span, false); | 11004 var ret = new Value(type, jsName, span, false); |
11005 ret.isFinal = isFinal; | 11005 ret.isFinal = isFinal; |
11006 this._vars.$setindex(name, ret); | 11006 this._vars.$setindex(name, ret); |
11007 return (ret && ret.is$Value()); | 11007 return (ret && ret.is$Value()); |
11008 } | 11008 } |
11009 BlockScope.prototype.declareParameter = function(p) { | 11009 BlockScope.prototype.declareParameter = function(p) { |
11010 return this.create(p.name, p.type, p.definition.span, false, true); | 11010 return this.create(p.name, p.type, p.definition.span, false, true); |
11011 } | 11011 } |
11012 BlockScope.prototype.declare = function(id) { | 11012 BlockScope.prototype.declare = function(id) { |
11013 var type = this.enclosingMethod.method.resolveType(id.type, false); | 11013 var type = this.enclosingMethod.method.resolveType(id.type, false); |
11014 return this.create(id.name.name, (type && type.is$lang_Type()), id.span, false
, false); | 11014 return this.create(id.name.name, (type && type.is$Type()), id.span, false, fal
se); |
11015 } | 11015 } |
11016 BlockScope.prototype.getRethrow = function() { | 11016 BlockScope.prototype.getRethrow = function() { |
11017 var scope = this; | 11017 var scope = this; |
11018 while (scope.rethrow == null && $notnull_bool($ne(scope.get$parent(), null)))
{ | 11018 while (scope.rethrow == null && $notnull_bool($ne(scope.get$parent(), null)))
{ |
11019 scope = scope.get$parent(); | 11019 scope = scope.get$parent(); |
11020 } | 11020 } |
11021 return scope.rethrow; | 11021 return scope.rethrow; |
11022 } | 11022 } |
11023 BlockScope.prototype.lookup$1 = function($0) { | 11023 BlockScope.prototype.lookup$1 = function($0) { |
11024 return this.lookup($assert_String($0)); | 11024 return this.lookup($assert_String($0)); |
(...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11345 if ($notnull_bool($ne(initializedFields, null))) { | 11345 if ($notnull_bool($ne(initializedFields, null))) { |
11346 var $list = this.method.declaringType.get$members().getKeys(); | 11346 var $list = this.method.declaringType.get$members().getKeys(); |
11347 for (var $i = this.method.declaringType.get$members().getKeys().iterator$0()
; $i.hasNext$0(); ) { | 11347 for (var $i = this.method.declaringType.get$members().getKeys().iterator$0()
; $i.hasNext$0(); ) { |
11348 var name = $i.next$0(); | 11348 var name = $i.next$0(); |
11349 var member = this.method.declaringType.get$members().$index(name); | 11349 var member = this.method.declaringType.get$members().$index(name); |
11350 if ((member instanceof FieldMember) && $notnull_bool(member.get$isFinal())
&& !$notnull_bool(member.get$isStatic()) && !$notnull_bool(initializedFields.co
ntains$1(name))) { | 11350 if ((member instanceof FieldMember) && $notnull_bool(member.get$isFinal())
&& !$notnull_bool(member.get$isStatic()) && !$notnull_bool(initializedFields.co
ntains$1(name))) { |
11351 world.error(('Field "' + name + '" is final and was not initialized'), t
his.method.get$definition().get$span()); | 11351 world.error(('Field "' + name + '" is final and was not initialized'), t
his.method.get$definition().get$span()); |
11352 } | 11352 } |
11353 } | 11353 } |
11354 } | 11354 } |
11355 this.visitStatementsInBlock((body && body.is$lang_Statement())); | 11355 this.visitStatementsInBlock((body && body.is$Statement())); |
11356 } | 11356 } |
11357 MethodGenerator.prototype._writeInitializerCall = function(node) { | 11357 MethodGenerator.prototype._writeInitializerCall = function(node) { |
11358 var contructorName = ''; | 11358 var contructorName = ''; |
11359 var targetExp = node.target; | 11359 var targetExp = node.target; |
11360 if ((targetExp instanceof DotExpression)) { | 11360 if ((targetExp instanceof DotExpression)) { |
11361 var dot = (targetExp && targetExp.is$DotExpression()); | 11361 var dot = (targetExp && targetExp.is$DotExpression()); |
11362 targetExp = dot.self; | 11362 targetExp = dot.self; |
11363 contructorName = dot.name.name; | 11363 contructorName = dot.name.name; |
11364 } | 11364 } |
11365 var target = null; | 11365 var target = null; |
11366 if ((targetExp instanceof SuperExpression)) { | 11366 if ((targetExp instanceof SuperExpression)) { |
11367 target = this._makeSuperValue((targetExp && targetExp.is$lang_Node())); | 11367 target = this._makeSuperValue((targetExp && targetExp.is$Node())); |
11368 } | 11368 } |
11369 else if ((targetExp instanceof ThisExpression)) { | 11369 else if ((targetExp instanceof ThisExpression)) { |
11370 target = this._makeThisValue((targetExp && targetExp.is$lang_Node())); | 11370 target = this._makeThisValue((targetExp && targetExp.is$Node())); |
11371 } | 11371 } |
11372 else { | 11372 else { |
11373 world.error('bad call in initializers', node.span); | 11373 world.error('bad call in initializers', node.span); |
11374 } | 11374 } |
11375 var m = target.type.getConstructor$1(contructorName); | 11375 var m = target.type.getConstructor$1(contructorName); |
11376 this.method.set$initDelegate(m); | 11376 this.method.set$initDelegate(m); |
11377 var other = m; | 11377 var other = m; |
11378 while ($notnull_bool($ne(other, null))) { | 11378 while ($notnull_bool($ne(other, null))) { |
11379 if ($notnull_bool($eq(other, this.method))) { | 11379 if ($notnull_bool($eq(other, this.method))) { |
11380 world.error('initialization cycle', node.span); | 11380 world.error('initialization cycle', node.span); |
(...skipping 13 matching lines...) Expand all Loading... |
11394 var args = []; | 11394 var args = []; |
11395 var seenLabel = false; | 11395 var seenLabel = false; |
11396 for (var $i = 0;$i < arguments.length; $i++) { | 11396 for (var $i = 0;$i < arguments.length; $i++) { |
11397 var arg = arguments.$index($i); | 11397 var arg = arguments.$index($i); |
11398 if (arg.label != null) { | 11398 if (arg.label != null) { |
11399 seenLabel = true; | 11399 seenLabel = true; |
11400 } | 11400 } |
11401 else if ($notnull_bool(seenLabel)) { | 11401 else if ($notnull_bool(seenLabel)) { |
11402 world.error('bare argument can not follow named arguments', arg.get$span()
); | 11402 world.error('bare argument can not follow named arguments', arg.get$span()
); |
11403 } | 11403 } |
11404 args.add$1(this.visitValue((($0 = arg.get$value()) && $0.is$lang_Expression(
)))); | 11404 args.add$1(this.visitValue((($0 = arg.get$value()) && $0.is$Expression()))); |
11405 } | 11405 } |
11406 return new Arguments(arguments, args); | 11406 return new Arguments(arguments, args); |
11407 } | 11407 } |
11408 MethodGenerator._escapeString = function(text) { | 11408 MethodGenerator._escapeString = function(text) { |
11409 return text.replaceAll('\\', '\\\\').replaceAll('"', '\\"').replaceAll('\n', '
\\n').replaceAll('\r', '\\r'); | 11409 return text.replaceAll('\\', '\\\\').replaceAll('"', '\\"').replaceAll('\n', '
\\n').replaceAll('\r', '\\r'); |
11410 } | 11410 } |
11411 MethodGenerator.prototype.visitStatementsInBlock = function(body) { | 11411 MethodGenerator.prototype.visitStatementsInBlock = function(body) { |
11412 if ((body instanceof BlockStatement)) { | 11412 if ((body instanceof BlockStatement)) { |
11413 var block = (body && body.is$BlockStatement()); | 11413 var block = (body && body.is$BlockStatement()); |
11414 var $list = block.body; | 11414 var $list = block.body; |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11449 } | 11449 } |
11450 MethodGenerator.prototype.visitVoid = function(node) { | 11450 MethodGenerator.prototype.visitVoid = function(node) { |
11451 if ((node instanceof PostfixExpression)) { | 11451 if ((node instanceof PostfixExpression)) { |
11452 var value = this.visitPostfixExpression((node && node.is$PostfixExpression()
), true); | 11452 var value = this.visitPostfixExpression((node && node.is$PostfixExpression()
), true); |
11453 value.checkFirstClass$1(node.span); | 11453 value.checkFirstClass$1(node.span); |
11454 return value; | 11454 return value; |
11455 } | 11455 } |
11456 return this.visitValue(node); | 11456 return this.visitValue(node); |
11457 } | 11457 } |
11458 MethodGenerator.prototype.visitDietStatement = function(node) { | 11458 MethodGenerator.prototype.visitDietStatement = function(node) { |
11459 var parser = new lang_Parser(node.span.file, false, false, false, node.span.st
art); | 11459 var parser = new Parser(node.span.file, false, false, false, node.span.start); |
11460 this.visitStatementsInBlock(parser.block$0()); | 11460 this.visitStatementsInBlock(parser.block$0()); |
11461 return false; | 11461 return false; |
11462 } | 11462 } |
11463 MethodGenerator.prototype.visitVariableDefinition = function(node) { | 11463 MethodGenerator.prototype.visitVariableDefinition = function(node) { |
11464 var $0; | 11464 var $0; |
11465 var isFinal = false; | 11465 var isFinal = false; |
11466 if (node.modifiers != null && $notnull_bool($eq(node.modifiers.$index(0).kind,
97/*TokenKind.FINAL*/))) { | 11466 if (node.modifiers != null && $notnull_bool($eq(node.modifiers.$index(0).kind,
97/*TokenKind.FINAL*/))) { |
11467 isFinal = true; | 11467 isFinal = true; |
11468 } | 11468 } |
11469 this.writer.write('var '); | 11469 this.writer.write('var '); |
11470 var type = this.method.resolveType(node.type, false); | 11470 var type = this.method.resolveType(node.type, false); |
11471 for (var i = 0; | 11471 for (var i = 0; |
11472 i < node.names.length; i++) { | 11472 i < node.names.length; i++) { |
11473 var thisType = type; | 11473 var thisType = type; |
11474 if (i > 0) { | 11474 if (i > 0) { |
11475 this.writer.write(', '); | 11475 this.writer.write(', '); |
11476 } | 11476 } |
11477 var name = node.names.$index(i).get$name(); | 11477 var name = node.names.$index(i).get$name(); |
11478 var value = this.visitValue((($0 = node.values.$index(i)) && $0.is$lang_Expr
ession())); | 11478 var value = this.visitValue((($0 = node.values.$index(i)) && $0.is$Expressio
n())); |
11479 if ($notnull_bool(isFinal)) { | 11479 if ($notnull_bool(isFinal)) { |
11480 if ($notnull_bool(value == null)) { | 11480 if ($notnull_bool(value == null)) { |
11481 world.error('no value specified for final variable', node.span); | 11481 world.error('no value specified for final variable', node.span); |
11482 } | 11482 } |
11483 else { | 11483 else { |
11484 if ($notnull_bool(thisType.get$isVar())) thisType = value.type; | 11484 if ($notnull_bool(thisType.get$isVar())) thisType = value.type; |
11485 } | 11485 } |
11486 } | 11486 } |
11487 var val = this._scope.create($assert_String(name), (thisType && thisType.is$
lang_Type()), node.names.$index(i).get$span(), $assert_bool(isFinal), false); | 11487 var val = this._scope.create($assert_String(name), (thisType && thisType.is$
Type()), node.names.$index(i).get$span(), $assert_bool(isFinal), false); |
11488 if ($notnull_bool(value == null)) { | 11488 if ($notnull_bool(value == null)) { |
11489 if ($notnull_bool(this._scope.reentrant)) { | 11489 if ($notnull_bool(this._scope.reentrant)) { |
11490 this.writer.write(('' + val.code + ' = null')); | 11490 this.writer.write(('' + val.code + ' = null')); |
11491 } | 11491 } |
11492 else { | 11492 else { |
11493 this.writer.write(('' + val.code + '')); | 11493 this.writer.write(('' + val.code + '')); |
11494 } | 11494 } |
11495 } | 11495 } |
11496 else { | 11496 else { |
11497 value = value.convertTo$3(this, type, node.values.$index(i)); | 11497 value = value.convertTo$3(this, type, node.values.$index(i)); |
11498 this.writer.write(('' + val.code + ' = ' + value.code + '')); | 11498 this.writer.write(('' + val.code + ' = ' + value.code + '')); |
11499 } | 11499 } |
11500 } | 11500 } |
11501 this.writer.writeln(';'); | 11501 this.writer.writeln(';'); |
11502 return false; | 11502 return false; |
11503 } | 11503 } |
11504 MethodGenerator.prototype.visitFunctionDefinition = function(node) { | 11504 MethodGenerator.prototype.visitFunctionDefinition = function(node) { |
11505 var $0; | 11505 var $0; |
11506 var name = world.toJsIdentifier(node.name.name); | 11506 var name = world.toJsIdentifier(node.name.name); |
11507 var meth = this._makeLambdaMethod($assert_String(name), node); | 11507 var meth = this._makeLambdaMethod($assert_String(name), node); |
11508 var funcValue = this._scope.create($assert_String(name), (($0 = meth.get$funct
ionType()) && $0.is$lang_Type()), this.method.get$definition().get$span(), true,
false); | 11508 var funcValue = this._scope.create($assert_String(name), (($0 = meth.get$funct
ionType()) && $0.is$Type()), this.method.get$definition().get$span(), true, fals
e); |
11509 meth.generator.writeDefinition$2(this.writer); | 11509 meth.generator.writeDefinition$2(this.writer); |
11510 return false; | 11510 return false; |
11511 } | 11511 } |
11512 MethodGenerator.prototype.visitReturnStatement = function(node) { | 11512 MethodGenerator.prototype.visitReturnStatement = function(node) { |
11513 if (node.value == null) { | 11513 if (node.value == null) { |
11514 this.writer.writeln('return;'); | 11514 this.writer.writeln('return;'); |
11515 } | 11515 } |
11516 else { | 11516 else { |
11517 if ($notnull_bool(this.method.get$isConstructor())) { | 11517 if ($notnull_bool(this.method.get$isConstructor())) { |
11518 world.error('return of value not allowed from constructor', node.span); | 11518 world.error('return of value not allowed from constructor', node.span); |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11612 this.writer.write((' ' + test.code + '; ')); | 11612 this.writer.write((' ' + test.code + '; ')); |
11613 } | 11613 } |
11614 else { | 11614 else { |
11615 this.writer.write('; '); | 11615 this.writer.write('; '); |
11616 } | 11616 } |
11617 var needsComma = false; | 11617 var needsComma = false; |
11618 var $list = node.step; | 11618 var $list = node.step; |
11619 for (var $i = 0;$i < $list.length; $i++) { | 11619 for (var $i = 0;$i < $list.length; $i++) { |
11620 var s = $list.$index($i); | 11620 var s = $list.$index($i); |
11621 if ($notnull_bool(needsComma)) this.writer.write(', '); | 11621 if ($notnull_bool(needsComma)) this.writer.write(', '); |
11622 var sv = this.visitVoid((s && s.is$lang_Expression())); | 11622 var sv = this.visitVoid((s && s.is$Expression())); |
11623 this.writer.write($assert_String(sv.code)); | 11623 this.writer.write($assert_String(sv.code)); |
11624 needsComma = true; | 11624 needsComma = true; |
11625 } | 11625 } |
11626 this.writer.write(') '); | 11626 this.writer.write(') '); |
11627 this._pushBlock(true); | 11627 this._pushBlock(true); |
11628 node.body.visit(this); | 11628 node.body.visit(this); |
11629 this._popBlock(); | 11629 this._popBlock(); |
11630 this._popBlock(); | 11630 this._popBlock(); |
11631 return false; | 11631 return false; |
11632 } | 11632 } |
11633 MethodGenerator.prototype._isFinal = function(typeRef) { | 11633 MethodGenerator.prototype._isFinal = function(typeRef) { |
11634 if ((typeRef instanceof GenericTypeReference)) { | 11634 if ((typeRef instanceof GenericTypeReference)) { |
11635 typeRef = typeRef.baseType; | 11635 typeRef = typeRef.baseType; |
11636 } | 11636 } |
11637 return $notnull_bool($ne(typeRef, null)) && $notnull_bool(typeRef.get$isFinal(
)); | 11637 return $notnull_bool($ne(typeRef, null)) && $notnull_bool(typeRef.get$isFinal(
)); |
11638 } | 11638 } |
11639 MethodGenerator.prototype.visitForInStatement = function(node) { | 11639 MethodGenerator.prototype.visitForInStatement = function(node) { |
11640 var $0; | 11640 var $0; |
11641 var itemType = this.method.resolveType(node.item.type, false); | 11641 var itemType = this.method.resolveType(node.item.type, false); |
11642 var itemName = node.item.name.name; | 11642 var itemName = node.item.name.name; |
11643 var list = node.list.visit(this); | 11643 var list = node.list.visit(this); |
11644 this._pushBlock(true); | 11644 this._pushBlock(true); |
11645 var isFinal = this._isFinal(node.item.type); | 11645 var isFinal = this._isFinal(node.item.type); |
11646 var item = this._scope.create($assert_String(itemName), (itemType && itemType.
is$lang_Type()), node.item.name.span, isFinal, false); | 11646 var item = this._scope.create($assert_String(itemName), (itemType && itemType.
is$Type()), node.item.name.span, isFinal, false); |
11647 var listVar = (list && list.is$Value()); | 11647 var listVar = (list && list.is$Value()); |
11648 if ($notnull_bool(list.needsTemp)) { | 11648 if ($notnull_bool(list.needsTemp)) { |
11649 listVar = this._scope.create('\$list', (($0 = list.type) && $0.is$lang_Type(
)), null, false, false); | 11649 listVar = this._scope.create('\$list', (($0 = list.type) && $0.is$Type()), n
ull, false, false); |
11650 this.writer.writeln(('var ' + listVar.code + ' = ' + list.code + ';')); | 11650 this.writer.writeln(('var ' + listVar.code + ' = ' + list.code + ';')); |
11651 } | 11651 } |
11652 if ($notnull_bool(list.type.get$isList())) { | 11652 if ($notnull_bool(list.type.get$isList())) { |
11653 var tmpi = this._scope.create('\$i', world.numType, null, false, false); | 11653 var tmpi = this._scope.create('\$i', world.numType, null, false, false); |
11654 this.writer.enterBlock(('for (var ' + tmpi.code + ' = 0;') + ('' + tmpi.code
+ ' < ' + listVar.code + '.length; ' + tmpi.code + '++) {')); | 11654 this.writer.enterBlock(('for (var ' + tmpi.code + ' = 0;') + ('' + tmpi.code
+ ' < ' + listVar.code + '.length; ' + tmpi.code + '++) {')); |
11655 var value = listVar.invoke(this, '\$index', node.list, new Arguments(null, [
tmpi]), false); | 11655 var value = listVar.invoke(this, '\$index', node.list, new Arguments(null, [
tmpi]), false); |
11656 this.writer.writeln(('var ' + item.code + ' = ' + value.code + ';')); | 11656 this.writer.writeln(('var ' + item.code + ' = ' + value.code + ';')); |
11657 } | 11657 } |
11658 else { | 11658 else { |
11659 this._pushBlock(false); | 11659 this._pushBlock(false); |
11660 var iterator = list.invoke$4(this, 'iterator', node.list, Arguments.get$EMPT
Y()); | 11660 var iterator = list.invoke$4(this, 'iterator', node.list, Arguments.get$EMPT
Y()); |
11661 var tmpi = this._scope.create('\$i', (($0 = iterator.type) && $0.is$lang_Typ
e()), null, false, false); | 11661 var tmpi = this._scope.create('\$i', (($0 = iterator.type) && $0.is$Type()),
null, false, false); |
11662 var hasNext = tmpi.invoke$4(this, 'hasNext', node.list, Arguments.get$EMPTY(
)); | 11662 var hasNext = tmpi.invoke$4(this, 'hasNext', node.list, Arguments.get$EMPTY(
)); |
11663 var next = tmpi.invoke$4(this, 'next', node.list, Arguments.get$EMPTY()); | 11663 var next = tmpi.invoke$4(this, 'next', node.list, Arguments.get$EMPTY()); |
11664 this.writer.enterBlock(('for (var ' + tmpi.code + ' = ' + iterator.code + ';
' + hasNext.code + '; ) {')); | 11664 this.writer.enterBlock(('for (var ' + tmpi.code + ' = ' + iterator.code + ';
' + hasNext.code + '; ) {')); |
11665 this.writer.writeln(('var ' + item.code + ' = ' + next.code + ';')); | 11665 this.writer.writeln(('var ' + item.code + ' = ' + next.code + ';')); |
11666 } | 11666 } |
11667 this.visitStatementsInBlock(node.body); | 11667 this.visitStatementsInBlock(node.body); |
11668 this.writer.exitBlock('}'); | 11668 this.writer.exitBlock('}'); |
11669 this._popBlock(); | 11669 this._popBlock(); |
11670 return false; | 11670 return false; |
11671 } | 11671 } |
(...skipping 25 matching lines...) Expand all Loading... |
11697 if (catch_.trace != null) { | 11697 if (catch_.trace != null) { |
11698 var trace = this._scope.declare(catch_.trace); | 11698 var trace = this._scope.declare(catch_.trace); |
11699 this.writer.writeln(('var ' + trace.code + ' = \$stackTraceOf(' + ex.code
+ ');')); | 11699 this.writer.writeln(('var ' + trace.code + ' = \$stackTraceOf(' + ex.code
+ ');')); |
11700 world.gen.corejs.useStackTraceOf = true; | 11700 world.gen.corejs.useStackTraceOf = true; |
11701 } | 11701 } |
11702 this._genToDartException($assert_String(ex.code), node); | 11702 this._genToDartException($assert_String(ex.code), node); |
11703 if (!$notnull_bool(ex.type.get$isVarOrObject())) { | 11703 if (!$notnull_bool(ex.type.get$isVarOrObject())) { |
11704 var test = ex.instanceOf$3$isTrue$forceCheck(this, ex.type, catch_.get$exc
eption().get$span(), false, true); | 11704 var test = ex.instanceOf$3$isTrue$forceCheck(this, ex.type, catch_.get$exc
eption().get$span(), false, true); |
11705 this.writer.writeln(('if (' + test.code + ') throw ' + ex.code + ';')); | 11705 this.writer.writeln(('if (' + test.code + ') throw ' + ex.code + ';')); |
11706 } | 11706 } |
11707 this.visitStatementsInBlock((($0 = node.catches.$index(0).body) && $0.is$lan
g_Statement())); | 11707 this.visitStatementsInBlock((($0 = node.catches.$index(0).body) && $0.is$Sta
tement())); |
11708 this._popBlock(); | 11708 this._popBlock(); |
11709 } | 11709 } |
11710 else if (node.catches.length > 0) { | 11710 else if (node.catches.length > 0) { |
11711 this._pushBlock(false); | 11711 this._pushBlock(false); |
11712 var ex = this._scope.create('\$ex', world.varType, null, false, false); | 11712 var ex = this._scope.create('\$ex', world.varType, null, false, false); |
11713 this._scope.rethrow = (ex && ex.is$Value()); | 11713 this._scope.rethrow = (ex && ex.is$Value()); |
11714 this.writer.nextBlock(('} catch (' + ex.code + ') {')); | 11714 this.writer.nextBlock(('} catch (' + ex.code + ') {')); |
11715 var trace = null; | 11715 var trace = null; |
11716 if (node.catches.some((function (c) { | 11716 if (node.catches.some((function (c) { |
11717 return c.trace != null; | 11717 return c.trace != null; |
(...skipping 20 matching lines...) Expand all Loading... |
11738 } | 11738 } |
11739 } | 11739 } |
11740 else if (i > 0) { | 11740 else if (i > 0) { |
11741 this.writer.nextBlock('} else {'); | 11741 this.writer.nextBlock('} else {'); |
11742 } | 11742 } |
11743 this.writer.writeln(('var ' + tmp.code + ' = ' + ex.code + ';')); | 11743 this.writer.writeln(('var ' + tmp.code + ' = ' + ex.code + ';')); |
11744 if (catch_.trace != null) { | 11744 if (catch_.trace != null) { |
11745 var tmptrace = this._scope.declare(catch_.trace); | 11745 var tmptrace = this._scope.declare(catch_.trace); |
11746 this.writer.writeln(('var ' + tmptrace.code + ' = ' + trace.code + ';'))
; | 11746 this.writer.writeln(('var ' + tmptrace.code + ' = ' + trace.code + ';'))
; |
11747 } | 11747 } |
11748 this.visitStatementsInBlock((($0 = catch_.body) && $0.is$lang_Statement())
); | 11748 this.visitStatementsInBlock((($0 = catch_.body) && $0.is$Statement())); |
11749 this._popBlock(); | 11749 this._popBlock(); |
11750 if ($notnull_bool(tmp.type.get$isVarOrObject())) { | 11750 if ($notnull_bool(tmp.type.get$isVarOrObject())) { |
11751 if (i + 1 < node.catches.length) { | 11751 if (i + 1 < node.catches.length) { |
11752 world.warning('Unreachable catch clause', (($0 = node.catches.$index(i
+ 1)) && $0.is$SourceSpan())); | 11752 world.warning('Unreachable catch clause', (($0 = node.catches.$index(i
+ 1)) && $0.is$SourceSpan())); |
11753 } | 11753 } |
11754 if (i > 0) { | 11754 if (i > 0) { |
11755 this.writer.exitBlock('}'); | 11755 this.writer.exitBlock('}'); |
11756 } | 11756 } |
11757 needsRethrow = false; | 11757 needsRethrow = false; |
11758 break; | 11758 break; |
(...skipping 28 matching lines...) Expand all Loading... |
11787 for (var i = 0; | 11787 for (var i = 0; |
11788 i < case_.cases.length; i++) { | 11788 i < case_.cases.length; i++) { |
11789 var expr = case_.cases.$index(i); | 11789 var expr = case_.cases.$index(i); |
11790 if ($notnull_bool(expr == null)) { | 11790 if ($notnull_bool(expr == null)) { |
11791 if (i < case_.cases.length - 1) { | 11791 if (i < case_.cases.length - 1) { |
11792 world.error('default clause must be the last case', case_.get$span()); | 11792 world.error('default clause must be the last case', case_.get$span()); |
11793 } | 11793 } |
11794 this.writer.writeln('default:'); | 11794 this.writer.writeln('default:'); |
11795 } | 11795 } |
11796 else { | 11796 else { |
11797 var value = this.visitValue((expr && expr.is$lang_Expression())); | 11797 var value = this.visitValue((expr && expr.is$Expression())); |
11798 this.writer.writeln(('case ' + value.code + ':')); | 11798 this.writer.writeln(('case ' + value.code + ':')); |
11799 } | 11799 } |
11800 } | 11800 } |
11801 this.writer.enterBlock(''); | 11801 this.writer.enterBlock(''); |
11802 var caseExits = this._visitAllStatements(case_.statements, false); | 11802 var caseExits = this._visitAllStatements(case_.statements, false); |
11803 if ($notnull_bool($ne(case_, node.cases.$index(node.cases.length - 1))) && !
$notnull_bool(caseExits)) { | 11803 if ($notnull_bool($ne(case_, node.cases.$index(node.cases.length - 1))) && !
$notnull_bool(caseExits)) { |
11804 var span = case_.statements.$index(case_.statements.length - 1).get$span()
; | 11804 var span = case_.statements.$index(case_.statements.length - 1).get$span()
; |
11805 this.writer.writeln('\$throw(new FallThroughError());'); | 11805 this.writer.writeln('\$throw(new FallThroughError());'); |
11806 world.gen.corejs.useThrow = true; | 11806 world.gen.corejs.useThrow = true; |
11807 } | 11807 } |
(...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
12096 switch (node.op.kind) { | 12096 switch (node.op.kind) { |
12097 case 16/*TokenKind.INCR*/: | 12097 case 16/*TokenKind.INCR*/: |
12098 case 17/*TokenKind.DECR*/: | 12098 case 17/*TokenKind.DECR*/: |
12099 | 12099 |
12100 if ($notnull_bool(value.type.get$isNum())) { | 12100 if ($notnull_bool(value.type.get$isNum())) { |
12101 return new Value(value.type, ('' + node.op + '' + value.code + ''), node
.span, true); | 12101 return new Value(value.type, ('' + node.op + '' + value.code + ''), node
.span, true); |
12102 } | 12102 } |
12103 else { | 12103 else { |
12104 var kind = (16/*TokenKind.INCR*/ == node.op.kind ? 42/*TokenKind.ADD*/ :
43/*TokenKind.SUB*/); | 12104 var kind = (16/*TokenKind.INCR*/ == node.op.kind ? 42/*TokenKind.ADD*/ :
43/*TokenKind.SUB*/); |
12105 var operand = new LiteralExpression(1, new TypeReference(node.span, worl
d.numType), '1', node.span); | 12105 var operand = new LiteralExpression(1, new TypeReference(node.span, worl
d.numType), '1', node.span); |
12106 return this._visitAssign($assert_num(kind), node.self, (operand && opera
nd.is$lang_Expression()), node, to$call$1(null)); | 12106 return this._visitAssign($assert_num(kind), node.self, (operand && opera
nd.is$Expression()), node, to$call$1(null)); |
12107 } | 12107 } |
12108 | 12108 |
12109 case 19/*TokenKind.NOT*/: | 12109 case 19/*TokenKind.NOT*/: |
12110 | 12110 |
12111 if ($notnull_bool(value.type.get$isBool()) && $notnull_bool(value.get$isCo
nst())) { | 12111 if ($notnull_bool(value.type.get$isBool()) && $notnull_bool(value.get$isCo
nst())) { |
12112 var newVal = !$notnull_bool(value.get$actualValue()); | 12112 var newVal = !$notnull_bool(value.get$actualValue()); |
12113 return EvaluatedValue.EvaluatedValue$factory((($0 = value.type) && $0.is
$lang_Type()), newVal, ('' + newVal + ''), node.span); | 12113 return EvaluatedValue.EvaluatedValue$factory((($0 = value.type) && $0.is
$Type()), newVal, ('' + newVal + ''), node.span); |
12114 } | 12114 } |
12115 else { | 12115 else { |
12116 var newVal = value.convertTo$3(this, world.nonNullBool, node); | 12116 var newVal = value.convertTo$3(this, world.nonNullBool, node); |
12117 return new Value(newVal.type, ('!' + newVal.code + ''), node.span, true)
; | 12117 return new Value(newVal.type, ('!' + newVal.code + ''), node.span, true)
; |
12118 } | 12118 } |
12119 | 12119 |
12120 case 42/*TokenKind.ADD*/: | 12120 case 42/*TokenKind.ADD*/: |
12121 | 12121 |
12122 return value.convertTo$3(this, world.numType, node); | 12122 return value.convertTo$3(this, world.numType, node); |
12123 | 12123 |
(...skipping 19 matching lines...) Expand all Loading... |
12143 } | 12143 } |
12144 MethodGenerator.prototype.visitPostfixExpression = function(node, isVoid) { | 12144 MethodGenerator.prototype.visitPostfixExpression = function(node, isVoid) { |
12145 var $this = this; // closure support | 12145 var $this = this; // closure support |
12146 var value = this.visitValue(node.body); | 12146 var value = this.visitValue(node.body); |
12147 if ($notnull_bool(value.type.get$isNum())) { | 12147 if ($notnull_bool(value.type.get$isNum())) { |
12148 return new Value(value.type, ('' + value.code + '' + node.op + ''), node.spa
n, true); | 12148 return new Value(value.type, ('' + value.code + '' + node.op + ''), node.spa
n, true); |
12149 } | 12149 } |
12150 var kind = (16/*TokenKind.INCR*/ == node.op.kind) ? 42/*TokenKind.ADD*/ : 43/*
TokenKind.SUB*/; | 12150 var kind = (16/*TokenKind.INCR*/ == node.op.kind) ? 42/*TokenKind.ADD*/ : 43/*
TokenKind.SUB*/; |
12151 var operand = new LiteralExpression(1, new TypeReference(node.span, world.numT
ype), '1', node.span); | 12151 var operand = new LiteralExpression(1, new TypeReference(node.span, world.numT
ype), '1', node.span); |
12152 var tmpleft = null, left = null; | 12152 var tmpleft = null, left = null; |
12153 var ret = this._visitAssign($assert_num(kind), node.body, (operand && operand.
is$lang_Expression()), node, (function (l) { | 12153 var ret = this._visitAssign($assert_num(kind), node.body, (operand && operand.
is$Expression()), node, (function (l) { |
12154 if ($notnull_bool(isVoid)) { | 12154 if ($notnull_bool(isVoid)) { |
12155 return l; | 12155 return l; |
12156 } | 12156 } |
12157 else { | 12157 else { |
12158 left = l; | 12158 left = l; |
12159 tmpleft = $this.forceTemp((l && l.is$Value())); | 12159 tmpleft = $this.forceTemp((l && l.is$Value())); |
12160 return $this.assignTemp((tmpleft && tmpleft.is$Value()), (left && left.is$
Value())); | 12160 return $this.assignTemp((tmpleft && tmpleft.is$Value()), (left && left.is$
Value())); |
12161 } | 12161 } |
12162 }) | 12162 }) |
12163 ); | 12163 ); |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
12196 world.error(('no matching constructor for ' + name + ''), node.span); | 12196 world.error(('no matching constructor for ' + name + ''), node.span); |
12197 return this._makeMissingValue($assert_String(name)); | 12197 return this._makeMissingValue($assert_String(name)); |
12198 } | 12198 } |
12199 if ($notnull_bool(node.isConst)) { | 12199 if ($notnull_bool(node.isConst)) { |
12200 if (!$notnull_bool(m.get$isConst())) { | 12200 if (!$notnull_bool(m.get$isConst())) { |
12201 world.error('can\'t use const on a non-const constructor', node.span); | 12201 world.error('can\'t use const on a non-const constructor', node.span); |
12202 } | 12202 } |
12203 var $list = node.arguments; | 12203 var $list = node.arguments; |
12204 for (var $i = 0;$i < $list.length; $i++) { | 12204 for (var $i = 0;$i < $list.length; $i++) { |
12205 var arg = $list.$index($i); | 12205 var arg = $list.$index($i); |
12206 if (!$notnull_bool(this.visitValue((($0 = arg.get$value()) && $0.is$lang_E
xpression())).get$isConst())) { | 12206 if (!$notnull_bool(this.visitValue((($0 = arg.get$value()) && $0.is$Expres
sion())).get$isConst())) { |
12207 world.error('const constructor expects const arguments', arg.get$span())
; | 12207 world.error('const constructor expects const arguments', arg.get$span())
; |
12208 } | 12208 } |
12209 } | 12209 } |
12210 } | 12210 } |
12211 return m.invoke$4(this, node, null, this._makeArgs(node.arguments)); | 12211 return m.invoke$4(this, node, null, this._makeArgs(node.arguments)); |
12212 } | 12212 } |
12213 MethodGenerator.prototype.visitListExpression = function(node) { | 12213 MethodGenerator.prototype.visitListExpression = function(node) { |
12214 var argsCode = []; | 12214 var argsCode = []; |
12215 var argValues = []; | 12215 var argValues = []; |
12216 var $list = node.values; | 12216 var $list = node.values; |
12217 for (var $i = 0;$i < $list.length; $i++) { | 12217 for (var $i = 0;$i < $list.length; $i++) { |
12218 var item = $list.$index($i); | 12218 var item = $list.$index($i); |
12219 var arg = this.visitValue((item && item.is$lang_Expression())); | 12219 var arg = this.visitValue((item && item.is$Expression())); |
12220 argValues.add$1(arg); | 12220 argValues.add$1(arg); |
12221 if ($notnull_bool(node.isConst)) { | 12221 if ($notnull_bool(node.isConst)) { |
12222 if (!$notnull_bool(arg.get$isConst())) { | 12222 if (!$notnull_bool(arg.get$isConst())) { |
12223 world.error('const list can only contain const values', item.get$span())
; | 12223 world.error('const list can only contain const values', item.get$span())
; |
12224 argsCode.add$1(arg.code); | 12224 argsCode.add$1(arg.code); |
12225 } | 12225 } |
12226 else { | 12226 else { |
12227 argsCode.add$1(arg.get$canonicalCode()); | 12227 argsCode.add$1(arg.get$canonicalCode()); |
12228 } | 12228 } |
12229 } | 12229 } |
12230 else { | 12230 else { |
12231 argsCode.add$1(arg.code); | 12231 argsCode.add$1(arg.code); |
12232 } | 12232 } |
12233 } | 12233 } |
12234 world.get$coreimpl().types.$index('ListFactory').markUsed$0(); | 12234 world.get$coreimpl().types.$index('ListFactory').markUsed$0(); |
12235 var code = ('[' + Strings.join((argsCode && argsCode.is$List$String()), ", ")
+ ']'); | 12235 var code = ('[' + Strings.join((argsCode && argsCode.is$List$String()), ", ")
+ ']'); |
12236 var value = new Value(world.listType, code, node.span, true); | 12236 var value = new Value(world.listType, code, node.span, true); |
12237 if ($notnull_bool(node.isConst)) { | 12237 if ($notnull_bool(node.isConst)) { |
12238 var immutableList = world.get$coreimpl().types.$index('ImmutableList'); | 12238 var immutableList = world.get$coreimpl().types.$index('ImmutableList'); |
12239 var immutableListCtor = immutableList.getConstructor$1('from'); | 12239 var immutableListCtor = immutableList.getConstructor$1('from'); |
12240 var result = immutableListCtor.invoke$4(this, node, null, new Arguments(null
, [value])); | 12240 var result = immutableListCtor.invoke$4(this, node, null, new Arguments(null
, [value])); |
12241 value = world.gen.globalForConst(ConstListValue.ConstListValue$factory((immu
tableList && immutableList.is$lang_Type()), (argValues && argValues.is$List$Eval
uatedValue()), ('const ' + code + ''), $assert_String(result.code), node.span),
(argValues && argValues.is$List$Value())); | 12241 value = world.gen.globalForConst(ConstListValue.ConstListValue$factory((immu
tableList && immutableList.is$Type()), (argValues && argValues.is$List$Evaluated
Value()), ('const ' + code + ''), $assert_String(result.code), node.span), (argV
alues && argValues.is$List$Value())); |
12242 } | 12242 } |
12243 return value; | 12243 return value; |
12244 } | 12244 } |
12245 MethodGenerator.prototype.visitMapExpression = function(node) { | 12245 MethodGenerator.prototype.visitMapExpression = function(node) { |
12246 var $0; | 12246 var $0; |
12247 var mapImplType = world.gen.useMapFactory(); | 12247 var mapImplType = world.gen.useMapFactory(); |
12248 var argValues = []; | 12248 var argValues = []; |
12249 var argsCode = []; | 12249 var argsCode = []; |
12250 for (var i = 0; | 12250 for (var i = 0; |
12251 i < node.items.length; i += 2) { | 12251 i < node.items.length; i += 2) { |
12252 var key = this.visitTypedValue((($0 = node.items.$index(i)) && $0.is$lang_Ex
pression()), world.stringType); | 12252 var key = this.visitTypedValue((($0 = node.items.$index(i)) && $0.is$Express
ion()), world.stringType); |
12253 var valueItem = node.items.$index(i + 1); | 12253 var valueItem = node.items.$index(i + 1); |
12254 var value = this.visitValue((valueItem && valueItem.is$lang_Expression())); | 12254 var value = this.visitValue((valueItem && valueItem.is$Expression())); |
12255 argValues.add$1(key); | 12255 argValues.add$1(key); |
12256 argValues.add$1(value); | 12256 argValues.add$1(value); |
12257 if ($notnull_bool(node.isConst)) { | 12257 if ($notnull_bool(node.isConst)) { |
12258 if (!$notnull_bool(key.get$isConst()) || !$notnull_bool(value.get$isConst(
))) { | 12258 if (!$notnull_bool(key.get$isConst()) || !$notnull_bool(value.get$isConst(
))) { |
12259 world.error('const map can only contain const values', valueItem.get$spa
n()); | 12259 world.error('const map can only contain const values', valueItem.get$spa
n()); |
12260 argsCode.add$1(key.code); | 12260 argsCode.add$1(key.code); |
12261 argsCode.add$1(value.code); | 12261 argsCode.add$1(value.code); |
12262 } | 12262 } |
12263 else { | 12263 else { |
12264 argsCode.add$1(key.get$canonicalCode()); | 12264 argsCode.add$1(key.get$canonicalCode()); |
12265 argsCode.add$1(value.get$canonicalCode()); | 12265 argsCode.add$1(value.get$canonicalCode()); |
12266 } | 12266 } |
12267 } | 12267 } |
12268 else { | 12268 else { |
12269 argsCode.add$1(key.code); | 12269 argsCode.add$1(key.code); |
12270 argsCode.add$1(value.code); | 12270 argsCode.add$1(value.code); |
12271 } | 12271 } |
12272 } | 12272 } |
12273 var argList = ('[' + Strings.join((argsCode && argsCode.is$List$String()), ",
") + ']'); | 12273 var argList = ('[' + Strings.join((argsCode && argsCode.is$List$String()), ",
") + ']'); |
12274 var code = ('\$map(' + argList + ')'); | 12274 var code = ('\$map(' + argList + ')'); |
12275 if ($notnull_bool(node.isConst)) { | 12275 if ($notnull_bool(node.isConst)) { |
12276 var immutableMap = world.get$coreimpl().types.$index('ImmutableMap'); | 12276 var immutableMap = world.get$coreimpl().types.$index('ImmutableMap'); |
12277 var immutableMapCtor = immutableMap.getConstructor$1(''); | 12277 var immutableMapCtor = immutableMap.getConstructor$1(''); |
12278 var argsValue = new Value(world.listType, argList, node.span, true); | 12278 var argsValue = new Value(world.listType, argList, node.span, true); |
12279 var result = immutableMapCtor.invoke$4(this, node, null, new Arguments(null,
[argsValue])); | 12279 var result = immutableMapCtor.invoke$4(this, node, null, new Arguments(null,
[argsValue])); |
12280 var value = ConstMapValue.ConstMapValue$factory((immutableMap && immutableMa
p.is$lang_Type()), (argValues && argValues.is$List$EvaluatedValue()), code, $ass
ert_String(result.code), node.span); | 12280 var value = ConstMapValue.ConstMapValue$factory((immutableMap && immutableMa
p.is$Type()), (argValues && argValues.is$List$EvaluatedValue()), code, $assert_S
tring(result.code), node.span); |
12281 return world.gen.globalForConst(value, (argValues && argValues.is$List$Value
())); | 12281 return world.gen.globalForConst(value, (argValues && argValues.is$List$Value
())); |
12282 } | 12282 } |
12283 return new Value(mapImplType, code, node.span, true); | 12283 return new Value(mapImplType, code, node.span, true); |
12284 } | 12284 } |
12285 MethodGenerator.prototype.visitConditionalExpression = function(node) { | 12285 MethodGenerator.prototype.visitConditionalExpression = function(node) { |
12286 var $0; | 12286 var $0; |
12287 var test = this.visitBool(node.test); | 12287 var test = this.visitBool(node.test); |
12288 var trueBranch = this.visitValue(node.trueBranch); | 12288 var trueBranch = this.visitValue(node.trueBranch); |
12289 var falseBranch = this.visitValue(node.falseBranch); | 12289 var falseBranch = this.visitValue(node.falseBranch); |
12290 var code = ('' + test.code + ' ? ' + trueBranch.code + ' : ' + falseBranch.cod
e + ''); | 12290 var code = ('' + test.code + ' ? ' + trueBranch.code + ' : ' + falseBranch.cod
e + ''); |
12291 return new Value(lang_Type.union((($0 = trueBranch.type) && $0.is$lang_Type())
, (($0 = falseBranch.type) && $0.is$lang_Type())), code, node.span, true); | 12291 return new Value(Type.union((($0 = trueBranch.type) && $0.is$Type()), (($0 = f
alseBranch.type) && $0.is$Type())), code, node.span, true); |
12292 } | 12292 } |
12293 MethodGenerator.prototype.visitIsExpression = function(node) { | 12293 MethodGenerator.prototype.visitIsExpression = function(node) { |
12294 var value = this.visitValue(node.x); | 12294 var value = this.visitValue(node.x); |
12295 var type = this.method.resolveType(node.type, false); | 12295 var type = this.method.resolveType(node.type, false); |
12296 return value.instanceOf$4(this, type, node.span, node.isTrue); | 12296 return value.instanceOf$4(this, type, node.span, node.isTrue); |
12297 } | 12297 } |
12298 MethodGenerator.prototype.visitParenExpression = function(node) { | 12298 MethodGenerator.prototype.visitParenExpression = function(node) { |
12299 var $0; | 12299 var $0; |
12300 var body = this.visitValue(node.body); | 12300 var body = this.visitValue(node.body); |
12301 if ($notnull_bool(body.get$isConst())) { | 12301 if ($notnull_bool(body.get$isConst())) { |
12302 return EvaluatedValue.EvaluatedValue$factory((($0 = body.type) && $0.is$lang
_Type()), body.get$actualValue(), ('(' + body.get$canonicalCode() + ')'), node.s
pan); | 12302 return EvaluatedValue.EvaluatedValue$factory((($0 = body.type) && $0.is$Type
()), body.get$actualValue(), ('(' + body.get$canonicalCode() + ')'), node.span); |
12303 } | 12303 } |
12304 return new Value(body.type, ('(' + body.code + ')'), node.span, true); | 12304 return new Value(body.type, ('(' + body.code + ')'), node.span, true); |
12305 } | 12305 } |
12306 MethodGenerator.prototype.visitDotExpression = function(node) { | 12306 MethodGenerator.prototype.visitDotExpression = function(node) { |
12307 var target = node.self.visit(this); | 12307 var target = node.self.visit(this); |
12308 return target.get_$3(this, node.name.name, node.name); | 12308 return target.get_$3(this, node.name.name, node.name); |
12309 } | 12309 } |
12310 MethodGenerator.prototype.visitVarExpression = function(node) { | 12310 MethodGenerator.prototype.visitVarExpression = function(node) { |
12311 var name = node.name.name; | 12311 var name = node.name.name; |
12312 var ret = this._scope.lookup(name); | 12312 var ret = this._scope.lookup(name); |
(...skipping 18 matching lines...) Expand all Loading... |
12331 } | 12331 } |
12332 MethodGenerator.prototype.visitLiteralExpression = function(node) { | 12332 MethodGenerator.prototype.visitLiteralExpression = function(node) { |
12333 var $0; | 12333 var $0; |
12334 var type = node.type.type; | 12334 var type = node.type.type; |
12335 $assert($ne(type, null), "type != null", "gen.dart", 2119, 12); | 12335 $assert($ne(type, null), "type != null", "gen.dart", 2119, 12); |
12336 if (!!(($0 = node.value) && $0.is$List)) { | 12336 if (!!(($0 = node.value) && $0.is$List)) { |
12337 var items = []; | 12337 var items = []; |
12338 var $list = node.value; | 12338 var $list = node.value; |
12339 for (var $i = node.value.iterator$0(); $i.hasNext$0(); ) { | 12339 for (var $i = node.value.iterator$0(); $i.hasNext$0(); ) { |
12340 var item = $i.next$0(); | 12340 var item = $i.next$0(); |
12341 var val = this.visitValue((item && item.is$lang_Expression())); | 12341 var val = this.visitValue((item && item.is$Expression())); |
12342 val.invoke$4(this, 'toString', item, Arguments.get$EMPTY()); | 12342 val.invoke$4(this, 'toString', item, Arguments.get$EMPTY()); |
12343 var code = val.code; | 12343 var code = val.code; |
12344 if ((item instanceof BinaryExpression) || (item instanceof ConditionalExpr
ession)) { | 12344 if ((item instanceof BinaryExpression) || (item instanceof ConditionalExpr
ession)) { |
12345 code = ('(' + code + ')'); | 12345 code = ('(' + code + ')'); |
12346 } | 12346 } |
12347 items.add$1(code); | 12347 items.add$1(code); |
12348 } | 12348 } |
12349 return new Value(type, ('(' + Strings.join((items && items.is$List$String())
, " + ") + ')'), node.span, true); | 12349 return new Value(type, ('(' + Strings.join((items && items.is$List$String())
, " + ") + ')'), node.span, true); |
12350 } | 12350 } |
12351 var text = node.text; | 12351 var text = node.text; |
12352 if ($notnull_bool(type.get$isString())) { | 12352 if ($notnull_bool(type.get$isString())) { |
12353 if ($notnull_bool(text.startsWith$1('@'))) { | 12353 if ($notnull_bool(text.startsWith$1('@'))) { |
12354 text = MethodGenerator._escapeString(parseStringLiteral($assert_String(tex
t))); | 12354 text = MethodGenerator._escapeString(parseStringLiteral($assert_String(tex
t))); |
12355 text = ('"' + text + '"'); | 12355 text = ('"' + text + '"'); |
12356 } | 12356 } |
12357 else if ($notnull_bool(isMultilineString($assert_String(text)))) { | 12357 else if ($notnull_bool(isMultilineString($assert_String(text)))) { |
12358 text = parseStringLiteral($assert_String(text)); | 12358 text = parseStringLiteral($assert_String(text)); |
12359 text = text.replaceAll$2('\n', '\\n'); | 12359 text = text.replaceAll$2('\n', '\\n'); |
12360 text = text.replaceAll$2('"', '\\"'); | 12360 text = text.replaceAll$2('"', '\\"'); |
12361 text = ('"' + text + '"'); | 12361 text = ('"' + text + '"'); |
12362 } | 12362 } |
12363 if (text !== node.text) { | 12363 if (text !== node.text) { |
12364 node.value = text; | 12364 node.value = text; |
12365 node.text = $assert_String(text); | 12365 node.text = $assert_String(text); |
12366 } | 12366 } |
12367 } | 12367 } |
12368 return EvaluatedValue.EvaluatedValue$factory((type && type.is$lang_Type()), no
de.value, node.text, null); | 12368 return EvaluatedValue.EvaluatedValue$factory((type && type.is$Type()), node.va
lue, node.text, null); |
12369 } | 12369 } |
12370 MethodGenerator.prototype.visitPostfixExpression$1 = function($0) { | 12370 MethodGenerator.prototype.visitPostfixExpression$1 = function($0) { |
12371 return this.visitPostfixExpression(($0 && $0.is$PostfixExpression()), false); | 12371 return this.visitPostfixExpression(($0 && $0.is$PostfixExpression()), false); |
12372 }; | 12372 }; |
12373 MethodGenerator.prototype.writeDefinition$2 = function($0, $1) { | 12373 MethodGenerator.prototype.writeDefinition$2 = function($0, $1) { |
12374 return this.writeDefinition(($0 && $0.is$CodeWriter()), ($1 && $1.is$LambdaExp
ression())); | 12374 return this.writeDefinition(($0 && $0.is$CodeWriter()), ($1 && $1.is$LambdaExp
ression())); |
12375 }; | 12375 }; |
12376 // ********** Code for Arguments ************** | 12376 // ********** Code for Arguments ************** |
12377 function Arguments(nodes, values) { | 12377 function Arguments(nodes, values) { |
12378 this.nodes = nodes; | 12378 this.nodes = nodes; |
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
12618 } | 12618 } |
12619 if ($notnull_bool($ne(newRet, null))) { | 12619 if ($notnull_bool($ne(newRet, null))) { |
12620 if ($notnull_bool($ne(ret, null)) && $notnull_bool($ne(ret, newRet))) { | 12620 if ($notnull_bool($ne(ret, null)) && $notnull_bool($ne(ret, newRet))) { |
12621 world.error(('conflicting types for "' + name + '"'), ret.get$span(), ne
wRet.get$span()); | 12621 world.error(('conflicting types for "' + name + '"'), ret.get$span(), ne
wRet.get$span()); |
12622 } | 12622 } |
12623 else { | 12623 else { |
12624 ret = newRet; | 12624 ret = newRet; |
12625 } | 12625 } |
12626 } | 12626 } |
12627 } | 12627 } |
12628 return (ret && ret.is$lang_Type()); | 12628 return (ret && ret.is$Type()); |
12629 } | 12629 } |
12630 Library.prototype.lookup = function(name, span) { | 12630 Library.prototype.lookup = function(name, span) { |
12631 var retType = this.findTypeByName(name); | 12631 var retType = this.findTypeByName(name); |
12632 var ret = null; | 12632 var ret = null; |
12633 if ($notnull_bool($ne(retType, null))) { | 12633 if ($notnull_bool($ne(retType, null))) { |
12634 ret = retType.get$typeMember(); | 12634 ret = retType.get$typeMember(); |
12635 } | 12635 } |
12636 var newRet = this.topType.getMember(name); | 12636 var newRet = this.topType.getMember(name); |
12637 if ($notnull_bool($ne(newRet, null))) { | 12637 if ($notnull_bool($ne(newRet, null))) { |
12638 if ($notnull_bool($ne(ret, null)) && $notnull_bool($ne(ret, newRet))) { | 12638 if ($notnull_bool($ne(ret, null)) && $notnull_bool($ne(ret, newRet))) { |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
12727 _LibraryVisitor.prototype.addSource = function(source) { | 12727 _LibraryVisitor.prototype.addSource = function(source) { |
12728 var $this = this; // closure support | 12728 var $this = this; // closure support |
12729 if (this.library.sources.some((function (s) { | 12729 if (this.library.sources.some((function (s) { |
12730 return s.filename == source.filename; | 12730 return s.filename == source.filename; |
12731 }) | 12731 }) |
12732 )) { | 12732 )) { |
12733 world.error(('duplicate source file "' + source.filename + '"')); | 12733 world.error(('duplicate source file "' + source.filename + '"')); |
12734 return; | 12734 return; |
12735 } | 12735 } |
12736 this.library.sources.add(source); | 12736 this.library.sources.add(source); |
12737 var parser = new lang_Parser(source, options.dietParse, false, false, 0); | 12737 var parser = new Parser(source, options.dietParse, false, false, 0); |
12738 var unit = parser.compilationUnit(); | 12738 var unit = parser.compilationUnit(); |
12739 unit.forEach((function (def) { | 12739 unit.forEach((function (def) { |
12740 return def.visit$1($this); | 12740 return def.visit$1($this); |
12741 }) | 12741 }) |
12742 ); | 12742 ); |
12743 $assert(this.sources.length == 0 || $notnull_bool(this.isTop), "sources.length
== 0 || isTop", "library.dart", 293, 12); | 12743 $assert(this.sources.length == 0 || $notnull_bool(this.isTop), "sources.length
== 0 || isTop", "library.dart", 293, 12); |
12744 this.isTop = false; | 12744 this.isTop = false; |
12745 var newSources = this.sources; | 12745 var newSources = this.sources; |
12746 this.sources = []; | 12746 this.sources = []; |
12747 for (var $i = newSources.iterator$0(); $i.hasNext$0(); ) { | 12747 for (var $i = newSources.iterator$0(); $i.hasNext$0(); ) { |
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
12943 var ret = new Parameter(this.definition); | 12943 var ret = new Parameter(this.definition); |
12944 ret.set$type(newType); | 12944 ret.set$type(newType); |
12945 ret.set$name(this.name); | 12945 ret.set$name(this.name); |
12946 ret.isInitializer = this.isInitializer; | 12946 ret.isInitializer = this.isInitializer; |
12947 return (ret && ret.is$Parameter()); | 12947 return (ret && ret.is$Parameter()); |
12948 } | 12948 } |
12949 Parameter.prototype.get$isOptional = function() { | 12949 Parameter.prototype.get$isOptional = function() { |
12950 return this.definition != null && this.definition.value != null; | 12950 return this.definition != null && this.definition.value != null; |
12951 } | 12951 } |
12952 Parameter.prototype.copyWithNewType$1 = function($0) { | 12952 Parameter.prototype.copyWithNewType$1 = function($0) { |
12953 return this.copyWithNewType(($0 && $0.is$lang_Type())); | 12953 return this.copyWithNewType(($0 && $0.is$Type())); |
12954 }; | 12954 }; |
12955 Parameter.prototype.genValue$2 = function($0, $1) { | 12955 Parameter.prototype.genValue$2 = function($0, $1) { |
12956 return this.genValue(($0 && $0.is$MethodMember()), ($1 && $1.is$MethodGenerato
r())); | 12956 return this.genValue(($0 && $0.is$MethodMember()), ($1 && $1.is$MethodGenerato
r())); |
12957 }; | 12957 }; |
12958 Parameter.prototype.resolve$2 = function($0, $1) { | 12958 Parameter.prototype.resolve$2 = function($0, $1) { |
12959 return this.resolve(($0 && $0.is$Member()), ($1 && $1.is$lang_Type())); | 12959 return this.resolve(($0 && $0.is$Member()), ($1 && $1.is$Type())); |
12960 }; | 12960 }; |
12961 // ********** Code for Member ************** | 12961 // ********** Code for Member ************** |
12962 function Member(name, declaringType) { | 12962 function Member(name, declaringType) { |
12963 this.name = name; | 12963 this.name = name; |
12964 this.declaringType = declaringType; | 12964 this.declaringType = declaringType; |
12965 this.isGenerated = false; | 12965 this.isGenerated = false; |
12966 // Initializers done | 12966 // Initializers done |
12967 } | 12967 } |
12968 Member.prototype.is$Member = function(){return this;}; | 12968 Member.prototype.is$Member = function(){return this;}; |
12969 Member.prototype.is$Named = function(){return this;}; | 12969 Member.prototype.is$Named = function(){return this;}; |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
13029 world.internalError('cannot have initializers', this.get$span()); | 13029 world.internalError('cannot have initializers', this.get$span()); |
13030 } | 13030 } |
13031 Member.prototype.set$initDelegate = function(ctor) { | 13031 Member.prototype.set$initDelegate = function(ctor) { |
13032 world.internalError('cannot have initializers', this.get$span()); | 13032 world.internalError('cannot have initializers', this.get$span()); |
13033 } | 13033 } |
13034 Member.prototype.get$inferredResult = function() { | 13034 Member.prototype.get$inferredResult = function() { |
13035 var t = this.get$returnType(); | 13035 var t = this.get$returnType(); |
13036 if ($notnull_bool(t.get$isBool()) && ($notnull_bool(this.get$library().get$isC
ore()) || $notnull_bool(this.get$library().get$isCoreImpl()))) { | 13036 if ($notnull_bool(t.get$isBool()) && ($notnull_bool(this.get$library().get$isC
ore()) || $notnull_bool(this.get$library().get$isCoreImpl()))) { |
13037 return world.nonNullBool; | 13037 return world.nonNullBool; |
13038 } | 13038 } |
13039 return (t && t.is$lang_Type()); | 13039 return (t && t.is$Type()); |
13040 } | 13040 } |
13041 Member.prototype.get$definition = function() { | 13041 Member.prototype.get$definition = function() { |
13042 return null; | 13042 return null; |
13043 } | 13043 } |
13044 Member.prototype.get$parameters = function() { | 13044 Member.prototype.get$parameters = function() { |
13045 return []; | 13045 return []; |
13046 } | 13046 } |
13047 Member.prototype.canInvoke = function(context, args) { | 13047 Member.prototype.canInvoke = function(context, args) { |
13048 return $notnull_bool(this.get$canGet()) && $notnull_bool(new Value(this.get$re
turnType(), null, null, true).canInvoke(context, '\$call', args)); | 13048 return $notnull_bool(this.get$canGet()) && $notnull_bool(new Value(this.get$re
turnType(), null, null, true).canInvoke(context, '\$call', args)); |
13049 } | 13049 } |
(...skipping 21 matching lines...) Expand all Loading... |
13071 } | 13071 } |
13072 else { | 13072 else { |
13073 return ('' + prefix + '' + this.name + '\$factory'); | 13073 return ('' + prefix + '' + this.name + '\$factory'); |
13074 } | 13074 } |
13075 } | 13075 } |
13076 Member.prototype.resolveType = function(node, isRequired) { | 13076 Member.prototype.resolveType = function(node, isRequired) { |
13077 var type = this.declaringType.resolveType(node, isRequired); | 13077 var type = this.declaringType.resolveType(node, isRequired); |
13078 if ($notnull_bool(this.get$isStatic()) && $notnull_bool(type.get$hasTypeParams
())) { | 13078 if ($notnull_bool(this.get$isStatic()) && $notnull_bool(type.get$hasTypeParams
())) { |
13079 world.error('using type parameter in static context', node.span); | 13079 world.error('using type parameter in static context', node.span); |
13080 } | 13080 } |
13081 return (type && type.is$lang_Type()); | 13081 return (type && type.is$Type()); |
13082 } | 13082 } |
13083 Member.prototype._get$3 = function($0, $1, $2) { | 13083 Member.prototype._get$3 = function($0, $1, $2) { |
13084 return this._get(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()), (
$2 && $2.is$Value())); | 13084 return this._get(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Node()), ($2 &&
$2.is$Value())); |
13085 }; | 13085 }; |
13086 Member.prototype._set$4 = function($0, $1, $2, $3) { | 13086 Member.prototype._set$4 = function($0, $1, $2, $3) { |
13087 return this._set(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()), (
$2 && $2.is$Value()), ($3 && $3.is$Value())); | 13087 return this._set(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Node()), ($2 &&
$2.is$Value()), ($3 && $3.is$Value())); |
13088 }; | 13088 }; |
13089 Member.prototype.canInvoke$2 = function($0, $1) { | 13089 Member.prototype.canInvoke$2 = function($0, $1) { |
13090 return this.canInvoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Arguments(
))); | 13090 return this.canInvoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Arguments(
))); |
13091 }; | 13091 }; |
13092 Member.prototype.invoke$4 = function($0, $1, $2, $3) { | 13092 Member.prototype.invoke$4 = function($0, $1, $2, $3) { |
13093 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()),
($2 && $2.is$Value()), ($3 && $3.is$Arguments()), false); | 13093 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Node()), ($2
&& $2.is$Value()), ($3 && $3.is$Arguments()), false); |
13094 }; | 13094 }; |
13095 Member.prototype.invoke$4$isDynamic = function($0, $1, $2, $3, isDynamic) { | 13095 Member.prototype.invoke$4$isDynamic = function($0, $1, $2, $3, isDynamic) { |
13096 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()),
($2 && $2.is$Value()), ($3 && $3.is$Arguments()), $assert_bool(isDynamic)); | 13096 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Node()), ($2
&& $2.is$Value()), ($3 && $3.is$Arguments()), $assert_bool(isDynamic)); |
13097 }; | 13097 }; |
13098 Member.prototype.invoke$5 = function($0, $1, $2, $3, $4) { | 13098 Member.prototype.invoke$5 = function($0, $1, $2, $3, $4) { |
13099 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()),
($2 && $2.is$Value()), ($3 && $3.is$Arguments()), $assert_bool($4)); | 13099 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Node()), ($2
&& $2.is$Value()), ($3 && $3.is$Arguments()), $assert_bool($4)); |
13100 }; | 13100 }; |
13101 Member.prototype.provideFieldSyntax$0 = function() { | 13101 Member.prototype.provideFieldSyntax$0 = function() { |
13102 return this.provideFieldSyntax(); | 13102 return this.provideFieldSyntax(); |
13103 }; | 13103 }; |
13104 Member.prototype.providePropertySyntax$0 = function() { | 13104 Member.prototype.providePropertySyntax$0 = function() { |
13105 return this.providePropertySyntax(); | 13105 return this.providePropertySyntax(); |
13106 }; | 13106 }; |
13107 Member.prototype.resolve$1 = function($0) { | 13107 Member.prototype.resolve$1 = function($0) { |
13108 return this.resolve(($0 && $0.is$lang_Type())); | 13108 return this.resolve(($0 && $0.is$Type())); |
13109 }; | 13109 }; |
13110 // ********** Code for TypeMember ************** | 13110 // ********** Code for TypeMember ************** |
13111 function TypeMember(type) { | 13111 function TypeMember(type) { |
13112 this.type = type; | 13112 this.type = type; |
13113 // Initializers done | 13113 // Initializers done |
13114 Member.call(this, type.name, type.library.topType); | 13114 Member.call(this, type.name, type.library.topType); |
13115 } | 13115 } |
13116 $inherits(TypeMember, Member); | 13116 $inherits(TypeMember, Member); |
13117 TypeMember.prototype.is$TypeMember = function(){return this;}; | 13117 TypeMember.prototype.is$TypeMember = function(){return this;}; |
13118 TypeMember.prototype.get$type = function() { return this.type; }; | 13118 TypeMember.prototype.get$type = function() { return this.type; }; |
(...skipping 23 matching lines...) Expand all Loading... |
13142 ret.isType = true; | 13142 ret.isType = true; |
13143 return (ret && ret.is$Value()); | 13143 return (ret && ret.is$Value()); |
13144 } | 13144 } |
13145 TypeMember.prototype._set = function(context, node, target, value, isDynamic) { | 13145 TypeMember.prototype._set = function(context, node, target, value, isDynamic) { |
13146 world.error('can not set type', node.span); | 13146 world.error('can not set type', node.span); |
13147 } | 13147 } |
13148 TypeMember.prototype.invoke = function(context, node, target, args, isDynamic) { | 13148 TypeMember.prototype.invoke = function(context, node, target, args, isDynamic) { |
13149 world.error('can not invoke type', node.span); | 13149 world.error('can not invoke type', node.span); |
13150 } | 13150 } |
13151 TypeMember.prototype._get$3 = function($0, $1, $2) { | 13151 TypeMember.prototype._get$3 = function($0, $1, $2) { |
13152 return this._get(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()), (
$2 && $2.is$Value()), false); | 13152 return this._get(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Node()), ($2 &&
$2.is$Value()), false); |
13153 }; | 13153 }; |
13154 TypeMember.prototype._set$4 = function($0, $1, $2, $3) { | 13154 TypeMember.prototype._set$4 = function($0, $1, $2, $3) { |
13155 return this._set(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()), (
$2 && $2.is$Value()), ($3 && $3.is$Value()), false); | 13155 return this._set(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Node()), ($2 &&
$2.is$Value()), ($3 && $3.is$Value()), false); |
13156 }; | 13156 }; |
13157 TypeMember.prototype.canInvoke$2 = function($0, $1) { | 13157 TypeMember.prototype.canInvoke$2 = function($0, $1) { |
13158 return this.canInvoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Arguments(
))); | 13158 return this.canInvoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Arguments(
))); |
13159 }; | 13159 }; |
13160 TypeMember.prototype.invoke$4 = function($0, $1, $2, $3) { | 13160 TypeMember.prototype.invoke$4 = function($0, $1, $2, $3) { |
13161 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()),
($2 && $2.is$Value()), ($3 && $3.is$Arguments()), false); | 13161 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Node()), ($2
&& $2.is$Value()), ($3 && $3.is$Arguments()), false); |
13162 }; | 13162 }; |
13163 TypeMember.prototype.invoke$4$isDynamic = function($0, $1, $2, $3, isDynamic) { | 13163 TypeMember.prototype.invoke$4$isDynamic = function($0, $1, $2, $3, isDynamic) { |
13164 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()),
($2 && $2.is$Value()), ($3 && $3.is$Arguments()), $assert_bool(isDynamic)); | 13164 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Node()), ($2
&& $2.is$Value()), ($3 && $3.is$Arguments()), $assert_bool(isDynamic)); |
13165 }; | 13165 }; |
13166 TypeMember.prototype.invoke$5 = function($0, $1, $2, $3, $4) { | 13166 TypeMember.prototype.invoke$5 = function($0, $1, $2, $3, $4) { |
13167 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()),
($2 && $2.is$Value()), ($3 && $3.is$Arguments()), $assert_bool($4)); | 13167 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Node()), ($2
&& $2.is$Value()), ($3 && $3.is$Arguments()), $assert_bool($4)); |
13168 }; | 13168 }; |
13169 TypeMember.prototype.resolve$1 = function($0) { | 13169 TypeMember.prototype.resolve$1 = function($0) { |
13170 return this.resolve(($0 && $0.is$lang_Type())); | 13170 return this.resolve(($0 && $0.is$Type())); |
13171 }; | 13171 }; |
13172 // ********** Code for FieldMember ************** | 13172 // ********** Code for FieldMember ************** |
13173 function FieldMember(name, declaringType, definition, value) { | 13173 function FieldMember(name, declaringType, definition, value) { |
13174 this._providePropertySyntax = false | 13174 this._providePropertySyntax = false |
13175 this._computing = false | 13175 this._computing = false |
13176 this.definition = definition; | 13176 this.definition = definition; |
13177 this.value = value; | 13177 this.value = value; |
13178 this.isNative = false; | 13178 this.isNative = false; |
13179 // Initializers done | 13179 // Initializers done |
13180 Member.call(this, name, declaringType); | 13180 Member.call(this, name, declaringType); |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
13317 } | 13317 } |
13318 } | 13318 } |
13319 return new Value(this.type, ('' + target.code + '.' + this.get$jsname() + ''),
node.span, true); | 13319 return new Value(this.type, ('' + target.code + '.' + this.get$jsname() + ''),
node.span, true); |
13320 } | 13320 } |
13321 FieldMember.prototype._set = function(context, node, target, value, isDynamic) { | 13321 FieldMember.prototype._set = function(context, node, target, value, isDynamic) { |
13322 var lhs = this._get(context, node, target, isDynamic); | 13322 var lhs = this._get(context, node, target, isDynamic); |
13323 value = value.convertTo(context, this.type, node, isDynamic); | 13323 value = value.convertTo(context, this.type, node, isDynamic); |
13324 return new Value(this.type, ('' + lhs.code + ' = ' + value.code + ''), node.sp
an, true); | 13324 return new Value(this.type, ('' + lhs.code + ' = ' + value.code + ''), node.sp
an, true); |
13325 } | 13325 } |
13326 FieldMember.prototype._get$3 = function($0, $1, $2) { | 13326 FieldMember.prototype._get$3 = function($0, $1, $2) { |
13327 return this._get(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()), (
$2 && $2.is$Value()), false); | 13327 return this._get(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Node()), ($2 &&
$2.is$Value()), false); |
13328 }; | 13328 }; |
13329 FieldMember.prototype._set$4 = function($0, $1, $2, $3) { | 13329 FieldMember.prototype._set$4 = function($0, $1, $2, $3) { |
13330 return this._set(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()), (
$2 && $2.is$Value()), ($3 && $3.is$Value()), false); | 13330 return this._set(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Node()), ($2 &&
$2.is$Value()), ($3 && $3.is$Value()), false); |
13331 }; | 13331 }; |
13332 FieldMember.prototype.computeValue$0 = function() { | 13332 FieldMember.prototype.computeValue$0 = function() { |
13333 return this.computeValue(); | 13333 return this.computeValue(); |
13334 }; | 13334 }; |
13335 FieldMember.prototype.provideFieldSyntax$0 = function() { | 13335 FieldMember.prototype.provideFieldSyntax$0 = function() { |
13336 return this.provideFieldSyntax(); | 13336 return this.provideFieldSyntax(); |
13337 }; | 13337 }; |
13338 FieldMember.prototype.providePropertySyntax$0 = function() { | 13338 FieldMember.prototype.providePropertySyntax$0 = function() { |
13339 return this.providePropertySyntax(); | 13339 return this.providePropertySyntax(); |
13340 }; | 13340 }; |
13341 FieldMember.prototype.resolve$1 = function($0) { | 13341 FieldMember.prototype.resolve$1 = function($0) { |
13342 return this.resolve(($0 && $0.is$lang_Type())); | 13342 return this.resolve(($0 && $0.is$Type())); |
13343 }; | 13343 }; |
13344 // ********** Code for PropertyMember ************** | 13344 // ********** Code for PropertyMember ************** |
13345 function PropertyMember(name, declaringType) { | 13345 function PropertyMember(name, declaringType) { |
13346 this._provideFieldSyntax = false | 13346 this._provideFieldSyntax = false |
13347 // Initializers done | 13347 // Initializers done |
13348 Member.call(this, name, declaringType); | 13348 Member.call(this, name, declaringType); |
13349 } | 13349 } |
13350 $inherits(PropertyMember, Member); | 13350 $inherits(PropertyMember, Member); |
13351 PropertyMember.prototype.is$PropertyMember = function(){return this;}; | 13351 PropertyMember.prototype.is$PropertyMember = function(){return this;}; |
13352 PropertyMember.prototype.get$span = function() { | 13352 PropertyMember.prototype.get$span = function() { |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
13422 } | 13422 } |
13423 if (this.getter == null) this.getter = parent.getter; | 13423 if (this.getter == null) this.getter = parent.getter; |
13424 if (this.setter == null) this.setter = parent.setter; | 13424 if (this.setter == null) this.setter = parent.setter; |
13425 } | 13425 } |
13426 PropertyMember.prototype.resolve = function(inType) { | 13426 PropertyMember.prototype.resolve = function(inType) { |
13427 if (this.getter != null) this.getter.resolve(inType); | 13427 if (this.getter != null) this.getter.resolve(inType); |
13428 if (this.setter != null) this.setter.resolve(inType); | 13428 if (this.setter != null) this.setter.resolve(inType); |
13429 this.get$library()._addMember(this); | 13429 this.get$library()._addMember(this); |
13430 } | 13430 } |
13431 PropertyMember.prototype._get$3 = function($0, $1, $2) { | 13431 PropertyMember.prototype._get$3 = function($0, $1, $2) { |
13432 return this._get(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()), (
$2 && $2.is$Value()), false); | 13432 return this._get(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Node()), ($2 &&
$2.is$Value()), false); |
13433 }; | 13433 }; |
13434 PropertyMember.prototype._set$4 = function($0, $1, $2, $3) { | 13434 PropertyMember.prototype._set$4 = function($0, $1, $2, $3) { |
13435 return this._set(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()), (
$2 && $2.is$Value()), ($3 && $3.is$Value()), false); | 13435 return this._set(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Node()), ($2 &&
$2.is$Value()), ($3 && $3.is$Value()), false); |
13436 }; | 13436 }; |
13437 PropertyMember.prototype.provideFieldSyntax$0 = function() { | 13437 PropertyMember.prototype.provideFieldSyntax$0 = function() { |
13438 return this.provideFieldSyntax(); | 13438 return this.provideFieldSyntax(); |
13439 }; | 13439 }; |
13440 PropertyMember.prototype.providePropertySyntax$0 = function() { | 13440 PropertyMember.prototype.providePropertySyntax$0 = function() { |
13441 return this.providePropertySyntax(); | 13441 return this.providePropertySyntax(); |
13442 }; | 13442 }; |
13443 PropertyMember.prototype.resolve$1 = function($0) { | 13443 PropertyMember.prototype.resolve$1 = function($0) { |
13444 return this.resolve(($0 && $0.is$lang_Type())); | 13444 return this.resolve(($0 && $0.is$Type())); |
13445 }; | 13445 }; |
13446 // ********** Code for ConcreteMember ************** | 13446 // ********** Code for ConcreteMember ************** |
13447 function ConcreteMember(name, declaringType, baseMember) { | 13447 function ConcreteMember(name, declaringType, baseMember) { |
13448 this.baseMember = baseMember; | 13448 this.baseMember = baseMember; |
13449 // Initializers done | 13449 // Initializers done |
13450 Member.call(this, name, declaringType); | 13450 Member.call(this, name, declaringType); |
13451 this.parameters = []; | 13451 this.parameters = []; |
13452 this.returnType = this.baseMember.get$returnType().resolveTypeParams(declaring
Type); | 13452 this.returnType = this.baseMember.get$returnType().resolveTypeParams(declaring
Type); |
13453 var $list = this.baseMember.get$parameters(); | 13453 var $list = this.baseMember.get$parameters(); |
13454 for (var $i = 0;$i < $list.length; $i++) { | 13454 for (var $i = 0;$i < $list.length; $i++) { |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
13531 } | 13531 } |
13532 ConcreteMember.prototype.get$initDelegate = function() { | 13532 ConcreteMember.prototype.get$initDelegate = function() { |
13533 return this.baseMember.get$initDelegate(); | 13533 return this.baseMember.get$initDelegate(); |
13534 } | 13534 } |
13535 ConcreteMember.prototype.set$initDelegate = function(ctor) { | 13535 ConcreteMember.prototype.set$initDelegate = function(ctor) { |
13536 this.baseMember.set$initDelegate(ctor); | 13536 this.baseMember.set$initDelegate(ctor); |
13537 } | 13537 } |
13538 ConcreteMember.prototype.resolveType = function(node, isRequired) { | 13538 ConcreteMember.prototype.resolveType = function(node, isRequired) { |
13539 var $0; | 13539 var $0; |
13540 var type = this.baseMember.resolveType(node, isRequired); | 13540 var type = this.baseMember.resolveType(node, isRequired); |
13541 return (($0 = type.resolveTypeParams$1(this.declaringType)) && $0.is$lang_Type
()); | 13541 return (($0 = type.resolveTypeParams$1(this.declaringType)) && $0.is$Type()); |
13542 } | 13542 } |
13543 ConcreteMember.prototype.override = function(other) { | 13543 ConcreteMember.prototype.override = function(other) { |
13544 return this.baseMember.override(other); | 13544 return this.baseMember.override(other); |
13545 } | 13545 } |
13546 ConcreteMember.prototype._get = function(context, node, target, isDynamic) { | 13546 ConcreteMember.prototype._get = function(context, node, target, isDynamic) { |
13547 var ret = this.baseMember._get(context, node, target, isDynamic); | 13547 var ret = this.baseMember._get(context, node, target, isDynamic); |
13548 return new Value(this.get$inferredResult(), ret.code, node.span, true); | 13548 return new Value(this.get$inferredResult(), ret.code, node.span, true); |
13549 } | 13549 } |
13550 ConcreteMember.prototype._set = function(context, node, target, value, isDynamic
) { | 13550 ConcreteMember.prototype._set = function(context, node, target, value, isDynamic
) { |
13551 var ret = this.baseMember._set(context, node, target, value, isDynamic); | 13551 var ret = this.baseMember._set(context, node, target, value, isDynamic); |
13552 return new Value(this.returnType, ret.code, node.span, true); | 13552 return new Value(this.returnType, ret.code, node.span, true); |
13553 } | 13553 } |
13554 ConcreteMember.prototype.invoke = function(context, node, target, args, isDynami
c) { | 13554 ConcreteMember.prototype.invoke = function(context, node, target, args, isDynami
c) { |
13555 var ret = this.baseMember.invoke(context, node, target, args, isDynamic); | 13555 var ret = this.baseMember.invoke(context, node, target, args, isDynamic); |
13556 var code = ret.code; | 13556 var code = ret.code; |
13557 if ($notnull_bool(this.get$isConstructor())) { | 13557 if ($notnull_bool(this.get$isConstructor())) { |
13558 code = code.replaceFirst$2(this.declaringType.get$genericType().get$jsname()
, this.declaringType.get$jsname()); | 13558 code = code.replaceFirst$2(this.declaringType.get$genericType().get$jsname()
, this.declaringType.get$jsname()); |
13559 } | 13559 } |
13560 if ((this.baseMember instanceof MethodMember)) { | 13560 if ((this.baseMember instanceof MethodMember)) { |
13561 this.declaringType.genMethod(this); | 13561 this.declaringType.genMethod(this); |
13562 } | 13562 } |
13563 return new Value(this.get$inferredResult(), code, node.span, true); | 13563 return new Value(this.get$inferredResult(), code, node.span, true); |
13564 } | 13564 } |
13565 ConcreteMember.prototype._get$3 = function($0, $1, $2) { | 13565 ConcreteMember.prototype._get$3 = function($0, $1, $2) { |
13566 return this._get(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()), (
$2 && $2.is$Value()), false); | 13566 return this._get(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Node()), ($2 &&
$2.is$Value()), false); |
13567 }; | 13567 }; |
13568 ConcreteMember.prototype._set$4 = function($0, $1, $2, $3) { | 13568 ConcreteMember.prototype._set$4 = function($0, $1, $2, $3) { |
13569 return this._set(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()), (
$2 && $2.is$Value()), ($3 && $3.is$Value()), false); | 13569 return this._set(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Node()), ($2 &&
$2.is$Value()), ($3 && $3.is$Value()), false); |
13570 }; | 13570 }; |
13571 ConcreteMember.prototype.canInvoke$2 = function($0, $1) { | 13571 ConcreteMember.prototype.canInvoke$2 = function($0, $1) { |
13572 return this.canInvoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Arguments(
))); | 13572 return this.canInvoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Arguments(
))); |
13573 }; | 13573 }; |
13574 ConcreteMember.prototype.invoke$4 = function($0, $1, $2, $3) { | 13574 ConcreteMember.prototype.invoke$4 = function($0, $1, $2, $3) { |
13575 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()),
($2 && $2.is$Value()), ($3 && $3.is$Arguments()), false); | 13575 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Node()), ($2
&& $2.is$Value()), ($3 && $3.is$Arguments()), false); |
13576 }; | 13576 }; |
13577 ConcreteMember.prototype.invoke$4$isDynamic = function($0, $1, $2, $3, isDynamic
) { | 13577 ConcreteMember.prototype.invoke$4$isDynamic = function($0, $1, $2, $3, isDynamic
) { |
13578 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()),
($2 && $2.is$Value()), ($3 && $3.is$Arguments()), $assert_bool(isDynamic)); | 13578 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Node()), ($2
&& $2.is$Value()), ($3 && $3.is$Arguments()), $assert_bool(isDynamic)); |
13579 }; | 13579 }; |
13580 ConcreteMember.prototype.invoke$5 = function($0, $1, $2, $3, $4) { | 13580 ConcreteMember.prototype.invoke$5 = function($0, $1, $2, $3, $4) { |
13581 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()),
($2 && $2.is$Value()), ($3 && $3.is$Arguments()), $assert_bool($4)); | 13581 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Node()), ($2
&& $2.is$Value()), ($3 && $3.is$Arguments()), $assert_bool($4)); |
13582 }; | 13582 }; |
13583 ConcreteMember.prototype.provideFieldSyntax$0 = function() { | 13583 ConcreteMember.prototype.provideFieldSyntax$0 = function() { |
13584 return this.provideFieldSyntax(); | 13584 return this.provideFieldSyntax(); |
13585 }; | 13585 }; |
13586 ConcreteMember.prototype.providePropertySyntax$0 = function() { | 13586 ConcreteMember.prototype.providePropertySyntax$0 = function() { |
13587 return this.providePropertySyntax(); | 13587 return this.providePropertySyntax(); |
13588 }; | 13588 }; |
13589 // ********** Code for MethodMember ************** | 13589 // ********** Code for MethodMember ************** |
13590 function MethodMember(name, declaringType, definition) { | 13590 function MethodMember(name, declaringType, definition) { |
13591 this.isStatic = false | 13591 this.isStatic = false |
(...skipping 299 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
13891 return new Value(this.get$inferredResult(), code, node.span, true); | 13891 return new Value(this.get$inferredResult(), code, node.span, true); |
13892 } | 13892 } |
13893 MethodMember.prototype._invokeConstructor = function(context, node, target, args
, argsString) { | 13893 MethodMember.prototype._invokeConstructor = function(context, node, target, args
, argsString) { |
13894 this.declaringType.markUsed(); | 13894 this.declaringType.markUsed(); |
13895 if (target != null) { | 13895 if (target != null) { |
13896 var code = (this.get$constructorName() != '') ? ('' + this.declaringType.get
$jsname() + '.' + this.get$constructorName() + '\$ctor.call(' + argsString + ')'
) : ('' + this.declaringType.get$jsname() + '.call(' + argsString + ')'); | 13896 var code = (this.get$constructorName() != '') ? ('' + this.declaringType.get
$jsname() + '.' + this.get$constructorName() + '\$ctor.call(' + argsString + ')'
) : ('' + this.declaringType.get$jsname() + '.call(' + argsString + ')'); |
13897 return new Value(this.declaringType, code, node.span, true); | 13897 return new Value(this.declaringType, code, node.span, true); |
13898 } | 13898 } |
13899 else { | 13899 else { |
13900 var code = (this.get$constructorName() != '') ? ('new ' + this.declaringType
.get$jsname() + '.' + this.get$constructorName() + '\$ctor(' + argsString + ')')
: ('new ' + this.declaringType.get$jsname() + '(' + argsString + ')'); | 13900 var code = (this.get$constructorName() != '') ? ('new ' + this.declaringType
.get$jsname() + '.' + this.get$constructorName() + '\$ctor(' + argsString + ')')
: ('new ' + this.declaringType.get$jsname() + '(' + argsString + ')'); |
13901 if ($notnull_bool(this.isConst) && (node instanceof lang_NewExpression) && $
notnull_bool(node.get$dynamic().get$isConst())) { | 13901 if ($notnull_bool(this.isConst) && (node instanceof NewExpression) && $notnu
ll_bool(node.get$dynamic().get$isConst())) { |
13902 return this._invokeConstConstructor(node, $assert_String(code), target, ar
gs); | 13902 return this._invokeConstConstructor(node, $assert_String(code), target, ar
gs); |
13903 } | 13903 } |
13904 else { | 13904 else { |
13905 return new Value(this.declaringType, code, node.span, true); | 13905 return new Value(this.declaringType, code, node.span, true); |
13906 } | 13906 } |
13907 } | 13907 } |
13908 } | 13908 } |
13909 MethodMember.prototype._invokeConstConstructor = function(node, code, target, ar
gs) { | 13909 MethodMember.prototype._invokeConstConstructor = function(node, code, target, ar
gs) { |
13910 var $0; | 13910 var $0; |
13911 var fields = new HashMapImplementation(); | 13911 var fields = new HashMapImplementation(); |
(...skipping 346 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
14258 var formal = $list.$index($i); | 14258 var formal = $list.$index($i); |
14259 var param = new Parameter(formal); | 14259 var param = new Parameter(formal); |
14260 param.resolve$2(this, inType); | 14260 param.resolve$2(this, inType); |
14261 this.parameters.add(param); | 14261 this.parameters.add(param); |
14262 } | 14262 } |
14263 if (!$notnull_bool(this.isLambda)) { | 14263 if (!$notnull_bool(this.isLambda)) { |
14264 this.get$library()._addMember(this); | 14264 this.get$library()._addMember(this); |
14265 } | 14265 } |
14266 } | 14266 } |
14267 MethodMember.prototype._get$3 = function($0, $1, $2) { | 14267 MethodMember.prototype._get$3 = function($0, $1, $2) { |
14268 return this._get(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()), (
$2 && $2.is$Value()), false); | 14268 return this._get(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Node()), ($2 &&
$2.is$Value()), false); |
14269 }; | 14269 }; |
14270 MethodMember.prototype._set$4 = function($0, $1, $2, $3) { | 14270 MethodMember.prototype._set$4 = function($0, $1, $2, $3) { |
14271 return this._set(($0 && $0.is$MethodGenerator()), $1, ($2 && $2.is$Value()), (
$3 && $3.is$Value()), false); | 14271 return this._set(($0 && $0.is$MethodGenerator()), $1, ($2 && $2.is$Value()), (
$3 && $3.is$Value()), false); |
14272 }; | 14272 }; |
14273 MethodMember.prototype.canInvoke$2 = function($0, $1) { | 14273 MethodMember.prototype.canInvoke$2 = function($0, $1) { |
14274 return this.canInvoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Arguments(
))); | 14274 return this.canInvoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Arguments(
))); |
14275 }; | 14275 }; |
14276 MethodMember.prototype.invoke$4 = function($0, $1, $2, $3) { | 14276 MethodMember.prototype.invoke$4 = function($0, $1, $2, $3) { |
14277 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()),
($2 && $2.is$Value()), ($3 && $3.is$Arguments()), false); | 14277 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Node()), ($2
&& $2.is$Value()), ($3 && $3.is$Arguments()), false); |
14278 }; | 14278 }; |
14279 MethodMember.prototype.invoke$4$isDynamic = function($0, $1, $2, $3, isDynamic)
{ | 14279 MethodMember.prototype.invoke$4$isDynamic = function($0, $1, $2, $3, isDynamic)
{ |
14280 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()),
($2 && $2.is$Value()), ($3 && $3.is$Arguments()), $assert_bool(isDynamic)); | 14280 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Node()), ($2
&& $2.is$Value()), ($3 && $3.is$Arguments()), $assert_bool(isDynamic)); |
14281 }; | 14281 }; |
14282 MethodMember.prototype.invoke$5 = function($0, $1, $2, $3, $4) { | 14282 MethodMember.prototype.invoke$5 = function($0, $1, $2, $3, $4) { |
14283 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()),
($2 && $2.is$Value()), ($3 && $3.is$Arguments()), $assert_bool($4)); | 14283 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Node()), ($2
&& $2.is$Value()), ($3 && $3.is$Arguments()), $assert_bool($4)); |
14284 }; | 14284 }; |
14285 MethodMember.prototype.namesInOrder$1 = function($0) { | 14285 MethodMember.prototype.namesInOrder$1 = function($0) { |
14286 return this.namesInOrder(($0 && $0.is$Arguments())); | 14286 return this.namesInOrder(($0 && $0.is$Arguments())); |
14287 }; | 14287 }; |
14288 MethodMember.prototype.provideFieldSyntax$0 = function() { | 14288 MethodMember.prototype.provideFieldSyntax$0 = function() { |
14289 return this.provideFieldSyntax(); | 14289 return this.provideFieldSyntax(); |
14290 }; | 14290 }; |
14291 MethodMember.prototype.providePropertySyntax$0 = function() { | 14291 MethodMember.prototype.providePropertySyntax$0 = function() { |
14292 return this.providePropertySyntax(); | 14292 return this.providePropertySyntax(); |
14293 }; | 14293 }; |
14294 MethodMember.prototype.resolve$1 = function($0) { | 14294 MethodMember.prototype.resolve$1 = function($0) { |
14295 return this.resolve(($0 && $0.is$lang_Type())); | 14295 return this.resolve(($0 && $0.is$Type())); |
14296 }; | 14296 }; |
14297 // ********** Code for MemberSet ************** | 14297 // ********** Code for MemberSet ************** |
14298 function MemberSet(member, isVar) { | 14298 function MemberSet(member, isVar) { |
14299 this.name = member.name; | 14299 this.name = member.name; |
14300 this.members = [member]; | 14300 this.members = [member]; |
14301 this.jsname = member.get$jsname(); | 14301 this.jsname = member.get$jsname(); |
14302 this.isVar = isVar; | 14302 this.isVar = isVar; |
14303 // Initializers done | 14303 // Initializers done |
14304 } | 14304 } |
14305 MemberSet.prototype.is$MemberSet = function(){return this;}; | 14305 MemberSet.prototype.is$MemberSet = function(){return this;}; |
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
14418 if ($notnull_bool(this.get$treatAsField())) { | 14418 if ($notnull_bool(this.get$treatAsField())) { |
14419 return new Value(returnValue.type, ('' + target.code + '.' + this.jsname +
' = ' + value.code + ''), node.span, true); | 14419 return new Value(returnValue.type, ('' + target.code + '.' + this.jsname +
' = ' + value.code + ''), node.span, true); |
14420 } | 14420 } |
14421 else { | 14421 else { |
14422 return new Value(returnValue.type, ('' + target.code + '.set\$' + this.jsn
ame + '(' + value.code + ')'), node.span, true); | 14422 return new Value(returnValue.type, ('' + target.code + '.set\$' + this.jsn
ame + '(' + value.code + ')'), node.span, true); |
14423 } | 14423 } |
14424 } | 14424 } |
14425 return returnValue; | 14425 return returnValue; |
14426 } | 14426 } |
14427 MemberSet.prototype.invoke = function(context, node, target, args, isDynamic) { | 14427 MemberSet.prototype.invoke = function(context, node, target, args, isDynamic) { |
14428 var $0; | |
14429 if ($notnull_bool(this.isVar) && !$notnull_bool(this.get$isOperator())) { | 14428 if ($notnull_bool(this.isVar) && !$notnull_bool(this.get$isOperator())) { |
14430 return this.invokeOnVar(context, node, target, args); | 14429 return this.invokeOnVar(context, node, target, args); |
14431 } | 14430 } |
14432 if (this.members.length == 1) { | 14431 if (this.members.length == 1) { |
14433 return (($0 = this.members.$index(0).invoke$5(context, node, target, args, i
sDynamic)) && $0.is$Value()); | 14432 return this.members.$index(0).invoke$5(context, node, target, args, isDynami
c); |
14434 } | 14433 } |
14435 var targets = this.members.filter((function (m) { | 14434 var targets = this.members.filter((function (m) { |
14436 return m.canInvoke$2(context, args); | 14435 return m.canInvoke$2(context, args); |
14437 }) | 14436 }) |
14438 ); | 14437 ); |
14439 if (targets.length == 1) { | 14438 if (targets.length == 1) { |
14440 return (($0 = targets.$index(0).invoke$5(context, node, target, args, isDyna
mic)) && $0.is$Value()); | 14439 return targets.$index(0).invoke$5(context, node, target, args, isDynamic); |
14441 } | 14440 } |
14442 var returnValue = null; | 14441 var returnValue = null; |
14443 for (var $i = targets.iterator$0(); $i.hasNext$0(); ) { | 14442 for (var $i = targets.iterator$0(); $i.hasNext$0(); ) { |
14444 var member = $i.next$0(); | 14443 var member = $i.next$0(); |
14445 var res = member.invoke$4$isDynamic(context, node, target, args, true); | 14444 var res = member.invoke$4$isDynamic(context, node, target, args, true); |
14446 returnValue = this._tryUnion(returnValue, (res && res.is$Value()), node); | 14445 returnValue = this._tryUnion(returnValue, res, node); |
14447 } | 14446 } |
14448 if (returnValue == null) { | 14447 if (returnValue == null) { |
14449 return this._makeError(node, target, 'method'); | 14448 return this._makeError(node, target, 'method'); |
14450 } | 14449 } |
14451 if (returnValue.code == null) { | 14450 if (returnValue.code == null) { |
14452 if (this.name == '\$call') { | 14451 if (this.name == '\$call') { |
14453 return target._varCall(context, args); | 14452 return target._varCall(context, args); |
14454 } | 14453 } |
14455 else if ($notnull_bool(this.get$isOperator())) { | 14454 else if ($notnull_bool(this.get$isOperator())) { |
14456 return target.invokeSpecial(this.name, args, returnValue.type); | 14455 return target.invokeSpecial(this.name, args, returnValue.type); |
14457 } | 14456 } |
14458 else { | 14457 else { |
14459 return this.invokeOnVar(context, node, target, args); | 14458 return this.invokeOnVar(context, node, target, args); |
14460 } | 14459 } |
14461 } | 14460 } |
14462 return returnValue; | 14461 return returnValue; |
14463 } | 14462 } |
14464 MemberSet.prototype.invokeOnVar = function(context, node, target, args) { | 14463 MemberSet.prototype.invokeOnVar = function(context, node, target, args) { |
14465 var member = this.getVarMember(context, node, args); | 14464 var member = this.getVarMember(context, node, args); |
14466 return member.invoke$4(context, node, target, args); | 14465 return member.invoke$4(context, node, target, args); |
14467 } | 14466 } |
14468 MemberSet.prototype._tryUnion = function(x, y, node) { | 14467 MemberSet.prototype._tryUnion = function(x, y, node) { |
14469 if (x == null) return y; | 14468 if (x == null) return y; |
14470 var type = lang_Type.union(x.type, y.type); | 14469 var type = Type.union(x.type, y.type); |
14471 if (x.code == y.code) { | 14470 if (x.code == y.code) { |
14472 if ($notnull_bool($eq(type, x.type))) { | 14471 if ($notnull_bool($eq(type, x.type))) { |
14473 return x; | 14472 return x; |
14474 } | 14473 } |
14475 else if ($notnull_bool(x.get$isConst()) || $notnull_bool(y.get$isConst())) { | 14474 else if ($notnull_bool(x.get$isConst()) || $notnull_bool(y.get$isConst())) { |
14476 world.internalError("unexpected: union of const values "); | 14475 world.internalError("unexpected: union of const values "); |
14477 } | 14476 } |
14478 else { | 14477 else { |
14479 var ret = new Value(type, x.code, node.span, true); | 14478 var ret = new Value(type, x.code, node.span, true); |
14480 ret.isSuper = $notnull_bool(x.isSuper) && $notnull_bool(y.isSuper); | 14479 ret.isSuper = $notnull_bool(x.isSuper) && $notnull_bool(y.isSuper); |
(...skipping 14 matching lines...) Expand all Loading... |
14495 var stub = world.objectType.varStubs.$index(stubName); | 14494 var stub = world.objectType.varStubs.$index(stubName); |
14496 if ($notnull_bool(stub == null)) { | 14495 if ($notnull_bool(stub == null)) { |
14497 var mset = context.findMembers(this.name).members; | 14496 var mset = context.findMembers(this.name).members; |
14498 var targets = mset.filter((function (m) { | 14497 var targets = mset.filter((function (m) { |
14499 return m.canInvoke$2(context, args); | 14498 return m.canInvoke$2(context, args); |
14500 }) | 14499 }) |
14501 ); | 14500 ); |
14502 var returnType = reduce(map((targets && targets.is$Iterable()), (function (t
) { | 14501 var returnType = reduce(map((targets && targets.is$Iterable()), (function (t
) { |
14503 return t.get$returnType(); | 14502 return t.get$returnType(); |
14504 }) | 14503 }) |
14505 ), lang_Type.union); | 14504 ), Type.union); |
14506 stub = new VarMethodSet($assert_String(stubName), targets, args, returnType)
; | 14505 stub = new VarMethodSet($assert_String(stubName), targets, args, returnType)
; |
14507 world.objectType.varStubs.$setindex(stubName, stub); | 14506 world.objectType.varStubs.$setindex(stubName, stub); |
14508 } | 14507 } |
14509 return (stub && stub.is$VarMember()); | 14508 return (stub && stub.is$VarMember()); |
14510 } | 14509 } |
14511 MemberSet.prototype._get$3 = function($0, $1, $2) { | 14510 MemberSet.prototype._get$3 = function($0, $1, $2) { |
14512 return this._get(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()), (
$2 && $2.is$Value()), false); | 14511 return this._get(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Node()), ($2 &&
$2.is$Value()), false); |
14513 }; | 14512 }; |
14514 MemberSet.prototype._set$4 = function($0, $1, $2, $3) { | 14513 MemberSet.prototype._set$4 = function($0, $1, $2, $3) { |
14515 return this._set(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()), (
$2 && $2.is$Value()), ($3 && $3.is$Value()), false); | 14514 return this._set(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Node()), ($2 &&
$2.is$Value()), ($3 && $3.is$Value()), false); |
14516 }; | 14515 }; |
14517 MemberSet.prototype.add$1 = function($0) { | 14516 MemberSet.prototype.add$1 = function($0) { |
14518 return this.add(($0 && $0.is$Member())); | 14517 return this.add(($0 && $0.is$Member())); |
14519 }; | 14518 }; |
14520 MemberSet.prototype.canInvoke$2 = function($0, $1) { | 14519 MemberSet.prototype.canInvoke$2 = function($0, $1) { |
14521 return this.canInvoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Arguments(
))); | 14520 return this.canInvoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Arguments(
))); |
14522 }; | 14521 }; |
14523 MemberSet.prototype.invoke$4 = function($0, $1, $2, $3) { | 14522 MemberSet.prototype.invoke$4 = function($0, $1, $2, $3) { |
14524 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()),
($2 && $2.is$Value()), ($3 && $3.is$Arguments()), false); | 14523 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Node()), ($2
&& $2.is$Value()), ($3 && $3.is$Arguments()), false); |
14525 }; | 14524 }; |
14526 MemberSet.prototype.invoke$4$isDynamic = function($0, $1, $2, $3, isDynamic) { | 14525 MemberSet.prototype.invoke$4$isDynamic = function($0, $1, $2, $3, isDynamic) { |
14527 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()),
($2 && $2.is$Value()), ($3 && $3.is$Arguments()), $assert_bool(isDynamic)); | 14526 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Node()), ($2
&& $2.is$Value()), ($3 && $3.is$Arguments()), $assert_bool(isDynamic)); |
14528 }; | 14527 }; |
14529 MemberSet.prototype.invoke$5 = function($0, $1, $2, $3, $4) { | 14528 MemberSet.prototype.invoke$5 = function($0, $1, $2, $3, $4) { |
14530 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()),
($2 && $2.is$Value()), ($3 && $3.is$Arguments()), $assert_bool($4)); | 14529 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Node()), ($2
&& $2.is$Value()), ($3 && $3.is$Arguments()), $assert_bool($4)); |
14531 }; | 14530 }; |
14532 MemberSet.prototype.toString$0 = function() { | 14531 MemberSet.prototype.toString$0 = function() { |
14533 return this.toString(); | 14532 return this.toString(); |
14534 }; | 14533 }; |
14535 // ********** Code for FactoryMap ************** | 14534 // ********** Code for FactoryMap ************** |
14536 function FactoryMap() { | 14535 function FactoryMap() { |
14537 this.factories = $map([]); | 14536 this.factories = $map([]); |
14538 // Initializers done | 14537 // Initializers done |
14539 } | 14538 } |
14540 FactoryMap.prototype.getFactoriesFor = function(typeName) { | 14539 FactoryMap.prototype.getFactoriesFor = function(typeName) { |
(...skipping 16 matching lines...) Expand all Loading... |
14557 constructors.forEach((function (_, member) { | 14556 constructors.forEach((function (_, member) { |
14558 f(member); | 14557 f(member); |
14559 }) | 14558 }) |
14560 ); | 14559 ); |
14561 }) | 14560 }) |
14562 ); | 14561 ); |
14563 } | 14562 } |
14564 FactoryMap.prototype.getFactory$2 = function($0, $1) { | 14563 FactoryMap.prototype.getFactory$2 = function($0, $1) { |
14565 return this.getFactory($assert_String($0), $assert_String($1)); | 14564 return this.getFactory($assert_String($0), $assert_String($1)); |
14566 }; | 14565 }; |
14567 // ********** Code for lang_Token ************** | 14566 // ********** Code for Token ************** |
14568 function lang_Token(kind, source, start, end) { | 14567 function Token(kind, source, start, end) { |
14569 this.kind = kind; | 14568 this.kind = kind; |
14570 this.source = source; | 14569 this.source = source; |
14571 this.start = start; | 14570 this.start = start; |
14572 this.end = end; | 14571 this.end = end; |
14573 // Initializers done | 14572 // Initializers done |
14574 } | 14573 } |
14575 lang_Token.prototype.get$source = function() { return this.source; }; | 14574 Token.prototype.get$source = function() { return this.source; }; |
14576 lang_Token.prototype.get$text = function() { | 14575 Token.prototype.get$text = function() { |
14577 return this.source.get$text().substring(this.start, this.end); | 14576 return this.source.get$text().substring(this.start, this.end); |
14578 } | 14577 } |
14579 lang_Token.prototype.toString = function() { | 14578 Token.prototype.toString = function() { |
14580 var kindText = TokenKind.kindToString(this.kind); | 14579 var kindText = TokenKind.kindToString(this.kind); |
14581 var actualText = this.get$text(); | 14580 var actualText = this.get$text(); |
14582 if ($notnull_bool($ne(kindText, actualText))) { | 14581 if ($notnull_bool($ne(kindText, actualText))) { |
14583 if (actualText.length > 10) { | 14582 if (actualText.length > 10) { |
14584 actualText = actualText.substring$2(0, 8) + '...'; | 14583 actualText = actualText.substring$2(0, 8) + '...'; |
14585 } | 14584 } |
14586 return ('' + kindText + '(' + actualText + ')'); | 14585 return ('' + kindText + '(' + actualText + ')'); |
14587 } | 14586 } |
14588 else { | 14587 else { |
14589 return $assert_String(kindText); | 14588 return $assert_String(kindText); |
14590 } | 14589 } |
14591 } | 14590 } |
14592 lang_Token.prototype.get$span = function() { | 14591 Token.prototype.get$span = function() { |
14593 return new SourceSpan(this.source, this.start, this.end); | 14592 return new SourceSpan(this.source, this.start, this.end); |
14594 } | 14593 } |
14595 lang_Token.prototype.toString$0 = function() { | 14594 Token.prototype.toString$0 = function() { |
14596 return this.toString(); | 14595 return this.toString(); |
14597 }; | 14596 }; |
14598 // ********** Code for SourceFile ************** | 14597 // ********** Code for SourceFile ************** |
14599 function SourceFile(filename, _text) { | 14598 function SourceFile(filename, _text) { |
14600 this.filename = filename; | 14599 this.filename = filename; |
14601 this._text = _text; | 14600 this._text = _text; |
14602 // Initializers done | 14601 // Initializers done |
14603 } | 14602 } |
14604 SourceFile.prototype.is$SourceFile = function(){return this;}; | 14603 SourceFile.prototype.is$SourceFile = function(){return this;}; |
14605 SourceFile.prototype.is$Comparable = function(){return this;}; | 14604 SourceFile.prototype.is$Comparable = function(){return this;}; |
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
14751 } | 14750 } |
14752 else { | 14751 else { |
14753 return false; | 14752 return false; |
14754 } | 14753 } |
14755 } | 14754 } |
14756 else { | 14755 else { |
14757 return false; | 14756 return false; |
14758 } | 14757 } |
14759 } | 14758 } |
14760 TokenizerBase.prototype._finishToken = function(kind) { | 14759 TokenizerBase.prototype._finishToken = function(kind) { |
14761 return new lang_Token(kind, this._source, this._startIndex, this._lang_index); | 14760 return new Token(kind, this._source, this._startIndex, this._lang_index); |
14762 } | 14761 } |
14763 TokenizerBase.prototype._errorToken = function() { | 14762 TokenizerBase.prototype._errorToken = function() { |
14764 return this._finishToken(65/*TokenKind.ERROR*/); | 14763 return this._finishToken(65/*TokenKind.ERROR*/); |
14765 } | 14764 } |
14766 TokenizerBase.prototype.finishWhitespace = function() { | 14765 TokenizerBase.prototype.finishWhitespace = function() { |
14767 while (this._lang_index < this._text.length) { | 14766 while (this._lang_index < this._text.length) { |
14768 if (!$notnull_bool(TokenizerHelpers.isWhitespace(this._text.charCodeAt(this.
_lang_index++)))) { | 14767 if (!$notnull_bool(TokenizerHelpers.isWhitespace(this._text.charCodeAt(this.
_lang_index++)))) { |
14769 this._lang_index--; | 14768 this._lang_index--; |
14770 if ($notnull_bool(this._skipWhitespace)) { | 14769 if ($notnull_bool(this._skipWhitespace)) { |
14771 return this.next(); | 14770 return this.next(); |
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
15012 else { | 15011 else { |
15013 return false; | 15012 return false; |
15014 } | 15013 } |
15015 } | 15014 } |
15016 | 15015 |
15017 default: | 15016 default: |
15018 | 15017 |
15019 return true; | 15018 return true; |
15020 | 15019 |
15021 } | 15020 } |
15022 var n = lang_Parser.parseHex(hex); | 15021 var n = Parser.parseHex(hex); |
15023 return n < 0xD800 || n > 0xDFFF && n <= 0x10FFFF; | 15022 return n < 0xD800 || n > 0xDFFF && n <= 0x10FFFF; |
15024 } | 15023 } |
15025 TokenizerBase.prototype.finishDot = function() { | 15024 TokenizerBase.prototype.finishDot = function() { |
15026 if ($notnull_bool(TokenizerHelpers.isDigit(this._peekChar()))) { | 15025 if ($notnull_bool(TokenizerHelpers.isDigit(this._peekChar()))) { |
15027 this.eatDigits(); | 15026 this.eatDigits(); |
15028 return this.finishNumberExtra(62/*TokenKind.DOUBLE*/); | 15027 return this.finishNumberExtra(62/*TokenKind.DOUBLE*/); |
15029 } | 15028 } |
15030 else { | 15029 else { |
15031 return this._finishToken(14/*TokenKind.DOT*/); | 15030 return this._finishToken(14/*TokenKind.DOT*/); |
15032 } | 15031 } |
(...skipping 1365 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
16398 | 16397 |
16399 } | 16398 } |
16400 } | 16399 } |
16401 TokenKind.kindFromAssign = function(kind) { | 16400 TokenKind.kindFromAssign = function(kind) { |
16402 if (kind == 20/*TokenKind.ASSIGN*/) return 0; | 16401 if (kind == 20/*TokenKind.ASSIGN*/) return 0; |
16403 if (kind > 20/*TokenKind.ASSIGN*/ && kind <= 32/*TokenKind.ASSIGN_MOD*/) { | 16402 if (kind > 20/*TokenKind.ASSIGN*/ && kind <= 32/*TokenKind.ASSIGN_MOD*/) { |
16404 return kind + (15)/*(ADD - ASSIGN_ADD)*/; | 16403 return kind + (15)/*(ADD - ASSIGN_ADD)*/; |
16405 } | 16404 } |
16406 return -1; | 16405 return -1; |
16407 } | 16406 } |
16408 // ********** Code for lang_Parser ************** | 16407 // ********** Code for Parser ************** |
16409 function lang_Parser(source, diet, throwOnIncomplete, optionalSemicolons, startO
ffset) { | 16408 function Parser(source, diet, throwOnIncomplete, optionalSemicolons, startOffset
) { |
16410 this.source = source; | 16409 this.source = source; |
16411 this.diet = diet; | 16410 this.diet = diet; |
16412 this.throwOnIncomplete = throwOnIncomplete; | 16411 this.throwOnIncomplete = throwOnIncomplete; |
16413 this.optionalSemicolons = optionalSemicolons; | 16412 this.optionalSemicolons = optionalSemicolons; |
16414 // Initializers done | 16413 // Initializers done |
16415 this.tokenizer = new Tokenizer(this.source, true, startOffset); | 16414 this.tokenizer = new Tokenizer(this.source, true, startOffset); |
16416 this._peekToken = this.tokenizer.next(); | 16415 this._peekToken = this.tokenizer.next(); |
16417 this._previousToken = null; | 16416 this._previousToken = null; |
16418 this._inInitializers = false; | 16417 this._inInitializers = false; |
16419 } | 16418 } |
16420 lang_Parser.prototype.get$source = function() { return this.source; }; | 16419 Parser.prototype.get$source = function() { return this.source; }; |
16421 lang_Parser.prototype.isPrematureEndOfFile = function() { | 16420 Parser.prototype.isPrematureEndOfFile = function() { |
16422 if ($notnull_bool(this.throwOnIncomplete) && $notnull_bool(this._maybeEat(1/*T
okenKind.END_OF_FILE*/)) || $notnull_bool(this._maybeEat(68/*TokenKind.INCOMPLET
E_MULTILINE_STRING_DQ*/)) || $notnull_bool(this._maybeEat(69/*TokenKind.INCOMPLE
TE_MULTILINE_STRING_SQ*/))) { | 16421 if ($notnull_bool(this.throwOnIncomplete) && $notnull_bool(this._maybeEat(1/*T
okenKind.END_OF_FILE*/)) || $notnull_bool(this._maybeEat(68/*TokenKind.INCOMPLET
E_MULTILINE_STRING_DQ*/)) || $notnull_bool(this._maybeEat(69/*TokenKind.INCOMPLE
TE_MULTILINE_STRING_SQ*/))) { |
16423 $throw(new IncompleteSourceException(this._previousToken)); | 16422 $throw(new IncompleteSourceException(this._previousToken)); |
16424 } | 16423 } |
16425 else if ($notnull_bool(this._maybeEat(1/*TokenKind.END_OF_FILE*/))) { | 16424 else if ($notnull_bool(this._maybeEat(1/*TokenKind.END_OF_FILE*/))) { |
16426 this._lang_error('unexpected end of file', this._peekToken.get$span()); | 16425 this._lang_error('unexpected end of file', this._peekToken.get$span()); |
16427 return true; | 16426 return true; |
16428 } | 16427 } |
16429 else { | 16428 else { |
16430 return false; | 16429 return false; |
16431 } | 16430 } |
16432 } | 16431 } |
16433 lang_Parser.prototype._peek = function() { | 16432 Parser.prototype._peek = function() { |
16434 return this._peekToken.kind; | 16433 return this._peekToken.kind; |
16435 } | 16434 } |
16436 lang_Parser.prototype._lang_next = function() { | 16435 Parser.prototype._lang_next = function() { |
16437 this._previousToken = this._peekToken; | 16436 this._previousToken = this._peekToken; |
16438 this._peekToken = this.tokenizer.next(); | 16437 this._peekToken = this.tokenizer.next(); |
16439 return this._previousToken; | 16438 return this._previousToken; |
16440 } | 16439 } |
16441 lang_Parser.prototype._peekKind = function(kind) { | 16440 Parser.prototype._peekKind = function(kind) { |
16442 return this._peekToken.kind == kind; | 16441 return this._peekToken.kind == kind; |
16443 } | 16442 } |
16444 lang_Parser.prototype._peekIdentifier = function() { | 16443 Parser.prototype._peekIdentifier = function() { |
16445 return TokenKind.isIdentifier(this._peekToken.kind); | 16444 return TokenKind.isIdentifier(this._peekToken.kind); |
16446 } | 16445 } |
16447 lang_Parser.prototype._maybeEat = function(kind) { | 16446 Parser.prototype._maybeEat = function(kind) { |
16448 if (this._peekToken.kind == kind) { | 16447 if (this._peekToken.kind == kind) { |
16449 this._previousToken = this._peekToken; | 16448 this._previousToken = this._peekToken; |
16450 this._peekToken = this.tokenizer.next(); | 16449 this._peekToken = this.tokenizer.next(); |
16451 return true; | 16450 return true; |
16452 } | 16451 } |
16453 else { | 16452 else { |
16454 return false; | 16453 return false; |
16455 } | 16454 } |
16456 } | 16455 } |
16457 lang_Parser.prototype._eat = function(kind) { | 16456 Parser.prototype._eat = function(kind) { |
16458 if (!$notnull_bool(this._maybeEat(kind))) { | 16457 if (!$notnull_bool(this._maybeEat(kind))) { |
16459 this._errorExpected(TokenKind.kindToString(kind)); | 16458 this._errorExpected(TokenKind.kindToString(kind)); |
16460 } | 16459 } |
16461 } | 16460 } |
16462 lang_Parser.prototype._eatSemicolon = function() { | 16461 Parser.prototype._eatSemicolon = function() { |
16463 if ($notnull_bool(this.optionalSemicolons) && $notnull_bool(this._peekKind(1/*
TokenKind.END_OF_FILE*/))) return; | 16462 if ($notnull_bool(this.optionalSemicolons) && $notnull_bool(this._peekKind(1/*
TokenKind.END_OF_FILE*/))) return; |
16464 this._eat(10/*TokenKind.SEMICOLON*/); | 16463 this._eat(10/*TokenKind.SEMICOLON*/); |
16465 } | 16464 } |
16466 lang_Parser.prototype._errorExpected = function(expected) { | 16465 Parser.prototype._errorExpected = function(expected) { |
16467 if ($notnull_bool(this.throwOnIncomplete)) this.isPrematureEndOfFile(); | 16466 if ($notnull_bool(this.throwOnIncomplete)) this.isPrematureEndOfFile(); |
16468 var tok = this._lang_next(); | 16467 var tok = this._lang_next(); |
16469 var message = ('expected ' + expected + ', but found ' + tok + ''); | 16468 var message = ('expected ' + expected + ', but found ' + tok + ''); |
16470 this._lang_error($assert_String(message), tok.get$span()); | 16469 this._lang_error($assert_String(message), tok.get$span()); |
16471 } | 16470 } |
16472 lang_Parser.prototype._lang_error = function(message, location) { | 16471 Parser.prototype._lang_error = function(message, location) { |
16473 if (location == null) { | 16472 if (location == null) { |
16474 location = this._peekToken.get$span(); | 16473 location = this._peekToken.get$span(); |
16475 } | 16474 } |
16476 world.fatal(message, location); | 16475 world.fatal(message, location); |
16477 } | 16476 } |
16478 lang_Parser.prototype._skipBlock = function() { | 16477 Parser.prototype._skipBlock = function() { |
16479 var depth = 1; | 16478 var depth = 1; |
16480 this._eat(6/*TokenKind.LBRACE*/); | 16479 this._eat(6/*TokenKind.LBRACE*/); |
16481 while (true) { | 16480 while (true) { |
16482 var tok = this._lang_next(); | 16481 var tok = this._lang_next(); |
16483 if ($notnull_bool($eq(tok.kind, 6/*TokenKind.LBRACE*/))) { | 16482 if ($notnull_bool($eq(tok.kind, 6/*TokenKind.LBRACE*/))) { |
16484 depth += 1; | 16483 depth += 1; |
16485 } | 16484 } |
16486 else if ($notnull_bool($eq(tok.kind, 7/*TokenKind.RBRACE*/))) { | 16485 else if ($notnull_bool($eq(tok.kind, 7/*TokenKind.RBRACE*/))) { |
16487 depth -= 1; | 16486 depth -= 1; |
16488 if (depth == 0) return; | 16487 if (depth == 0) return; |
16489 } | 16488 } |
16490 else if ($notnull_bool($eq(tok.kind, 1/*TokenKind.END_OF_FILE*/))) { | 16489 else if ($notnull_bool($eq(tok.kind, 1/*TokenKind.END_OF_FILE*/))) { |
16491 this._lang_error('unexpected end of file during diet parse', tok.get$span(
)); | 16490 this._lang_error('unexpected end of file during diet parse', tok.get$span(
)); |
16492 return; | 16491 return; |
16493 } | 16492 } |
16494 } | 16493 } |
16495 } | 16494 } |
16496 lang_Parser.prototype._makeSpan = function(start) { | 16495 Parser.prototype._makeSpan = function(start) { |
16497 return new SourceSpan(this.source, start, this._previousToken.end); | 16496 return new SourceSpan(this.source, start, this._previousToken.end); |
16498 } | 16497 } |
16499 lang_Parser.prototype.compilationUnit = function() { | 16498 Parser.prototype.compilationUnit = function() { |
16500 var ret = []; | 16499 var ret = []; |
16501 this._maybeEat(13/*TokenKind.HASHBANG*/); | 16500 this._maybeEat(13/*TokenKind.HASHBANG*/); |
16502 while ($notnull_bool(this._peekKind(12/*TokenKind.HASH*/))) { | 16501 while ($notnull_bool(this._peekKind(12/*TokenKind.HASH*/))) { |
16503 ret.add$1(this.directive()); | 16502 ret.add$1(this.directive()); |
16504 } | 16503 } |
16505 while (!$notnull_bool(this._maybeEat(1/*TokenKind.END_OF_FILE*/))) { | 16504 while (!$notnull_bool(this._maybeEat(1/*TokenKind.END_OF_FILE*/))) { |
16506 ret.add$1(this.topLevelDefinition()); | 16505 ret.add$1(this.topLevelDefinition()); |
16507 } | 16506 } |
16508 return (ret && ret.is$List$Definition()); | 16507 return (ret && ret.is$List$Definition()); |
16509 } | 16508 } |
16510 lang_Parser.prototype.directive = function() { | 16509 Parser.prototype.directive = function() { |
16511 var start = this._peekToken.start; | 16510 var start = this._peekToken.start; |
16512 this._eat(12/*TokenKind.HASH*/); | 16511 this._eat(12/*TokenKind.HASH*/); |
16513 var name = this.identifier(); | 16512 var name = this.identifier(); |
16514 var args = this.arguments(); | 16513 var args = this.arguments(); |
16515 this._eatSemicolon(); | 16514 this._eatSemicolon(); |
16516 return new DirectiveDefinition(name, args, this._makeSpan(start)); | 16515 return new DirectiveDefinition(name, args, this._makeSpan(start)); |
16517 } | 16516 } |
16518 lang_Parser.prototype.topLevelDefinition = function() { | 16517 Parser.prototype.topLevelDefinition = function() { |
16519 switch (this._peek()) { | 16518 switch (this._peek()) { |
16520 case 73/*TokenKind.CLASS*/: | 16519 case 73/*TokenKind.CLASS*/: |
16521 | 16520 |
16522 return this.classDefinition(73/*TokenKind.CLASS*/); | 16521 return this.classDefinition(73/*TokenKind.CLASS*/); |
16523 | 16522 |
16524 case 79/*TokenKind.INTERFACE*/: | 16523 case 79/*TokenKind.INTERFACE*/: |
16525 | 16524 |
16526 return this.classDefinition(79/*TokenKind.INTERFACE*/); | 16525 return this.classDefinition(79/*TokenKind.INTERFACE*/); |
16527 | 16526 |
16528 case 87/*TokenKind.TYPEDEF*/: | 16527 case 87/*TokenKind.TYPEDEF*/: |
16529 | 16528 |
16530 return this.functionTypeAlias(); | 16529 return this.functionTypeAlias(); |
16531 | 16530 |
16532 default: | 16531 default: |
16533 | 16532 |
16534 return this.declaration(true); | 16533 return this.declaration(true); |
16535 | 16534 |
16536 } | 16535 } |
16537 } | 16536 } |
16538 lang_Parser.prototype.classDefinition = function(kind) { | 16537 Parser.prototype.classDefinition = function(kind) { |
16539 var start = this._peekToken.start; | 16538 var start = this._peekToken.start; |
16540 this._eat(kind); | 16539 this._eat(kind); |
16541 var name = this.identifier(); | 16540 var name = this.identifier(); |
16542 var typeParams = null; | 16541 var typeParams = null; |
16543 if ($notnull_bool(this._peekKind(52/*TokenKind.LT*/))) { | 16542 if ($notnull_bool(this._peekKind(52/*TokenKind.LT*/))) { |
16544 typeParams = this.typeParameters(); | 16543 typeParams = this.typeParameters(); |
16545 } | 16544 } |
16546 var _extends = null; | 16545 var _extends = null; |
16547 if ($notnull_bool(this._maybeEat(74/*TokenKind.EXTENDS*/))) { | 16546 if ($notnull_bool(this._maybeEat(74/*TokenKind.EXTENDS*/))) { |
16548 _extends = this.typeList(); | 16547 _extends = this.typeList(); |
(...skipping 15 matching lines...) Expand all Loading... |
16564 while (!$notnull_bool(this._maybeEat(7/*TokenKind.RBRACE*/))) { | 16563 while (!$notnull_bool(this._maybeEat(7/*TokenKind.RBRACE*/))) { |
16565 if ($notnull_bool(this.isPrematureEndOfFile())) break; | 16564 if ($notnull_bool(this.isPrematureEndOfFile())) break; |
16566 body.add$1(this.declaration(true)); | 16565 body.add$1(this.declaration(true)); |
16567 } | 16566 } |
16568 } | 16567 } |
16569 else { | 16568 else { |
16570 this._errorExpected('block starting with "{" or ";"'); | 16569 this._errorExpected('block starting with "{" or ";"'); |
16571 } | 16570 } |
16572 return new TypeDefinition(kind == 73/*TokenKind.CLASS*/, name, typeParams, _ex
tends, _implements, _native, _factory, body, this._makeSpan(start)); | 16571 return new TypeDefinition(kind == 73/*TokenKind.CLASS*/, name, typeParams, _ex
tends, _implements, _native, _factory, body, this._makeSpan(start)); |
16573 } | 16572 } |
16574 lang_Parser.prototype.functionTypeAlias = function() { | 16573 Parser.prototype.functionTypeAlias = function() { |
16575 var start = this._peekToken.start; | 16574 var start = this._peekToken.start; |
16576 this._eat(87/*TokenKind.TYPEDEF*/); | 16575 this._eat(87/*TokenKind.TYPEDEF*/); |
16577 var di = this.declaredIdentifier(false); | 16576 var di = this.declaredIdentifier(false); |
16578 var typeParams = null; | 16577 var typeParams = null; |
16579 if ($notnull_bool(this._peekKind(52/*TokenKind.LT*/))) { | 16578 if ($notnull_bool(this._peekKind(52/*TokenKind.LT*/))) { |
16580 typeParams = this.typeParameters(); | 16579 typeParams = this.typeParameters(); |
16581 } | 16580 } |
16582 var formals = this.formalParameterList(); | 16581 var formals = this.formalParameterList(); |
16583 this._eatSemicolon(); | 16582 this._eatSemicolon(); |
16584 var func = new FunctionDefinition(null, di.type, di.get$name(), formals, null,
null, this._makeSpan(start)); | 16583 var func = new FunctionDefinition(null, di.type, di.get$name(), formals, null,
null, this._makeSpan(start)); |
16585 return new FunctionTypeDefinition(func, typeParams, this._makeSpan(start)); | 16584 return new FunctionTypeDefinition(func, typeParams, this._makeSpan(start)); |
16586 } | 16585 } |
16587 lang_Parser.prototype.initializers = function() { | 16586 Parser.prototype.initializers = function() { |
16588 this._inInitializers = true; | 16587 this._inInitializers = true; |
16589 var ret = []; | 16588 var ret = []; |
16590 do { | 16589 do { |
16591 ret.add$1(this.expression()); | 16590 ret.add$1(this.expression()); |
16592 } | 16591 } |
16593 while ($notnull_bool(this._maybeEat(11/*TokenKind.COMMA*/))) | 16592 while ($notnull_bool(this._maybeEat(11/*TokenKind.COMMA*/))) |
16594 this._inInitializers = false; | 16593 this._inInitializers = false; |
16595 return ret; | 16594 return ret; |
16596 } | 16595 } |
16597 lang_Parser.prototype.functionBody = function(inExpression) { | 16596 Parser.prototype.functionBody = function(inExpression) { |
16598 var start = this._peekToken.start; | 16597 var start = this._peekToken.start; |
16599 if ($notnull_bool(this._maybeEat(9/*TokenKind.ARROW*/))) { | 16598 if ($notnull_bool(this._maybeEat(9/*TokenKind.ARROW*/))) { |
16600 var expr = this.expression(); | 16599 var expr = this.expression(); |
16601 if (!$notnull_bool(inExpression)) { | 16600 if (!$notnull_bool(inExpression)) { |
16602 this._eatSemicolon(); | 16601 this._eatSemicolon(); |
16603 } | 16602 } |
16604 return new ReturnStatement(expr, this._makeSpan(start)); | 16603 return new ReturnStatement(expr, this._makeSpan(start)); |
16605 } | 16604 } |
16606 else if ($notnull_bool(this._peekKind(6/*TokenKind.LBRACE*/))) { | 16605 else if ($notnull_bool(this._peekKind(6/*TokenKind.LBRACE*/))) { |
16607 if ($notnull_bool(this.diet)) { | 16606 if ($notnull_bool(this.diet)) { |
(...skipping 14 matching lines...) Expand all Loading... |
16622 this._eatSemicolon(); | 16621 this._eatSemicolon(); |
16623 return new NativeStatement(nativeBody, this._makeSpan(start)); | 16622 return new NativeStatement(nativeBody, this._makeSpan(start)); |
16624 } | 16623 } |
16625 else { | 16624 else { |
16626 return this.functionBody(inExpression); | 16625 return this.functionBody(inExpression); |
16627 } | 16626 } |
16628 } | 16627 } |
16629 } | 16628 } |
16630 this._lang_error('Expected function body (neither { nor => found)'); | 16629 this._lang_error('Expected function body (neither { nor => found)'); |
16631 } | 16630 } |
16632 lang_Parser.prototype.finishField = function(start, modifiers, type, name, value
) { | 16631 Parser.prototype.finishField = function(start, modifiers, type, name, value) { |
16633 var names = [name]; | 16632 var names = [name]; |
16634 var values = [value]; | 16633 var values = [value]; |
16635 while ($notnull_bool(this._maybeEat(11/*TokenKind.COMMA*/))) { | 16634 while ($notnull_bool(this._maybeEat(11/*TokenKind.COMMA*/))) { |
16636 names.add$1(this.identifier()); | 16635 names.add$1(this.identifier()); |
16637 if ($notnull_bool(this._maybeEat(20/*TokenKind.ASSIGN*/))) { | 16636 if ($notnull_bool(this._maybeEat(20/*TokenKind.ASSIGN*/))) { |
16638 values.add$1(this.expression()); | 16637 values.add$1(this.expression()); |
16639 } | 16638 } |
16640 else { | 16639 else { |
16641 values.add$1(); | 16640 values.add$1(); |
16642 } | 16641 } |
16643 } | 16642 } |
16644 this._eatSemicolon(); | 16643 this._eatSemicolon(); |
16645 return new VariableDefinition(modifiers, type, names, values, this._makeSpan($
assert_num(start))); | 16644 return new VariableDefinition(modifiers, type, names, values, this._makeSpan($
assert_num(start))); |
16646 } | 16645 } |
16647 lang_Parser.prototype.finishDefinition = function(start, modifiers, di) { | 16646 Parser.prototype.finishDefinition = function(start, modifiers, di) { |
16648 var $0; | 16647 var $0; |
16649 switch (this._peek()) { | 16648 switch (this._peek()) { |
16650 case 2/*TokenKind.LPAREN*/: | 16649 case 2/*TokenKind.LPAREN*/: |
16651 | 16650 |
16652 var formals = this.formalParameterList(); | 16651 var formals = this.formalParameterList(); |
16653 var inits = null; | 16652 var inits = null; |
16654 if ($notnull_bool(this._maybeEat(8/*TokenKind.COLON*/))) { | 16653 if ($notnull_bool(this._maybeEat(8/*TokenKind.COLON*/))) { |
16655 inits = this.initializers(); | 16654 inits = this.initializers(); |
16656 } | 16655 } |
16657 var body = this.functionBody(false); | 16656 var body = this.functionBody(false); |
(...skipping 13 matching lines...) Expand all Loading... |
16671 | 16670 |
16672 return this.finishField(start, modifiers, di.type, di.get$name(), null); | 16671 return this.finishField(start, modifiers, di.type, di.get$name(), null); |
16673 | 16672 |
16674 default: | 16673 default: |
16675 | 16674 |
16676 this._errorExpected('declaration'); | 16675 this._errorExpected('declaration'); |
16677 return null; | 16676 return null; |
16678 | 16677 |
16679 } | 16678 } |
16680 } | 16679 } |
16681 lang_Parser.prototype.declaration = function(includeOperators) { | 16680 Parser.prototype.declaration = function(includeOperators) { |
16682 var start = this._peekToken.start; | 16681 var start = this._peekToken.start; |
16683 if ($notnull_bool(this._peekKind(75/*TokenKind.FACTORY*/))) { | 16682 if ($notnull_bool(this._peekKind(75/*TokenKind.FACTORY*/))) { |
16684 return this.factoryConstructorDeclaration(); | 16683 return this.factoryConstructorDeclaration(); |
16685 } | 16684 } |
16686 var modifiers = this._readModifiers(); | 16685 var modifiers = this._readModifiers(); |
16687 return this.finishDefinition(start, modifiers, this.declaredIdentifier(include
Operators)); | 16686 return this.finishDefinition(start, modifiers, this.declaredIdentifier(include
Operators)); |
16688 } | 16687 } |
16689 lang_Parser.prototype.factoryConstructorDeclaration = function() { | 16688 Parser.prototype.factoryConstructorDeclaration = function() { |
16690 var start = this._peekToken.start; | 16689 var start = this._peekToken.start; |
16691 var factoryToken = this._lang_next(); | 16690 var factoryToken = this._lang_next(); |
16692 var names = [this.identifier()]; | 16691 var names = [this.identifier()]; |
16693 while ($notnull_bool(this._maybeEat(14/*TokenKind.DOT*/))) { | 16692 while ($notnull_bool(this._maybeEat(14/*TokenKind.DOT*/))) { |
16694 names.add$1(this.identifier()); | 16693 names.add$1(this.identifier()); |
16695 } | 16694 } |
16696 var typeParams = null; | 16695 var typeParams = null; |
16697 if ($notnull_bool(this._peekKind(52/*TokenKind.LT*/))) { | 16696 if ($notnull_bool(this._peekKind(52/*TokenKind.LT*/))) { |
16698 typeParams = this.typeParameters(); | 16697 typeParams = this.typeParameters(); |
16699 } | 16698 } |
16700 var name = null; | 16699 var name = null; |
16701 var type = null; | 16700 var type = null; |
16702 if ($notnull_bool(this._maybeEat(14/*TokenKind.DOT*/))) { | 16701 if ($notnull_bool(this._maybeEat(14/*TokenKind.DOT*/))) { |
16703 name = this.identifier(); | 16702 name = this.identifier(); |
16704 } | 16703 } |
16705 else if ($notnull_bool(typeParams == null)) { | 16704 else if ($notnull_bool(typeParams == null)) { |
16706 if (names.length > 1) { | 16705 if (names.length > 1) { |
16707 name = names.removeLast$0(); | 16706 name = names.removeLast$0(); |
16708 } | 16707 } |
16709 else { | 16708 else { |
16710 name = new lang_Identifier('', names.$index(0).get$span()); | 16709 name = new Identifier('', names.$index(0).get$span()); |
16711 } | 16710 } |
16712 } | 16711 } |
16713 else { | 16712 else { |
16714 name = new lang_Identifier('', names.$index(0).get$span()); | 16713 name = new Identifier('', names.$index(0).get$span()); |
16715 } | 16714 } |
16716 if (names.length > 1) { | 16715 if (names.length > 1) { |
16717 this._lang_error('unsupported qualified name for factory', names.$index(0).g
et$span()); | 16716 this._lang_error('unsupported qualified name for factory', names.$index(0).g
et$span()); |
16718 } | 16717 } |
16719 type = new NameTypeReference(false, names.$index(0), null, names.$index(0).get
$span()); | 16718 type = new NameTypeReference(false, names.$index(0), null, names.$index(0).get
$span()); |
16720 var di = new DeclaredIdentifier(type, name, this._makeSpan(start)); | 16719 var di = new DeclaredIdentifier(type, name, this._makeSpan(start)); |
16721 return this.finishDefinition(start, [factoryToken], di); | 16720 return this.finishDefinition(start, [factoryToken], di); |
16722 } | 16721 } |
16723 lang_Parser.prototype.statement = function() { | 16722 Parser.prototype.statement = function() { |
16724 var $0; | 16723 var $0; |
16725 switch (this._peek()) { | 16724 switch (this._peek()) { |
16726 case 88/*TokenKind.BREAK*/: | 16725 case 88/*TokenKind.BREAK*/: |
16727 | 16726 |
16728 return (($0 = this.breakStatement()) && $0.is$lang_Statement()); | 16727 return (($0 = this.breakStatement()) && $0.is$Statement()); |
16729 | 16728 |
16730 case 92/*TokenKind.CONTINUE*/: | 16729 case 92/*TokenKind.CONTINUE*/: |
16731 | 16730 |
16732 return (($0 = this.continueStatement()) && $0.is$lang_Statement()); | 16731 return (($0 = this.continueStatement()) && $0.is$Statement()); |
16733 | 16732 |
16734 case 105/*TokenKind.RETURN*/: | 16733 case 105/*TokenKind.RETURN*/: |
16735 | 16734 |
16736 return (($0 = this.returnStatement()) && $0.is$lang_Statement()); | 16735 return (($0 = this.returnStatement()) && $0.is$Statement()); |
16737 | 16736 |
16738 case 109/*TokenKind.THROW*/: | 16737 case 109/*TokenKind.THROW*/: |
16739 | 16738 |
16740 return (($0 = this.throwStatement()) && $0.is$lang_Statement()); | 16739 return (($0 = this.throwStatement()) && $0.is$Statement()); |
16741 | 16740 |
16742 case 72/*TokenKind.ASSERT*/: | 16741 case 72/*TokenKind.ASSERT*/: |
16743 | 16742 |
16744 return (($0 = this.assertStatement()) && $0.is$lang_Statement()); | 16743 return (($0 = this.assertStatement()) && $0.is$Statement()); |
16745 | 16744 |
16746 case 114/*TokenKind.WHILE*/: | 16745 case 114/*TokenKind.WHILE*/: |
16747 | 16746 |
16748 return this.whileStatement(); | 16747 return this.whileStatement(); |
16749 | 16748 |
16750 case 94/*TokenKind.DO*/: | 16749 case 94/*TokenKind.DO*/: |
16751 | 16750 |
16752 return this.doStatement(); | 16751 return this.doStatement(); |
16753 | 16752 |
16754 case 99/*TokenKind.FOR*/: | 16753 case 99/*TokenKind.FOR*/: |
16755 | 16754 |
16756 return (($0 = this.forStatement()) && $0.is$lang_Statement()); | 16755 return (($0 = this.forStatement()) && $0.is$Statement()); |
16757 | 16756 |
16758 case 100/*TokenKind.IF*/: | 16757 case 100/*TokenKind.IF*/: |
16759 | 16758 |
16760 return this.ifStatement(); | 16759 return this.ifStatement(); |
16761 | 16760 |
16762 case 107/*TokenKind.SWITCH*/: | 16761 case 107/*TokenKind.SWITCH*/: |
16763 | 16762 |
16764 return (($0 = this.switchStatement()) && $0.is$lang_Statement()); | 16763 return (($0 = this.switchStatement()) && $0.is$Statement()); |
16765 | 16764 |
16766 case 111/*TokenKind.TRY*/: | 16765 case 111/*TokenKind.TRY*/: |
16767 | 16766 |
16768 return (($0 = this.tryStatement()) && $0.is$lang_Statement()); | 16767 return (($0 = this.tryStatement()) && $0.is$Statement()); |
16769 | 16768 |
16770 case 6/*TokenKind.LBRACE*/: | 16769 case 6/*TokenKind.LBRACE*/: |
16771 | 16770 |
16772 return this.block(); | 16771 return this.block(); |
16773 | 16772 |
16774 case 10/*TokenKind.SEMICOLON*/: | 16773 case 10/*TokenKind.SEMICOLON*/: |
16775 | 16774 |
16776 return this.emptyStatement(); | 16775 return this.emptyStatement(); |
16777 | 16776 |
16778 case 97/*TokenKind.FINAL*/: | 16777 case 97/*TokenKind.FINAL*/: |
16779 | 16778 |
16780 return (($0 = this.declaration(false)) && $0.is$lang_Statement()); | 16779 return (($0 = this.declaration(false)) && $0.is$Statement()); |
16781 | 16780 |
16782 case 112/*TokenKind.VAR*/: | 16781 case 112/*TokenKind.VAR*/: |
16783 | 16782 |
16784 return (($0 = this.declaration(false)) && $0.is$lang_Statement()); | 16783 return (($0 = this.declaration(false)) && $0.is$Statement()); |
16785 | 16784 |
16786 default: | 16785 default: |
16787 | 16786 |
16788 return (($0 = this.finishExpressionAsStatement(this.expression())) && $0.i
s$lang_Statement()); | 16787 return (($0 = this.finishExpressionAsStatement(this.expression())) && $0.i
s$Statement()); |
16789 | 16788 |
16790 } | 16789 } |
16791 } | 16790 } |
16792 lang_Parser.prototype.finishExpressionAsStatement = function(expr) { | 16791 Parser.prototype.finishExpressionAsStatement = function(expr) { |
16793 var $0; | 16792 var $0; |
16794 var start = expr.get$span().start; | 16793 var start = expr.get$span().start; |
16795 if ($notnull_bool(this._maybeEat(8/*TokenKind.COLON*/))) { | 16794 if ($notnull_bool(this._maybeEat(8/*TokenKind.COLON*/))) { |
16796 var label = this._makeLabel(expr); | 16795 var label = this._makeLabel(expr); |
16797 return new LabeledStatement(label, this.statement(), this._makeSpan(start)); | 16796 return new LabeledStatement(label, this.statement(), this._makeSpan(start)); |
16798 } | 16797 } |
16799 if ((expr instanceof LambdaExpression)) { | 16798 if ((expr instanceof LambdaExpression)) { |
16800 if (!(expr.func.body instanceof BlockStatement)) { | 16799 if (!(expr.func.body instanceof BlockStatement)) { |
16801 this._eatSemicolon(); | 16800 this._eatSemicolon(); |
16802 expr.func.span = this._makeSpan(start); | 16801 expr.func.span = this._makeSpan(start); |
(...skipping 17 matching lines...) Expand all Loading... |
16820 var gt = this._finishTypeArguments((baseType && baseType.is$TypeReference())
, 0, typeArgs); | 16819 var gt = this._finishTypeArguments((baseType && baseType.is$TypeReference())
, 0, typeArgs); |
16821 var name = this.identifier(); | 16820 var name = this.identifier(); |
16822 var value = null; | 16821 var value = null; |
16823 if ($notnull_bool(this._maybeEat(20/*TokenKind.ASSIGN*/))) { | 16822 if ($notnull_bool(this._maybeEat(20/*TokenKind.ASSIGN*/))) { |
16824 value = this.expression(); | 16823 value = this.expression(); |
16825 } | 16824 } |
16826 return this.finishField(expr.get$span().start, null, gt, name, value); | 16825 return this.finishField(expr.get$span().start, null, gt, name, value); |
16827 } | 16826 } |
16828 else { | 16827 else { |
16829 this._eatSemicolon(); | 16828 this._eatSemicolon(); |
16830 return new lang_ExpressionStatement(expr, this._makeSpan(expr.get$span().sta
rt)); | 16829 return new ExpressionStatement(expr, this._makeSpan(expr.get$span().start)); |
16831 } | 16830 } |
16832 } | 16831 } |
16833 lang_Parser.prototype.testCondition = function() { | 16832 Parser.prototype.testCondition = function() { |
16834 this._eat(2/*TokenKind.LPAREN*/); | 16833 this._eat(2/*TokenKind.LPAREN*/); |
16835 var ret = this.expression(); | 16834 var ret = this.expression(); |
16836 this._eat(3/*TokenKind.RPAREN*/); | 16835 this._eat(3/*TokenKind.RPAREN*/); |
16837 return (ret && ret.is$lang_Expression()); | 16836 return (ret && ret.is$Expression()); |
16838 } | 16837 } |
16839 lang_Parser.prototype.block = function() { | 16838 Parser.prototype.block = function() { |
16840 var start = this._peekToken.start; | 16839 var start = this._peekToken.start; |
16841 this._eat(6/*TokenKind.LBRACE*/); | 16840 this._eat(6/*TokenKind.LBRACE*/); |
16842 var stmts = []; | 16841 var stmts = []; |
16843 while (!$notnull_bool(this._maybeEat(7/*TokenKind.RBRACE*/))) { | 16842 while (!$notnull_bool(this._maybeEat(7/*TokenKind.RBRACE*/))) { |
16844 if ($notnull_bool(this.isPrematureEndOfFile())) break; | 16843 if ($notnull_bool(this.isPrematureEndOfFile())) break; |
16845 stmts.add$1(this.statement()); | 16844 stmts.add$1(this.statement()); |
16846 } | 16845 } |
16847 return new BlockStatement(stmts, this._makeSpan(start)); | 16846 return new BlockStatement(stmts, this._makeSpan(start)); |
16848 } | 16847 } |
16849 lang_Parser.prototype.emptyStatement = function() { | 16848 Parser.prototype.emptyStatement = function() { |
16850 var start = this._peekToken.start; | 16849 var start = this._peekToken.start; |
16851 this._eat(10/*TokenKind.SEMICOLON*/); | 16850 this._eat(10/*TokenKind.SEMICOLON*/); |
16852 return new EmptyStatement(this._makeSpan(start)); | 16851 return new EmptyStatement(this._makeSpan(start)); |
16853 } | 16852 } |
16854 lang_Parser.prototype.ifStatement = function() { | 16853 Parser.prototype.ifStatement = function() { |
16855 var start = this._peekToken.start; | 16854 var start = this._peekToken.start; |
16856 this._eat(100/*TokenKind.IF*/); | 16855 this._eat(100/*TokenKind.IF*/); |
16857 var test = this.testCondition(); | 16856 var test = this.testCondition(); |
16858 var trueBranch = this.statement(); | 16857 var trueBranch = this.statement(); |
16859 var falseBranch = null; | 16858 var falseBranch = null; |
16860 if ($notnull_bool(this._maybeEat(95/*TokenKind.ELSE*/))) { | 16859 if ($notnull_bool(this._maybeEat(95/*TokenKind.ELSE*/))) { |
16861 falseBranch = this.statement(); | 16860 falseBranch = this.statement(); |
16862 } | 16861 } |
16863 return new IfStatement(test, trueBranch, falseBranch, this._makeSpan(start)); | 16862 return new IfStatement(test, trueBranch, falseBranch, this._makeSpan(start)); |
16864 } | 16863 } |
16865 lang_Parser.prototype.whileStatement = function() { | 16864 Parser.prototype.whileStatement = function() { |
16866 var start = this._peekToken.start; | 16865 var start = this._peekToken.start; |
16867 this._eat(114/*TokenKind.WHILE*/); | 16866 this._eat(114/*TokenKind.WHILE*/); |
16868 var test = this.testCondition(); | 16867 var test = this.testCondition(); |
16869 var body = this.statement(); | 16868 var body = this.statement(); |
16870 return new WhileStatement(test, body, this._makeSpan(start)); | 16869 return new WhileStatement(test, body, this._makeSpan(start)); |
16871 } | 16870 } |
16872 lang_Parser.prototype.doStatement = function() { | 16871 Parser.prototype.doStatement = function() { |
16873 var start = this._peekToken.start; | 16872 var start = this._peekToken.start; |
16874 this._eat(94/*TokenKind.DO*/); | 16873 this._eat(94/*TokenKind.DO*/); |
16875 var body = this.statement(); | 16874 var body = this.statement(); |
16876 this._eat(114/*TokenKind.WHILE*/); | 16875 this._eat(114/*TokenKind.WHILE*/); |
16877 var test = this.testCondition(); | 16876 var test = this.testCondition(); |
16878 this._eatSemicolon(); | 16877 this._eatSemicolon(); |
16879 return new DoStatement(body, test, this._makeSpan(start)); | 16878 return new DoStatement(body, test, this._makeSpan(start)); |
16880 } | 16879 } |
16881 lang_Parser.prototype.forStatement = function() { | 16880 Parser.prototype.forStatement = function() { |
16882 var start = this._peekToken.start; | 16881 var start = this._peekToken.start; |
16883 this._eat(99/*TokenKind.FOR*/); | 16882 this._eat(99/*TokenKind.FOR*/); |
16884 this._eat(2/*TokenKind.LPAREN*/); | 16883 this._eat(2/*TokenKind.LPAREN*/); |
16885 var init = this.forInitializerStatement(start); | 16884 var init = this.forInitializerStatement(start); |
16886 if ((init instanceof ForInStatement)) { | 16885 if ((init instanceof ForInStatement)) { |
16887 return init; | 16886 return init; |
16888 } | 16887 } |
16889 var test = null; | 16888 var test = null; |
16890 if (!$notnull_bool(this._maybeEat(10/*TokenKind.SEMICOLON*/))) { | 16889 if (!$notnull_bool(this._maybeEat(10/*TokenKind.SEMICOLON*/))) { |
16891 test = this.expression(); | 16890 test = this.expression(); |
16892 this._eatSemicolon(); | 16891 this._eatSemicolon(); |
16893 } | 16892 } |
16894 var step = []; | 16893 var step = []; |
16895 if (!$notnull_bool(this._maybeEat(3/*TokenKind.RPAREN*/))) { | 16894 if (!$notnull_bool(this._maybeEat(3/*TokenKind.RPAREN*/))) { |
16896 step.add$1(this.expression()); | 16895 step.add$1(this.expression()); |
16897 while ($notnull_bool(this._maybeEat(11/*TokenKind.COMMA*/))) { | 16896 while ($notnull_bool(this._maybeEat(11/*TokenKind.COMMA*/))) { |
16898 step.add$1(this.expression()); | 16897 step.add$1(this.expression()); |
16899 } | 16898 } |
16900 this._eat(3/*TokenKind.RPAREN*/); | 16899 this._eat(3/*TokenKind.RPAREN*/); |
16901 } | 16900 } |
16902 var body = this.statement(); | 16901 var body = this.statement(); |
16903 return new ForStatement(init, test, step, body, this._makeSpan(start)); | 16902 return new ForStatement(init, test, step, body, this._makeSpan(start)); |
16904 } | 16903 } |
16905 lang_Parser.prototype.forInitializerStatement = function(start) { | 16904 Parser.prototype.forInitializerStatement = function(start) { |
16906 var $0; | 16905 var $0; |
16907 if ($notnull_bool(this._maybeEat(10/*TokenKind.SEMICOLON*/))) { | 16906 if ($notnull_bool(this._maybeEat(10/*TokenKind.SEMICOLON*/))) { |
16908 return null; | 16907 return null; |
16909 } | 16908 } |
16910 else { | 16909 else { |
16911 var init = this.expression(); | 16910 var init = this.expression(); |
16912 if ($notnull_bool(this._peekKind(11/*TokenKind.COMMA*/)) && $notnull_bool(th
is._isBin(init, 52/*TokenKind.LT*/))) { | 16911 if ($notnull_bool(this._peekKind(11/*TokenKind.COMMA*/)) && $notnull_bool(th
is._isBin(init, 52/*TokenKind.LT*/))) { |
16913 this._eat(11/*TokenKind.COMMA*/); | 16912 this._eat(11/*TokenKind.COMMA*/); |
16914 var baseType = this._makeType(init.x); | 16913 var baseType = this._makeType(init.x); |
16915 var typeArgs = [this._makeType(init.y)]; | 16914 var typeArgs = [this._makeType(init.y)]; |
16916 var gt = this._finishTypeArguments((baseType && baseType.is$TypeReference(
)), 0, typeArgs); | 16915 var gt = this._finishTypeArguments((baseType && baseType.is$TypeReference(
)), 0, typeArgs); |
16917 var name = this.identifier(); | 16916 var name = this.identifier(); |
16918 init = new DeclaredIdentifier(gt, name, this._makeSpan(init.get$span().sta
rt)); | 16917 init = new DeclaredIdentifier(gt, name, this._makeSpan(init.get$span().sta
rt)); |
16919 } | 16918 } |
16920 if ($notnull_bool(this._maybeEat(101/*TokenKind.IN*/))) { | 16919 if ($notnull_bool(this._maybeEat(101/*TokenKind.IN*/))) { |
16921 return this._finishForIn(start, (($0 = this._makeDeclaredIdentifier(init))
&& $0.is$DeclaredIdentifier())); | 16920 return this._finishForIn(start, (($0 = this._makeDeclaredIdentifier(init))
&& $0.is$DeclaredIdentifier())); |
16922 } | 16921 } |
16923 else { | 16922 else { |
16924 return this.finishExpressionAsStatement(init); | 16923 return this.finishExpressionAsStatement(init); |
16925 } | 16924 } |
16926 } | 16925 } |
16927 } | 16926 } |
16928 lang_Parser.prototype._finishForIn = function(start, di) { | 16927 Parser.prototype._finishForIn = function(start, di) { |
16929 var expr = this.expression(); | 16928 var expr = this.expression(); |
16930 this._eat(3/*TokenKind.RPAREN*/); | 16929 this._eat(3/*TokenKind.RPAREN*/); |
16931 var body = this.statement(); | 16930 var body = this.statement(); |
16932 return new ForInStatement(di, expr, body, this._makeSpan(start)); | 16931 return new ForInStatement(di, expr, body, this._makeSpan(start)); |
16933 } | 16932 } |
16934 lang_Parser.prototype.tryStatement = function() { | 16933 Parser.prototype.tryStatement = function() { |
16935 var start = this._peekToken.start; | 16934 var start = this._peekToken.start; |
16936 this._eat(111/*TokenKind.TRY*/); | 16935 this._eat(111/*TokenKind.TRY*/); |
16937 var body = this.block(); | 16936 var body = this.block(); |
16938 var catches = []; | 16937 var catches = []; |
16939 while ($notnull_bool(this._peekKind(90/*TokenKind.CATCH*/))) { | 16938 while ($notnull_bool(this._peekKind(90/*TokenKind.CATCH*/))) { |
16940 catches.add$1(this.catchNode()); | 16939 catches.add$1(this.catchNode()); |
16941 } | 16940 } |
16942 var finallyBlock = null; | 16941 var finallyBlock = null; |
16943 if ($notnull_bool(this._maybeEat(98/*TokenKind.FINALLY*/))) { | 16942 if ($notnull_bool(this._maybeEat(98/*TokenKind.FINALLY*/))) { |
16944 finallyBlock = this.block(); | 16943 finallyBlock = this.block(); |
16945 } | 16944 } |
16946 return new TryStatement(body, catches, finallyBlock, this._makeSpan(start)); | 16945 return new TryStatement(body, catches, finallyBlock, this._makeSpan(start)); |
16947 } | 16946 } |
16948 lang_Parser.prototype.catchNode = function() { | 16947 Parser.prototype.catchNode = function() { |
16949 var start = this._peekToken.start; | 16948 var start = this._peekToken.start; |
16950 this._eat(90/*TokenKind.CATCH*/); | 16949 this._eat(90/*TokenKind.CATCH*/); |
16951 this._eat(2/*TokenKind.LPAREN*/); | 16950 this._eat(2/*TokenKind.LPAREN*/); |
16952 var exc = this.declaredIdentifier(false); | 16951 var exc = this.declaredIdentifier(false); |
16953 var trace = null; | 16952 var trace = null; |
16954 if ($notnull_bool(this._maybeEat(11/*TokenKind.COMMA*/))) { | 16953 if ($notnull_bool(this._maybeEat(11/*TokenKind.COMMA*/))) { |
16955 trace = this.declaredIdentifier(false); | 16954 trace = this.declaredIdentifier(false); |
16956 } | 16955 } |
16957 this._eat(3/*TokenKind.RPAREN*/); | 16956 this._eat(3/*TokenKind.RPAREN*/); |
16958 var body = this.block(); | 16957 var body = this.block(); |
16959 return new CatchNode(exc, trace, body, this._makeSpan(start)); | 16958 return new CatchNode(exc, trace, body, this._makeSpan(start)); |
16960 } | 16959 } |
16961 lang_Parser.prototype.switchStatement = function() { | 16960 Parser.prototype.switchStatement = function() { |
16962 var start = this._peekToken.start; | 16961 var start = this._peekToken.start; |
16963 this._eat(107/*TokenKind.SWITCH*/); | 16962 this._eat(107/*TokenKind.SWITCH*/); |
16964 var test = this.testCondition(); | 16963 var test = this.testCondition(); |
16965 var cases = []; | 16964 var cases = []; |
16966 this._eat(6/*TokenKind.LBRACE*/); | 16965 this._eat(6/*TokenKind.LBRACE*/); |
16967 while (!$notnull_bool(this._maybeEat(7/*TokenKind.RBRACE*/))) { | 16966 while (!$notnull_bool(this._maybeEat(7/*TokenKind.RBRACE*/))) { |
16968 cases.add$1(this.caseNode()); | 16967 cases.add$1(this.caseNode()); |
16969 } | 16968 } |
16970 return new SwitchStatement(test, cases, this._makeSpan(start)); | 16969 return new SwitchStatement(test, cases, this._makeSpan(start)); |
16971 } | 16970 } |
16972 lang_Parser.prototype._peekCaseEnd = function() { | 16971 Parser.prototype._peekCaseEnd = function() { |
16973 var kind = this._peek(); | 16972 var kind = this._peek(); |
16974 return $notnull_bool($eq(kind, 7/*TokenKind.RBRACE*/)) || $notnull_bool($eq(ki
nd, 89/*TokenKind.CASE*/)) || $notnull_bool($eq(kind, 93/*TokenKind.DEFAULT*/)); | 16973 return $notnull_bool($eq(kind, 7/*TokenKind.RBRACE*/)) || $notnull_bool($eq(ki
nd, 89/*TokenKind.CASE*/)) || $notnull_bool($eq(kind, 93/*TokenKind.DEFAULT*/)); |
16975 } | 16974 } |
16976 lang_Parser.prototype.caseNode = function() { | 16975 Parser.prototype.caseNode = function() { |
16977 var start = this._peekToken.start; | 16976 var start = this._peekToken.start; |
16978 var label = null; | 16977 var label = null; |
16979 if ($notnull_bool(this._peekIdentifier())) { | 16978 if ($notnull_bool(this._peekIdentifier())) { |
16980 label = this.identifier(); | 16979 label = this.identifier(); |
16981 this._eat(8/*TokenKind.COLON*/); | 16980 this._eat(8/*TokenKind.COLON*/); |
16982 } | 16981 } |
16983 var cases = []; | 16982 var cases = []; |
16984 while (true) { | 16983 while (true) { |
16985 if ($notnull_bool(this._maybeEat(89/*TokenKind.CASE*/))) { | 16984 if ($notnull_bool(this._maybeEat(89/*TokenKind.CASE*/))) { |
16986 cases.add$1(this.expression()); | 16985 cases.add$1(this.expression()); |
(...skipping 10 matching lines...) Expand all Loading... |
16997 if (cases.length == 0) { | 16996 if (cases.length == 0) { |
16998 this._lang_error('case or default'); | 16997 this._lang_error('case or default'); |
16999 } | 16998 } |
17000 var stmts = []; | 16999 var stmts = []; |
17001 while (!$notnull_bool(this._peekCaseEnd())) { | 17000 while (!$notnull_bool(this._peekCaseEnd())) { |
17002 if ($notnull_bool(this.isPrematureEndOfFile())) break; | 17001 if ($notnull_bool(this.isPrematureEndOfFile())) break; |
17003 stmts.add$1(this.statement()); | 17002 stmts.add$1(this.statement()); |
17004 } | 17003 } |
17005 return new CaseNode(label, cases, stmts, this._makeSpan(start)); | 17004 return new CaseNode(label, cases, stmts, this._makeSpan(start)); |
17006 } | 17005 } |
17007 lang_Parser.prototype.returnStatement = function() { | 17006 Parser.prototype.returnStatement = function() { |
17008 var start = this._peekToken.start; | 17007 var start = this._peekToken.start; |
17009 this._eat(105/*TokenKind.RETURN*/); | 17008 this._eat(105/*TokenKind.RETURN*/); |
17010 var expr; | 17009 var expr; |
17011 if ($notnull_bool(this._maybeEat(10/*TokenKind.SEMICOLON*/))) { | 17010 if ($notnull_bool(this._maybeEat(10/*TokenKind.SEMICOLON*/))) { |
17012 expr = null; | 17011 expr = null; |
17013 } | 17012 } |
17014 else { | 17013 else { |
17015 expr = this.expression(); | 17014 expr = this.expression(); |
17016 this._eatSemicolon(); | 17015 this._eatSemicolon(); |
17017 } | 17016 } |
17018 return new ReturnStatement(expr, this._makeSpan(start)); | 17017 return new ReturnStatement(expr, this._makeSpan(start)); |
17019 } | 17018 } |
17020 lang_Parser.prototype.throwStatement = function() { | 17019 Parser.prototype.throwStatement = function() { |
17021 var start = this._peekToken.start; | 17020 var start = this._peekToken.start; |
17022 this._eat(109/*TokenKind.THROW*/); | 17021 this._eat(109/*TokenKind.THROW*/); |
17023 var expr; | 17022 var expr; |
17024 if ($notnull_bool(this._maybeEat(10/*TokenKind.SEMICOLON*/))) { | 17023 if ($notnull_bool(this._maybeEat(10/*TokenKind.SEMICOLON*/))) { |
17025 expr = null; | 17024 expr = null; |
17026 } | 17025 } |
17027 else { | 17026 else { |
17028 expr = this.expression(); | 17027 expr = this.expression(); |
17029 this._eatSemicolon(); | 17028 this._eatSemicolon(); |
17030 } | 17029 } |
17031 return new ThrowStatement(expr, this._makeSpan(start)); | 17030 return new ThrowStatement(expr, this._makeSpan(start)); |
17032 } | 17031 } |
17033 lang_Parser.prototype.assertStatement = function() { | 17032 Parser.prototype.assertStatement = function() { |
17034 var start = this._peekToken.start; | 17033 var start = this._peekToken.start; |
17035 this._eat(72/*TokenKind.ASSERT*/); | 17034 this._eat(72/*TokenKind.ASSERT*/); |
17036 this._eat(2/*TokenKind.LPAREN*/); | 17035 this._eat(2/*TokenKind.LPAREN*/); |
17037 var expr = this.expression(); | 17036 var expr = this.expression(); |
17038 this._eat(3/*TokenKind.RPAREN*/); | 17037 this._eat(3/*TokenKind.RPAREN*/); |
17039 this._eatSemicolon(); | 17038 this._eatSemicolon(); |
17040 return new AssertStatement(expr, this._makeSpan(start)); | 17039 return new AssertStatement(expr, this._makeSpan(start)); |
17041 } | 17040 } |
17042 lang_Parser.prototype.breakStatement = function() { | 17041 Parser.prototype.breakStatement = function() { |
17043 var start = this._peekToken.start; | 17042 var start = this._peekToken.start; |
17044 this._eat(88/*TokenKind.BREAK*/); | 17043 this._eat(88/*TokenKind.BREAK*/); |
17045 var name = null; | 17044 var name = null; |
17046 if ($notnull_bool(this._peekIdentifier())) { | 17045 if ($notnull_bool(this._peekIdentifier())) { |
17047 name = this.identifier(); | 17046 name = this.identifier(); |
17048 } | 17047 } |
17049 this._eatSemicolon(); | 17048 this._eatSemicolon(); |
17050 return new BreakStatement(name, this._makeSpan(start)); | 17049 return new BreakStatement(name, this._makeSpan(start)); |
17051 } | 17050 } |
17052 lang_Parser.prototype.continueStatement = function() { | 17051 Parser.prototype.continueStatement = function() { |
17053 var start = this._peekToken.start; | 17052 var start = this._peekToken.start; |
17054 this._eat(92/*TokenKind.CONTINUE*/); | 17053 this._eat(92/*TokenKind.CONTINUE*/); |
17055 var name = null; | 17054 var name = null; |
17056 if ($notnull_bool(this._peekIdentifier())) { | 17055 if ($notnull_bool(this._peekIdentifier())) { |
17057 name = this.identifier(); | 17056 name = this.identifier(); |
17058 } | 17057 } |
17059 this._eatSemicolon(); | 17058 this._eatSemicolon(); |
17060 return new ContinueStatement(name, this._makeSpan(start)); | 17059 return new ContinueStatement(name, this._makeSpan(start)); |
17061 } | 17060 } |
17062 lang_Parser.prototype.expression = function() { | 17061 Parser.prototype.expression = function() { |
17063 return this.infixExpression(0); | 17062 return this.infixExpression(0); |
17064 } | 17063 } |
17065 lang_Parser.prototype._makeType = function(expr) { | 17064 Parser.prototype._makeType = function(expr) { |
17066 if ((expr instanceof VarExpression)) { | 17065 if ((expr instanceof VarExpression)) { |
17067 return new NameTypeReference(false, expr.get$name(), null, expr.get$span()); | 17066 return new NameTypeReference(false, expr.get$name(), null, expr.get$span()); |
17068 } | 17067 } |
17069 else if ((expr instanceof DotExpression)) { | 17068 else if ((expr instanceof DotExpression)) { |
17070 var type = this._makeType(expr.self); | 17069 var type = this._makeType(expr.self); |
17071 if (type.names == null) { | 17070 if (type.names == null) { |
17072 type.names = [expr.get$name()]; | 17071 type.names = [expr.get$name()]; |
17073 } | 17072 } |
17074 else { | 17073 else { |
17075 type.names.add$1(expr.get$name()); | 17074 type.names.add$1(expr.get$name()); |
17076 } | 17075 } |
17077 type.span = expr.get$span(); | 17076 type.span = expr.get$span(); |
17078 return type; | 17077 return type; |
17079 } | 17078 } |
17080 else { | 17079 else { |
17081 this._lang_error('expected type reference'); | 17080 this._lang_error('expected type reference'); |
17082 return null; | 17081 return null; |
17083 } | 17082 } |
17084 } | 17083 } |
17085 lang_Parser.prototype.infixExpression = function(precedence) { | 17084 Parser.prototype.infixExpression = function(precedence) { |
17086 var $0; | 17085 var $0; |
17087 return this.finishInfixExpression((($0 = this.unaryExpression()) && $0.is$lang
_Expression()), precedence); | 17086 return this.finishInfixExpression((($0 = this.unaryExpression()) && $0.is$Expr
ession()), precedence); |
17088 } | 17087 } |
17089 lang_Parser.prototype._finishDeclaredId = function(type) { | 17088 Parser.prototype._finishDeclaredId = function(type) { |
17090 var name = this.identifier(); | 17089 var name = this.identifier(); |
17091 return this.finishPostfixExpression(new DeclaredIdentifier(type, name, this._m
akeSpan(type.get$span().start))); | 17090 return this.finishPostfixExpression(new DeclaredIdentifier(type, name, this._m
akeSpan(type.get$span().start))); |
17092 } | 17091 } |
17093 lang_Parser.prototype._fixAsType = function(x) { | 17092 Parser.prototype._fixAsType = function(x) { |
17094 $assert(this._isBin(x, 52/*TokenKind.LT*/), "_isBin(x, TokenKind.LT)", "parser
.dart", 790, 12); | 17093 $assert(this._isBin(x, 52/*TokenKind.LT*/), "_isBin(x, TokenKind.LT)", "parser
.dart", 790, 12); |
17095 if ($notnull_bool(this._maybeEat(53/*TokenKind.GT*/))) { | 17094 if ($notnull_bool(this._maybeEat(53/*TokenKind.GT*/))) { |
17096 var base = this._makeType(x.x); | 17095 var base = this._makeType(x.x); |
17097 var typeParam = this._makeType(x.y); | 17096 var typeParam = this._makeType(x.y); |
17098 var type = new GenericTypeReference(base, [typeParam], 0, this._makeSpan(x.s
pan.start)); | 17097 var type = new GenericTypeReference(base, [typeParam], 0, this._makeSpan(x.s
pan.start)); |
17099 return this._finishDeclaredId(type); | 17098 return this._finishDeclaredId(type); |
17100 } | 17099 } |
17101 else { | 17100 else { |
17102 $assert(this._peekKind(52/*TokenKind.LT*/), "_peekKind(TokenKind.LT)", "pars
er.dart", 801, 14); | 17101 $assert(this._peekKind(52/*TokenKind.LT*/), "_peekKind(TokenKind.LT)", "pars
er.dart", 801, 14); |
17103 var base = this._makeType(x.x); | 17102 var base = this._makeType(x.x); |
17104 var paramBase = this._makeType(x.y); | 17103 var paramBase = this._makeType(x.y); |
17105 var firstParam = this.addTypeArguments((paramBase && paramBase.is$TypeRefere
nce()), 1); | 17104 var firstParam = this.addTypeArguments((paramBase && paramBase.is$TypeRefere
nce()), 1); |
17106 var type; | 17105 var type; |
17107 if (firstParam.depth <= 0) { | 17106 if (firstParam.depth <= 0) { |
17108 type = new GenericTypeReference(base, [firstParam], 0, this._makeSpan(x.sp
an.start)); | 17107 type = new GenericTypeReference(base, [firstParam], 0, this._makeSpan(x.sp
an.start)); |
17109 } | 17108 } |
17110 else if ($notnull_bool(this._maybeEat(11/*TokenKind.COMMA*/))) { | 17109 else if ($notnull_bool(this._maybeEat(11/*TokenKind.COMMA*/))) { |
17111 type = this._finishTypeArguments((base && base.is$TypeReference()), 0, [fi
rstParam]); | 17110 type = this._finishTypeArguments((base && base.is$TypeReference()), 0, [fi
rstParam]); |
17112 } | 17111 } |
17113 else { | 17112 else { |
17114 this._eat(53/*TokenKind.GT*/); | 17113 this._eat(53/*TokenKind.GT*/); |
17115 type = new GenericTypeReference(base, [firstParam], 0, this._makeSpan(x.sp
an.start)); | 17114 type = new GenericTypeReference(base, [firstParam], 0, this._makeSpan(x.sp
an.start)); |
17116 } | 17115 } |
17117 return this._finishDeclaredId(type); | 17116 return this._finishDeclaredId(type); |
17118 } | 17117 } |
17119 } | 17118 } |
17120 lang_Parser.prototype.finishInfixExpression = function(x, precedence) { | 17119 Parser.prototype.finishInfixExpression = function(x, precedence) { |
17121 while (true) { | 17120 while (true) { |
17122 var kind = this._peek(); | 17121 var kind = this._peek(); |
17123 var prec = TokenKind.infixPrecedence(this._peek()); | 17122 var prec = TokenKind.infixPrecedence(this._peek()); |
17124 if (prec >= precedence) { | 17123 if (prec >= precedence) { |
17125 if (kind == 52/*TokenKind.LT*/ || kind == 53/*TokenKind.GT*/) { | 17124 if (kind == 52/*TokenKind.LT*/ || kind == 53/*TokenKind.GT*/) { |
17126 if ($notnull_bool(this._isBin(x, 52/*TokenKind.LT*/))) { | 17125 if ($notnull_bool(this._isBin(x, 52/*TokenKind.LT*/))) { |
17127 return this._fixAsType((x && x.is$BinaryExpression())); | 17126 return this._fixAsType((x && x.is$BinaryExpression())); |
17128 } | 17127 } |
17129 } | 17128 } |
17130 var op = this._lang_next(); | 17129 var op = this._lang_next(); |
(...skipping 12 matching lines...) Expand all Loading... |
17143 else { | 17142 else { |
17144 x = new BinaryExpression(op, x, y, this._makeSpan(x.span.start)); | 17143 x = new BinaryExpression(op, x, y, this._makeSpan(x.span.start)); |
17145 } | 17144 } |
17146 } | 17145 } |
17147 else { | 17146 else { |
17148 break; | 17147 break; |
17149 } | 17148 } |
17150 } | 17149 } |
17151 return x; | 17150 return x; |
17152 } | 17151 } |
17153 lang_Parser.prototype._isPrefixUnaryOperator = function(kind) { | 17152 Parser.prototype._isPrefixUnaryOperator = function(kind) { |
17154 switch (kind) { | 17153 switch (kind) { |
17155 case 42/*TokenKind.ADD*/: | 17154 case 42/*TokenKind.ADD*/: |
17156 case 43/*TokenKind.SUB*/: | 17155 case 43/*TokenKind.SUB*/: |
17157 case 19/*TokenKind.NOT*/: | 17156 case 19/*TokenKind.NOT*/: |
17158 case 18/*TokenKind.BIT_NOT*/: | 17157 case 18/*TokenKind.BIT_NOT*/: |
17159 case 16/*TokenKind.INCR*/: | 17158 case 16/*TokenKind.INCR*/: |
17160 case 17/*TokenKind.DECR*/: | 17159 case 17/*TokenKind.DECR*/: |
17161 | 17160 |
17162 return true; | 17161 return true; |
17163 | 17162 |
17164 default: | 17163 default: |
17165 | 17164 |
17166 return false; | 17165 return false; |
17167 | 17166 |
17168 } | 17167 } |
17169 } | 17168 } |
17170 lang_Parser.prototype.unaryExpression = function() { | 17169 Parser.prototype.unaryExpression = function() { |
17171 var start = this._peekToken.start; | 17170 var start = this._peekToken.start; |
17172 if ($notnull_bool(this._isPrefixUnaryOperator(this._peek()))) { | 17171 if ($notnull_bool(this._isPrefixUnaryOperator(this._peek()))) { |
17173 var tok = this._lang_next(); | 17172 var tok = this._lang_next(); |
17174 var expr = this.unaryExpression(); | 17173 var expr = this.unaryExpression(); |
17175 return new UnaryExpression(tok, expr, this._makeSpan(start)); | 17174 return new UnaryExpression(tok, expr, this._makeSpan(start)); |
17176 } | 17175 } |
17177 return this.finishPostfixExpression(this.primary()); | 17176 return this.finishPostfixExpression(this.primary()); |
17178 } | 17177 } |
17179 lang_Parser.prototype.argument = function() { | 17178 Parser.prototype.argument = function() { |
17180 var start = this._peekToken.start; | 17179 var start = this._peekToken.start; |
17181 var expr; | 17180 var expr; |
17182 var label = null; | 17181 var label = null; |
17183 if ($notnull_bool(this._maybeEat(15/*TokenKind.ELLIPSIS*/))) { | 17182 if ($notnull_bool(this._maybeEat(15/*TokenKind.ELLIPSIS*/))) { |
17184 label = new lang_Identifier('...', this._makeSpan(start)); | 17183 label = new Identifier('...', this._makeSpan(start)); |
17185 } | 17184 } |
17186 expr = this.expression(); | 17185 expr = this.expression(); |
17187 if (label == null && $notnull_bool(this._maybeEat(8/*TokenKind.COLON*/))) { | 17186 if (label == null && $notnull_bool(this._maybeEat(8/*TokenKind.COLON*/))) { |
17188 label = this._makeLabel(expr); | 17187 label = this._makeLabel(expr); |
17189 expr = this.expression(); | 17188 expr = this.expression(); |
17190 } | 17189 } |
17191 return new ArgumentNode(label, expr, this._makeSpan(start)); | 17190 return new ArgumentNode(label, expr, this._makeSpan(start)); |
17192 } | 17191 } |
17193 lang_Parser.prototype.arguments = function() { | 17192 Parser.prototype.arguments = function() { |
17194 var args = []; | 17193 var args = []; |
17195 this._eat(2/*TokenKind.LPAREN*/); | 17194 this._eat(2/*TokenKind.LPAREN*/); |
17196 if (!$notnull_bool(this._maybeEat(3/*TokenKind.RPAREN*/))) { | 17195 if (!$notnull_bool(this._maybeEat(3/*TokenKind.RPAREN*/))) { |
17197 do { | 17196 do { |
17198 args.add$1(this.argument()); | 17197 args.add$1(this.argument()); |
17199 } | 17198 } |
17200 while ($notnull_bool(this._maybeEat(11/*TokenKind.COMMA*/))) | 17199 while ($notnull_bool(this._maybeEat(11/*TokenKind.COMMA*/))) |
17201 this._eat(3/*TokenKind.RPAREN*/); | 17200 this._eat(3/*TokenKind.RPAREN*/); |
17202 } | 17201 } |
17203 return args; | 17202 return args; |
17204 } | 17203 } |
17205 lang_Parser.prototype.get$arguments = function() { | 17204 Parser.prototype.get$arguments = function() { |
17206 return lang_Parser.prototype.arguments.bind(this); | 17205 return Parser.prototype.arguments.bind(this); |
17207 } | 17206 } |
17208 lang_Parser.prototype.finishPostfixExpression = function(expr) { | 17207 Parser.prototype.finishPostfixExpression = function(expr) { |
17209 switch (this._peek()) { | 17208 switch (this._peek()) { |
17210 case 2/*TokenKind.LPAREN*/: | 17209 case 2/*TokenKind.LPAREN*/: |
17211 | 17210 |
17212 return this.finishPostfixExpression(new CallExpression(expr, this.argument
s(), this._makeSpan(expr.get$span().start))); | 17211 return this.finishPostfixExpression(new CallExpression(expr, this.argument
s(), this._makeSpan(expr.get$span().start))); |
17213 | 17212 |
17214 case 4/*TokenKind.LBRACK*/: | 17213 case 4/*TokenKind.LBRACK*/: |
17215 | 17214 |
17216 this._eat(4/*TokenKind.LBRACK*/); | 17215 this._eat(4/*TokenKind.LBRACK*/); |
17217 var index = this.expression(); | 17216 var index = this.expression(); |
17218 this._eat(5/*TokenKind.RBRACK*/); | 17217 this._eat(5/*TokenKind.RBRACK*/); |
(...skipping 23 matching lines...) Expand all Loading... |
17242 | 17241 |
17243 if ($notnull_bool(this._peekIdentifier())) { | 17242 if ($notnull_bool(this._peekIdentifier())) { |
17244 return this.finishPostfixExpression(new DeclaredIdentifier(this._makeTyp
e(expr), this.identifier(), this._makeSpan(expr.get$span().start))); | 17243 return this.finishPostfixExpression(new DeclaredIdentifier(this._makeTyp
e(expr), this.identifier(), this._makeSpan(expr.get$span().start))); |
17245 } | 17244 } |
17246 else { | 17245 else { |
17247 return expr; | 17246 return expr; |
17248 } | 17247 } |
17249 | 17248 |
17250 } | 17249 } |
17251 } | 17250 } |
17252 lang_Parser.prototype._isBin = function(expr, kind) { | 17251 Parser.prototype._isBin = function(expr, kind) { |
17253 return (expr instanceof BinaryExpression) && expr.op.kind == kind; | 17252 return (expr instanceof BinaryExpression) && expr.op.kind == kind; |
17254 } | 17253 } |
17255 lang_Parser.prototype._boolTypeRef = function(span) { | 17254 Parser.prototype._boolTypeRef = function(span) { |
17256 return new TypeReference(span, world.nonNullBool); | 17255 return new TypeReference(span, world.nonNullBool); |
17257 } | 17256 } |
17258 lang_Parser.prototype._intTypeRef = function(span) { | 17257 Parser.prototype._intTypeRef = function(span) { |
17259 return new TypeReference(span, world.intType); | 17258 return new TypeReference(span, world.intType); |
17260 } | 17259 } |
17261 lang_Parser.prototype._doubleTypeRef = function(span) { | 17260 Parser.prototype._doubleTypeRef = function(span) { |
17262 return new TypeReference(span, world.doubleType); | 17261 return new TypeReference(span, world.doubleType); |
17263 } | 17262 } |
17264 lang_Parser.prototype._stringTypeRef = function(span) { | 17263 Parser.prototype._stringTypeRef = function(span) { |
17265 return new TypeReference(span, world.stringType); | 17264 return new TypeReference(span, world.stringType); |
17266 } | 17265 } |
17267 lang_Parser.prototype.primary = function() { | 17266 Parser.prototype.primary = function() { |
17268 var start = this._peekToken.start; | 17267 var start = this._peekToken.start; |
17269 switch (this._peek()) { | 17268 switch (this._peek()) { |
17270 case 108/*TokenKind.THIS*/: | 17269 case 108/*TokenKind.THIS*/: |
17271 | 17270 |
17272 this._eat(108/*TokenKind.THIS*/); | 17271 this._eat(108/*TokenKind.THIS*/); |
17273 return new ThisExpression(this._makeSpan(start)); | 17272 return new ThisExpression(this._makeSpan(start)); |
17274 | 17273 |
17275 case 106/*TokenKind.SUPER*/: | 17274 case 106/*TokenKind.SUPER*/: |
17276 | 17275 |
17277 this._eat(106/*TokenKind.SUPER*/); | 17276 this._eat(106/*TokenKind.SUPER*/); |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
17322 return new LiteralExpression(true, this._boolTypeRef(this._makeSpan(start)
), 'true', this._makeSpan(start)); | 17321 return new LiteralExpression(true, this._boolTypeRef(this._makeSpan(start)
), 'true', this._makeSpan(start)); |
17323 | 17322 |
17324 case 96/*TokenKind.FALSE*/: | 17323 case 96/*TokenKind.FALSE*/: |
17325 | 17324 |
17326 this._eat(96/*TokenKind.FALSE*/); | 17325 this._eat(96/*TokenKind.FALSE*/); |
17327 return new LiteralExpression(false, this._boolTypeRef(this._makeSpan(start
)), 'false', this._makeSpan(start)); | 17326 return new LiteralExpression(false, this._boolTypeRef(this._makeSpan(start
)), 'false', this._makeSpan(start)); |
17328 | 17327 |
17329 case 61/*TokenKind.HEX_INTEGER*/: | 17328 case 61/*TokenKind.HEX_INTEGER*/: |
17330 | 17329 |
17331 var t = this._lang_next(); | 17330 var t = this._lang_next(); |
17332 return new LiteralExpression(lang_Parser.parseHex(t.get$text().substring(2
)), this._intTypeRef(this._makeSpan(start)), t.get$text(), this._makeSpan(start)
); | 17331 return new LiteralExpression(Parser.parseHex(t.get$text().substring(2)), t
his._intTypeRef(this._makeSpan(start)), t.get$text(), this._makeSpan(start)); |
17333 | 17332 |
17334 case 60/*TokenKind.INTEGER*/: | 17333 case 60/*TokenKind.INTEGER*/: |
17335 | 17334 |
17336 var t = this._lang_next(); | 17335 var t = this._lang_next(); |
17337 return new LiteralExpression(Math.parseInt(t.get$text()), this._intTypeRef
(this._makeSpan(start)), t.get$text(), this._makeSpan(start)); | 17336 return new LiteralExpression(Math.parseInt(t.get$text()), this._intTypeRef
(this._makeSpan(start)), t.get$text(), this._makeSpan(start)); |
17338 | 17337 |
17339 case 62/*TokenKind.DOUBLE*/: | 17338 case 62/*TokenKind.DOUBLE*/: |
17340 | 17339 |
17341 var t = this._lang_next(); | 17340 var t = this._lang_next(); |
17342 return new LiteralExpression(Math.parseDouble(t.get$text()), this._doubleT
ypeRef(this._makeSpan(start)), t.get$text(), this._makeSpan(start)); | 17341 return new LiteralExpression(Math.parseDouble(t.get$text()), this._doubleT
ypeRef(this._makeSpan(start)), t.get$text(), this._makeSpan(start)); |
(...skipping 18 matching lines...) Expand all Loading... |
17361 | 17360 |
17362 default: | 17361 default: |
17363 | 17362 |
17364 if (!$notnull_bool(this._peekIdentifier())) { | 17363 if (!$notnull_bool(this._peekIdentifier())) { |
17365 this._errorExpected('expression'); | 17364 this._errorExpected('expression'); |
17366 } | 17365 } |
17367 return new VarExpression(this.identifier(), this._makeSpan(start)); | 17366 return new VarExpression(this.identifier(), this._makeSpan(start)); |
17368 | 17367 |
17369 } | 17368 } |
17370 } | 17369 } |
17371 lang_Parser.prototype.stringInterpolation = function() { | 17370 Parser.prototype.stringInterpolation = function() { |
17372 var start = this._peekToken.start; | 17371 var start = this._peekToken.start; |
17373 var lits = []; | 17372 var lits = []; |
17374 var startQuote = null, endQuote = null; | 17373 var startQuote = null, endQuote = null; |
17375 while ($notnull_bool(this._peekKind(66/*TokenKind.INCOMPLETE_STRING*/))) { | 17374 while ($notnull_bool(this._peekKind(66/*TokenKind.INCOMPLETE_STRING*/))) { |
17376 var token = this._lang_next(); | 17375 var token = this._lang_next(); |
17377 var text = token.get$text(); | 17376 var text = token.get$text(); |
17378 if ($notnull_bool(startQuote == null)) { | 17377 if ($notnull_bool(startQuote == null)) { |
17379 if ($notnull_bool(isMultilineString($assert_String(text)))) { | 17378 if ($notnull_bool(isMultilineString($assert_String(text)))) { |
17380 endQuote = text.substring$2(0, 3); | 17379 endQuote = text.substring$2(0, 3); |
17381 startQuote = $add(endQuote, '\n'); | 17380 startQuote = $add(endQuote, '\n'); |
(...skipping 21 matching lines...) Expand all Loading... |
17403 } | 17402 } |
17404 var tok = this._lang_next(); | 17403 var tok = this._lang_next(); |
17405 if ($notnull_bool($ne(tok.kind, 58/*TokenKind.STRING*/))) { | 17404 if ($notnull_bool($ne(tok.kind, 58/*TokenKind.STRING*/))) { |
17406 this._errorExpected('interpolated string'); | 17405 this._errorExpected('interpolated string'); |
17407 } | 17406 } |
17408 var text = $add(startQuote, tok.get$text()); | 17407 var text = $add(startQuote, tok.get$text()); |
17409 lits.add$1(this.makeStringLiteral($assert_String(text), tok.get$span())); | 17408 lits.add$1(this.makeStringLiteral($assert_String(text), tok.get$span())); |
17410 var span = this._makeSpan(start); | 17409 var span = this._makeSpan(start); |
17411 return new LiteralExpression(lits, this._stringTypeRef((span && span.is$Source
Span())), '\$\$\$', (span && span.is$SourceSpan())); | 17410 return new LiteralExpression(lits, this._stringTypeRef((span && span.is$Source
Span())), '\$\$\$', (span && span.is$SourceSpan())); |
17412 } | 17411 } |
17413 lang_Parser.prototype.makeStringLiteral = function(text, span) { | 17412 Parser.prototype.makeStringLiteral = function(text, span) { |
17414 return new LiteralExpression(text, this._stringTypeRef(span), text, span); | 17413 return new LiteralExpression(text, this._stringTypeRef(span), text, span); |
17415 } | 17414 } |
17416 lang_Parser.prototype.stringLiteralExpr = function() { | 17415 Parser.prototype.stringLiteralExpr = function() { |
17417 var token = this._lang_next(); | 17416 var token = this._lang_next(); |
17418 return this.makeStringLiteral(token.get$text(), token.get$span()); | 17417 return this.makeStringLiteral(token.get$text(), token.get$span()); |
17419 } | 17418 } |
17420 lang_Parser.prototype.maybeStringLiteral = function() { | 17419 Parser.prototype.maybeStringLiteral = function() { |
17421 var kind = this._peek(); | 17420 var kind = this._peek(); |
17422 if ($notnull_bool($eq(kind, 58/*TokenKind.STRING*/))) { | 17421 if ($notnull_bool($eq(kind, 58/*TokenKind.STRING*/))) { |
17423 return parseStringLiteral(this._lang_next().get$text()); | 17422 return parseStringLiteral(this._lang_next().get$text()); |
17424 } | 17423 } |
17425 else if ($notnull_bool($eq(kind, 59/*TokenKind.STRING_PART*/))) { | 17424 else if ($notnull_bool($eq(kind, 59/*TokenKind.STRING_PART*/))) { |
17426 this._lang_next(); | 17425 this._lang_next(); |
17427 this._errorExpected('string literal, but found interpolated string start'); | 17426 this._errorExpected('string literal, but found interpolated string start'); |
17428 } | 17427 } |
17429 else if ($notnull_bool($eq(kind, 66/*TokenKind.INCOMPLETE_STRING*/))) { | 17428 else if ($notnull_bool($eq(kind, 66/*TokenKind.INCOMPLETE_STRING*/))) { |
17430 this._lang_next(); | 17429 this._lang_next(); |
17431 this._errorExpected('string literal, but found incomplete string'); | 17430 this._errorExpected('string literal, but found incomplete string'); |
17432 } | 17431 } |
17433 return null; | 17432 return null; |
17434 } | 17433 } |
17435 lang_Parser.prototype._parenOrLambda = function() { | 17434 Parser.prototype._parenOrLambda = function() { |
17436 var start = this._peekToken.start; | 17435 var start = this._peekToken.start; |
17437 var args = this.arguments(); | 17436 var args = this.arguments(); |
17438 if (!$notnull_bool(this._inInitializers) && ($notnull_bool(this._peekKind(9/*T
okenKind.ARROW*/)) || $notnull_bool(this._peekKind(6/*TokenKind.LBRACE*/)))) { | 17437 if (!$notnull_bool(this._inInitializers) && ($notnull_bool(this._peekKind(9/*T
okenKind.ARROW*/)) || $notnull_bool(this._peekKind(6/*TokenKind.LBRACE*/)))) { |
17439 var body = this.functionBody(true); | 17438 var body = this.functionBody(true); |
17440 var formals = this._makeFormals(args); | 17439 var formals = this._makeFormals(args); |
17441 var func = new FunctionDefinition(null, null, null, formals, null, body, thi
s._makeSpan(start)); | 17440 var func = new FunctionDefinition(null, null, null, formals, null, body, thi
s._makeSpan(start)); |
17442 return new LambdaExpression(func, func.get$span()); | 17441 return new LambdaExpression(func, func.get$span()); |
17443 } | 17442 } |
17444 else { | 17443 else { |
17445 if (args.length == 1) { | 17444 if (args.length == 1) { |
17446 return new ParenExpression(args.$index(0).get$value(), this._makeSpan(star
t)); | 17445 return new ParenExpression(args.$index(0).get$value(), this._makeSpan(star
t)); |
17447 } | 17446 } |
17448 else { | 17447 else { |
17449 this._lang_error('unexpected comma expression'); | 17448 this._lang_error('unexpected comma expression'); |
17450 return args.$index(0).get$value(); | 17449 return args.$index(0).get$value(); |
17451 } | 17450 } |
17452 } | 17451 } |
17453 } | 17452 } |
17454 lang_Parser.prototype._typeAsIdentifier = function(type) { | 17453 Parser.prototype._typeAsIdentifier = function(type) { |
17455 return type.get$name(); | 17454 return type.get$name(); |
17456 } | 17455 } |
17457 lang_Parser.prototype._specialIdentifier = function(includeOperators) { | 17456 Parser.prototype._specialIdentifier = function(includeOperators) { |
17458 var start = this._peekToken.start; | 17457 var start = this._peekToken.start; |
17459 var name; | 17458 var name; |
17460 switch (this._peek()) { | 17459 switch (this._peek()) { |
17461 case 15/*TokenKind.ELLIPSIS*/: | 17460 case 15/*TokenKind.ELLIPSIS*/: |
17462 | 17461 |
17463 this._eat(15/*TokenKind.ELLIPSIS*/); | 17462 this._eat(15/*TokenKind.ELLIPSIS*/); |
17464 this._lang_error('rest no longer supported', this._previousToken.get$span(
)); | 17463 this._lang_error('rest no longer supported', this._previousToken.get$span(
)); |
17465 name = $assert_String(this.identifier().get$name()); | 17464 name = $assert_String(this.identifier().get$name()); |
17466 break; | 17465 break; |
17467 | 17466 |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
17514 this._lang_next(); | 17513 this._lang_next(); |
17515 } | 17514 } |
17516 } | 17515 } |
17517 break; | 17516 break; |
17518 | 17517 |
17519 default: | 17518 default: |
17520 | 17519 |
17521 return null; | 17520 return null; |
17522 | 17521 |
17523 } | 17522 } |
17524 return new lang_Identifier(name, this._makeSpan(start)); | 17523 return new Identifier(name, this._makeSpan(start)); |
17525 } | 17524 } |
17526 lang_Parser.prototype.declaredIdentifier = function(includeOperators) { | 17525 Parser.prototype.declaredIdentifier = function(includeOperators) { |
17527 var start = this._peekToken.start; | 17526 var start = this._peekToken.start; |
17528 var myType = null; | 17527 var myType = null; |
17529 var name = this._specialIdentifier(includeOperators); | 17528 var name = this._specialIdentifier(includeOperators); |
17530 if (name == null) { | 17529 if (name == null) { |
17531 myType = this.type(0); | 17530 myType = this.type(0); |
17532 name = this._specialIdentifier(includeOperators); | 17531 name = this._specialIdentifier(includeOperators); |
17533 if (name == null) { | 17532 if (name == null) { |
17534 if ($notnull_bool(this._peekIdentifier())) { | 17533 if ($notnull_bool(this._peekIdentifier())) { |
17535 name = this.identifier(); | 17534 name = this.identifier(); |
17536 } | 17535 } |
17537 else if ((myType instanceof NameTypeReference) && $notnull_bool(myType.nam
es == null)) { | 17536 else if ((myType instanceof NameTypeReference) && $notnull_bool(myType.nam
es == null)) { |
17538 name = this._typeAsIdentifier(myType); | 17537 name = this._typeAsIdentifier(myType); |
17539 myType = null; | 17538 myType = null; |
17540 } | 17539 } |
17541 else { | 17540 else { |
17542 } | 17541 } |
17543 } | 17542 } |
17544 } | 17543 } |
17545 return new DeclaredIdentifier(myType, name, this._makeSpan(start)); | 17544 return new DeclaredIdentifier(myType, name, this._makeSpan(start)); |
17546 } | 17545 } |
17547 lang_Parser._hexDigit = function(c) { | 17546 Parser._hexDigit = function(c) { |
17548 if (c >= 48 && c <= 57) { | 17547 if (c >= 48 && c <= 57) { |
17549 return c - 48; | 17548 return c - 48; |
17550 } | 17549 } |
17551 else if (c >= 97 && c <= 102) { | 17550 else if (c >= 97 && c <= 102) { |
17552 return c - 87; | 17551 return c - 87; |
17553 } | 17552 } |
17554 else if (c >= 65 && c <= 70) { | 17553 else if (c >= 65 && c <= 70) { |
17555 return c - 55; | 17554 return c - 55; |
17556 } | 17555 } |
17557 else { | 17556 else { |
17558 return -1; | 17557 return -1; |
17559 } | 17558 } |
17560 } | 17559 } |
17561 lang_Parser.parseHex = function(hex) { | 17560 Parser.parseHex = function(hex) { |
17562 var result = 0; | 17561 var result = 0; |
17563 for (var i = 0; | 17562 for (var i = 0; |
17564 i < hex.length; i++) { | 17563 i < hex.length; i++) { |
17565 var digit = lang_Parser._hexDigit(hex.charCodeAt(i)); | 17564 var digit = Parser._hexDigit(hex.charCodeAt(i)); |
17566 $assert($ne(digit, -1), "digit != -1", "parser.dart", 1261, 14); | 17565 $assert($ne(digit, -1), "digit != -1", "parser.dart", 1261, 14); |
17567 result = (result << 4) + $assert_num(digit); | 17566 result = (result << 4) + $assert_num(digit); |
17568 } | 17567 } |
17569 return $assert_num(result); | 17568 return $assert_num(result); |
17570 } | 17569 } |
17571 lang_Parser.prototype.finishNewExpression = function(start, isConst) { | 17570 Parser.prototype.finishNewExpression = function(start, isConst) { |
17572 var type = this.type(0); | 17571 var type = this.type(0); |
17573 var name = null; | 17572 var name = null; |
17574 if ($notnull_bool(this._maybeEat(14/*TokenKind.DOT*/))) { | 17573 if ($notnull_bool(this._maybeEat(14/*TokenKind.DOT*/))) { |
17575 name = this.identifier(); | 17574 name = this.identifier(); |
17576 } | 17575 } |
17577 var args = this.arguments(); | 17576 var args = this.arguments(); |
17578 return new lang_NewExpression(isConst, type, name, args, this._makeSpan(start)
); | 17577 return new NewExpression(isConst, type, name, args, this._makeSpan(start)); |
17579 } | 17578 } |
17580 lang_Parser.prototype.finishListLiteral = function(start, isConst, type) { | 17579 Parser.prototype.finishListLiteral = function(start, isConst, type) { |
17581 if ($notnull_bool(this._maybeEat(56/*TokenKind.INDEX*/))) { | 17580 if ($notnull_bool(this._maybeEat(56/*TokenKind.INDEX*/))) { |
17582 return new ListExpression(isConst, type, [], this._makeSpan(start)); | 17581 return new ListExpression(isConst, type, [], this._makeSpan(start)); |
17583 } | 17582 } |
17584 var values = []; | 17583 var values = []; |
17585 this._eat(4/*TokenKind.LBRACK*/); | 17584 this._eat(4/*TokenKind.LBRACK*/); |
17586 while (!$notnull_bool(this._maybeEat(5/*TokenKind.RBRACK*/))) { | 17585 while (!$notnull_bool(this._maybeEat(5/*TokenKind.RBRACK*/))) { |
17587 if ($notnull_bool(this.isPrematureEndOfFile())) break; | 17586 if ($notnull_bool(this.isPrematureEndOfFile())) break; |
17588 values.add$1(this.expression()); | 17587 values.add$1(this.expression()); |
17589 if (!$notnull_bool(this._maybeEat(11/*TokenKind.COMMA*/))) { | 17588 if (!$notnull_bool(this._maybeEat(11/*TokenKind.COMMA*/))) { |
17590 this._eat(5/*TokenKind.RBRACK*/); | 17589 this._eat(5/*TokenKind.RBRACK*/); |
17591 break; | 17590 break; |
17592 } | 17591 } |
17593 } | 17592 } |
17594 return new ListExpression(isConst, type, values, this._makeSpan(start)); | 17593 return new ListExpression(isConst, type, values, this._makeSpan(start)); |
17595 } | 17594 } |
17596 lang_Parser.prototype.finishMapLiteral = function(start, isConst, type) { | 17595 Parser.prototype.finishMapLiteral = function(start, isConst, type) { |
17597 var items = []; | 17596 var items = []; |
17598 this._eat(6/*TokenKind.LBRACE*/); | 17597 this._eat(6/*TokenKind.LBRACE*/); |
17599 while (!$notnull_bool(this._maybeEat(7/*TokenKind.RBRACE*/))) { | 17598 while (!$notnull_bool(this._maybeEat(7/*TokenKind.RBRACE*/))) { |
17600 if ($notnull_bool(this.isPrematureEndOfFile())) break; | 17599 if ($notnull_bool(this.isPrematureEndOfFile())) break; |
17601 items.add$1(this.expression()); | 17600 items.add$1(this.expression()); |
17602 this._eat(8/*TokenKind.COLON*/); | 17601 this._eat(8/*TokenKind.COLON*/); |
17603 items.add$1(this.expression()); | 17602 items.add$1(this.expression()); |
17604 if (!$notnull_bool(this._maybeEat(11/*TokenKind.COMMA*/))) { | 17603 if (!$notnull_bool(this._maybeEat(11/*TokenKind.COMMA*/))) { |
17605 this._eat(7/*TokenKind.RBRACE*/); | 17604 this._eat(7/*TokenKind.RBRACE*/); |
17606 break; | 17605 break; |
17607 } | 17606 } |
17608 } | 17607 } |
17609 return new MapExpression(isConst, type, items, this._makeSpan(start)); | 17608 return new MapExpression(isConst, type, items, this._makeSpan(start)); |
17610 } | 17609 } |
17611 lang_Parser.prototype.finishTypedLiteral = function(start, isConst) { | 17610 Parser.prototype.finishTypedLiteral = function(start, isConst) { |
17612 var span = this._makeSpan(start); | 17611 var span = this._makeSpan(start); |
17613 var typeToBeNamedLater = new NameTypeReference(false, null, null, (span && spa
n.is$SourceSpan())); | 17612 var typeToBeNamedLater = new NameTypeReference(false, null, null, (span && spa
n.is$SourceSpan())); |
17614 var genericType = this.addTypeArguments((typeToBeNamedLater && typeToBeNamedLa
ter.is$TypeReference()), 0); | 17613 var genericType = this.addTypeArguments((typeToBeNamedLater && typeToBeNamedLa
ter.is$TypeReference()), 0); |
17615 if ($notnull_bool(this._peekKind(4/*TokenKind.LBRACK*/)) || $notnull_bool(this
._peekKind(56/*TokenKind.INDEX*/))) { | 17614 if ($notnull_bool(this._peekKind(4/*TokenKind.LBRACK*/)) || $notnull_bool(this
._peekKind(56/*TokenKind.INDEX*/))) { |
17616 return this.finishListLiteral(start, isConst, (genericType && genericType.is
$TypeReference())); | 17615 return this.finishListLiteral(start, isConst, (genericType && genericType.is
$TypeReference())); |
17617 } | 17616 } |
17618 else if ($notnull_bool(this._peekKind(6/*TokenKind.LBRACE*/))) { | 17617 else if ($notnull_bool(this._peekKind(6/*TokenKind.LBRACE*/))) { |
17619 return this.finishMapLiteral(start, isConst, (genericType && genericType.is$
TypeReference())); | 17618 return this.finishMapLiteral(start, isConst, (genericType && genericType.is$
TypeReference())); |
17620 } | 17619 } |
17621 else { | 17620 else { |
17622 this._errorExpected('array or map literal'); | 17621 this._errorExpected('array or map literal'); |
17623 } | 17622 } |
17624 } | 17623 } |
17625 lang_Parser.prototype._readModifiers = function() { | 17624 Parser.prototype._readModifiers = function() { |
17626 var modifiers = null; | 17625 var modifiers = null; |
17627 while (true) { | 17626 while (true) { |
17628 switch (this._peek()) { | 17627 switch (this._peek()) { |
17629 case 86/*TokenKind.STATIC*/: | 17628 case 86/*TokenKind.STATIC*/: |
17630 case 97/*TokenKind.FINAL*/: | 17629 case 97/*TokenKind.FINAL*/: |
17631 case 91/*TokenKind.CONST*/: | 17630 case 91/*TokenKind.CONST*/: |
17632 case 71/*TokenKind.ABSTRACT*/: | 17631 case 71/*TokenKind.ABSTRACT*/: |
17633 case 75/*TokenKind.FACTORY*/: | 17632 case 75/*TokenKind.FACTORY*/: |
17634 | 17633 |
17635 if (modifiers == null) modifiers = []; | 17634 if (modifiers == null) modifiers = []; |
17636 modifiers.add$1(this._lang_next()); | 17635 modifiers.add$1(this._lang_next()); |
17637 break; | 17636 break; |
17638 | 17637 |
17639 default: | 17638 default: |
17640 | 17639 |
17641 return modifiers; | 17640 return modifiers; |
17642 | 17641 |
17643 } | 17642 } |
17644 } | 17643 } |
17645 return null; | 17644 return null; |
17646 } | 17645 } |
17647 lang_Parser.prototype.typeParameter = function() { | 17646 Parser.prototype.typeParameter = function() { |
17648 var start = this._peekToken.start; | 17647 var start = this._peekToken.start; |
17649 var name = this.identifier(); | 17648 var name = this.identifier(); |
17650 var myType = null; | 17649 var myType = null; |
17651 if ($notnull_bool(this._maybeEat(74/*TokenKind.EXTENDS*/))) { | 17650 if ($notnull_bool(this._maybeEat(74/*TokenKind.EXTENDS*/))) { |
17652 myType = this.type(1); | 17651 myType = this.type(1); |
17653 } | 17652 } |
17654 return new TypeParameter(name, myType, this._makeSpan(start)); | 17653 return new TypeParameter(name, myType, this._makeSpan(start)); |
17655 } | 17654 } |
17656 lang_Parser.prototype.typeParameters = function() { | 17655 Parser.prototype.typeParameters = function() { |
17657 this._eat(52/*TokenKind.LT*/); | 17656 this._eat(52/*TokenKind.LT*/); |
17658 var closed = false; | 17657 var closed = false; |
17659 var ret = []; | 17658 var ret = []; |
17660 do { | 17659 do { |
17661 var tp = this.typeParameter(); | 17660 var tp = this.typeParameter(); |
17662 ret.add$1(tp); | 17661 ret.add$1(tp); |
17663 if ((tp.extendsType instanceof GenericTypeReference) && tp.extendsType.depth
== 0) { | 17662 if ((tp.extendsType instanceof GenericTypeReference) && tp.extendsType.depth
== 0) { |
17664 closed = true; | 17663 closed = true; |
17665 break; | 17664 break; |
17666 } | 17665 } |
17667 } | 17666 } |
17668 while ($notnull_bool(this._maybeEat(11/*TokenKind.COMMA*/))) | 17667 while ($notnull_bool(this._maybeEat(11/*TokenKind.COMMA*/))) |
17669 if (!$notnull_bool(closed)) { | 17668 if (!$notnull_bool(closed)) { |
17670 this._eat(53/*TokenKind.GT*/); | 17669 this._eat(53/*TokenKind.GT*/); |
17671 } | 17670 } |
17672 return ret; | 17671 return ret; |
17673 } | 17672 } |
17674 lang_Parser.prototype.get$typeParameters = function() { | 17673 Parser.prototype.get$typeParameters = function() { |
17675 return lang_Parser.prototype.typeParameters.bind(this); | 17674 return Parser.prototype.typeParameters.bind(this); |
17676 } | 17675 } |
17677 lang_Parser.prototype._eatClosingAngle = function(depth) { | 17676 Parser.prototype._eatClosingAngle = function(depth) { |
17678 if ($notnull_bool(this._maybeEat(53/*TokenKind.GT*/))) { | 17677 if ($notnull_bool(this._maybeEat(53/*TokenKind.GT*/))) { |
17679 return depth; | 17678 return depth; |
17680 } | 17679 } |
17681 else if (depth > 0 && $notnull_bool(this._maybeEat(40/*TokenKind.SAR*/))) { | 17680 else if (depth > 0 && $notnull_bool(this._maybeEat(40/*TokenKind.SAR*/))) { |
17682 return depth - 1; | 17681 return depth - 1; |
17683 } | 17682 } |
17684 else if (depth > 1 && $notnull_bool(this._maybeEat(41/*TokenKind.SHR*/))) { | 17683 else if (depth > 1 && $notnull_bool(this._maybeEat(41/*TokenKind.SHR*/))) { |
17685 return depth - 2; | 17684 return depth - 2; |
17686 } | 17685 } |
17687 else { | 17686 else { |
17688 this._errorExpected('>'); | 17687 this._errorExpected('>'); |
17689 return depth; | 17688 return depth; |
17690 } | 17689 } |
17691 } | 17690 } |
17692 lang_Parser.prototype.addTypeArguments = function(baseType, depth) { | 17691 Parser.prototype.addTypeArguments = function(baseType, depth) { |
17693 this._eat(52/*TokenKind.LT*/); | 17692 this._eat(52/*TokenKind.LT*/); |
17694 return this._finishTypeArguments(baseType, depth, []); | 17693 return this._finishTypeArguments(baseType, depth, []); |
17695 } | 17694 } |
17696 lang_Parser.prototype._finishTypeArguments = function(baseType, depth, types) { | 17695 Parser.prototype._finishTypeArguments = function(baseType, depth, types) { |
17697 var delta = -1; | 17696 var delta = -1; |
17698 do { | 17697 do { |
17699 var myType = this.type(depth + 1); | 17698 var myType = this.type(depth + 1); |
17700 types.add$1(myType); | 17699 types.add$1(myType); |
17701 if ((myType instanceof GenericTypeReference) && myType.depth <= depth) { | 17700 if ((myType instanceof GenericTypeReference) && myType.depth <= depth) { |
17702 delta = depth - myType.depth; | 17701 delta = depth - myType.depth; |
17703 break; | 17702 break; |
17704 } | 17703 } |
17705 } | 17704 } |
17706 while ($notnull_bool(this._maybeEat(11/*TokenKind.COMMA*/))) | 17705 while ($notnull_bool(this._maybeEat(11/*TokenKind.COMMA*/))) |
17707 if (delta >= 0) { | 17706 if (delta >= 0) { |
17708 depth -= $assert_num(delta); | 17707 depth -= $assert_num(delta); |
17709 } | 17708 } |
17710 else { | 17709 else { |
17711 depth = this._eatClosingAngle(depth); | 17710 depth = this._eatClosingAngle(depth); |
17712 } | 17711 } |
17713 var span = this._makeSpan(baseType.span.start); | 17712 var span = this._makeSpan(baseType.span.start); |
17714 return new GenericTypeReference(baseType, types, depth, (span && span.is$Sourc
eSpan())); | 17713 return new GenericTypeReference(baseType, types, depth, (span && span.is$Sourc
eSpan())); |
17715 } | 17714 } |
17716 lang_Parser.prototype.typeList = function() { | 17715 Parser.prototype.typeList = function() { |
17717 var types = []; | 17716 var types = []; |
17718 do { | 17717 do { |
17719 types.add$1(this.type(0)); | 17718 types.add$1(this.type(0)); |
17720 } | 17719 } |
17721 while ($notnull_bool(this._maybeEat(11/*TokenKind.COMMA*/))) | 17720 while ($notnull_bool(this._maybeEat(11/*TokenKind.COMMA*/))) |
17722 return types; | 17721 return types; |
17723 } | 17722 } |
17724 lang_Parser.prototype.type = function(depth) { | 17723 Parser.prototype.type = function(depth) { |
17725 var start = this._peekToken.start; | 17724 var start = this._peekToken.start; |
17726 var name; | 17725 var name; |
17727 var names = null; | 17726 var names = null; |
17728 var typeArgs = null; | 17727 var typeArgs = null; |
17729 var isFinal = false; | 17728 var isFinal = false; |
17730 switch (this._peek()) { | 17729 switch (this._peek()) { |
17731 case 113/*TokenKind.VOID*/: | 17730 case 113/*TokenKind.VOID*/: |
17732 | 17731 |
17733 return new TypeReference(this._lang_next().get$span(), world.voidType); | 17732 return new TypeReference(this._lang_next().get$span(), world.voidType); |
17734 | 17733 |
(...skipping 19 matching lines...) Expand all Loading... |
17754 names.add$1(this.identifier()); | 17753 names.add$1(this.identifier()); |
17755 } | 17754 } |
17756 var typeRef = new NameTypeReference(isFinal, name, names, this._makeSpan(start
)); | 17755 var typeRef = new NameTypeReference(isFinal, name, names, this._makeSpan(start
)); |
17757 if ($notnull_bool(this._peekKind(52/*TokenKind.LT*/))) { | 17756 if ($notnull_bool(this._peekKind(52/*TokenKind.LT*/))) { |
17758 return this.addTypeArguments((typeRef && typeRef.is$TypeReference()), depth)
; | 17757 return this.addTypeArguments((typeRef && typeRef.is$TypeReference()), depth)
; |
17759 } | 17758 } |
17760 else { | 17759 else { |
17761 return typeRef; | 17760 return typeRef; |
17762 } | 17761 } |
17763 } | 17762 } |
17764 lang_Parser.prototype.get$type = function() { | 17763 Parser.prototype.get$type = function() { |
17765 return lang_Parser.prototype.type.bind(this); | 17764 return Parser.prototype.type.bind(this); |
17766 } | 17765 } |
17767 lang_Parser.prototype.formalParameter = function(inOptionalBlock) { | 17766 Parser.prototype.formalParameter = function(inOptionalBlock) { |
17768 var start = this._peekToken.start; | 17767 var start = this._peekToken.start; |
17769 var isThis = false; | 17768 var isThis = false; |
17770 var isRest = false; | 17769 var isRest = false; |
17771 var di = this.declaredIdentifier(false); | 17770 var di = this.declaredIdentifier(false); |
17772 var type = di.type; | 17771 var type = di.type; |
17773 var name = di.get$name(); | 17772 var name = di.get$name(); |
17774 var value = null; | 17773 var value = null; |
17775 if ($notnull_bool(this._maybeEat(20/*TokenKind.ASSIGN*/))) { | 17774 if ($notnull_bool(this._maybeEat(20/*TokenKind.ASSIGN*/))) { |
17776 if (!$notnull_bool(inOptionalBlock)) { | 17775 if (!$notnull_bool(inOptionalBlock)) { |
17777 this._lang_error('default values only allowed inside [optional] section'); | 17776 this._lang_error('default values only allowed inside [optional] section'); |
17778 } | 17777 } |
17779 value = this.expression(); | 17778 value = this.expression(); |
17780 } | 17779 } |
17781 else if ($notnull_bool(this._peekKind(2/*TokenKind.LPAREN*/))) { | 17780 else if ($notnull_bool(this._peekKind(2/*TokenKind.LPAREN*/))) { |
17782 var formals = this.formalParameterList(); | 17781 var formals = this.formalParameterList(); |
17783 var func = new FunctionDefinition(null, type, name, formals, null, null, thi
s._makeSpan(start)); | 17782 var func = new FunctionDefinition(null, type, name, formals, null, null, thi
s._makeSpan(start)); |
17784 type = new FunctionTypeReference(false, func, func.get$span()); | 17783 type = new FunctionTypeReference(false, func, func.get$span()); |
17785 } | 17784 } |
17786 if ($notnull_bool(inOptionalBlock) && $notnull_bool(value == null)) { | 17785 if ($notnull_bool(inOptionalBlock) && $notnull_bool(value == null)) { |
17787 value = new NullExpression(this._makeSpan(start)); | 17786 value = new NullExpression(this._makeSpan(start)); |
17788 } | 17787 } |
17789 return new FormalNode(isThis, isRest, type, name, value, this._makeSpan(start)
); | 17788 return new FormalNode(isThis, isRest, type, name, value, this._makeSpan(start)
); |
17790 } | 17789 } |
17791 lang_Parser.prototype.formalParameterList = function() { | 17790 Parser.prototype.formalParameterList = function() { |
17792 this._eat(2/*TokenKind.LPAREN*/); | 17791 this._eat(2/*TokenKind.LPAREN*/); |
17793 var formals = []; | 17792 var formals = []; |
17794 var inOptionalBlock = false; | 17793 var inOptionalBlock = false; |
17795 if (!$notnull_bool(this._maybeEat(3/*TokenKind.RPAREN*/))) { | 17794 if (!$notnull_bool(this._maybeEat(3/*TokenKind.RPAREN*/))) { |
17796 if ($notnull_bool(this._maybeEat(4/*TokenKind.LBRACK*/))) { | 17795 if ($notnull_bool(this._maybeEat(4/*TokenKind.LBRACK*/))) { |
17797 inOptionalBlock = true; | 17796 inOptionalBlock = true; |
17798 } | 17797 } |
17799 formals.add$1(this.formalParameter($assert_bool(inOptionalBlock))); | 17798 formals.add$1(this.formalParameter($assert_bool(inOptionalBlock))); |
17800 while ($notnull_bool(this._maybeEat(11/*TokenKind.COMMA*/))) { | 17799 while ($notnull_bool(this._maybeEat(11/*TokenKind.COMMA*/))) { |
17801 if ($notnull_bool(this._maybeEat(4/*TokenKind.LBRACK*/))) { | 17800 if ($notnull_bool(this._maybeEat(4/*TokenKind.LBRACK*/))) { |
17802 if ($notnull_bool(inOptionalBlock)) { | 17801 if ($notnull_bool(inOptionalBlock)) { |
17803 this._lang_error('already inside an optional block', this._previousTok
en.get$span()); | 17802 this._lang_error('already inside an optional block', this._previousTok
en.get$span()); |
17804 } | 17803 } |
17805 inOptionalBlock = true; | 17804 inOptionalBlock = true; |
17806 } | 17805 } |
17807 formals.add$1(this.formalParameter($assert_bool(inOptionalBlock))); | 17806 formals.add$1(this.formalParameter($assert_bool(inOptionalBlock))); |
17808 } | 17807 } |
17809 if ($notnull_bool(inOptionalBlock)) { | 17808 if ($notnull_bool(inOptionalBlock)) { |
17810 this._eat(5/*TokenKind.RBRACK*/); | 17809 this._eat(5/*TokenKind.RBRACK*/); |
17811 } | 17810 } |
17812 this._eat(3/*TokenKind.RPAREN*/); | 17811 this._eat(3/*TokenKind.RPAREN*/); |
17813 } | 17812 } |
17814 return formals; | 17813 return formals; |
17815 } | 17814 } |
17816 lang_Parser.prototype.identifier = function() { | 17815 Parser.prototype.identifier = function() { |
17817 var tok = this._lang_next(); | 17816 var tok = this._lang_next(); |
17818 if (!$notnull_bool(TokenKind.isIdentifier($assert_num(tok.kind)))) { | 17817 if (!$notnull_bool(TokenKind.isIdentifier($assert_num(tok.kind)))) { |
17819 this._lang_error(('expected identifier, but found ' + tok + ''), tok.get$spa
n()); | 17818 this._lang_error(('expected identifier, but found ' + tok + ''), tok.get$spa
n()); |
17820 } | 17819 } |
17821 return new lang_Identifier(tok.get$text(), this._makeSpan(tok.start)); | 17820 return new Identifier(tok.get$text(), this._makeSpan(tok.start)); |
17822 } | 17821 } |
17823 lang_Parser.prototype._makeFunction = function(expr, body) { | 17822 Parser.prototype._makeFunction = function(expr, body) { |
17824 var name, type; | 17823 var name, type; |
17825 if ((expr instanceof CallExpression)) { | 17824 if ((expr instanceof CallExpression)) { |
17826 if ((expr.target instanceof VarExpression)) { | 17825 if ((expr.target instanceof VarExpression)) { |
17827 name = expr.target.get$name(); | 17826 name = expr.target.get$name(); |
17828 type = null; | 17827 type = null; |
17829 } | 17828 } |
17830 else if ((expr.target instanceof DeclaredIdentifier)) { | 17829 else if ((expr.target instanceof DeclaredIdentifier)) { |
17831 name = expr.target.get$name(); | 17830 name = expr.target.get$name(); |
17832 type = expr.target.type; | 17831 type = expr.target.type; |
17833 } | 17832 } |
17834 else { | 17833 else { |
17835 this._lang_error('bad function'); | 17834 this._lang_error('bad function'); |
17836 } | 17835 } |
17837 var formals = this._makeFormals(expr.get$arguments()); | 17836 var formals = this._makeFormals(expr.get$arguments()); |
17838 var span = new SourceSpan(expr.get$span().file, expr.get$span().start, body.
get$span().end); | 17837 var span = new SourceSpan(expr.get$span().file, expr.get$span().start, body.
get$span().end); |
17839 var func = new FunctionDefinition(null, type, name, formals, null, body, (sp
an && span.is$SourceSpan())); | 17838 var func = new FunctionDefinition(null, type, name, formals, null, body, (sp
an && span.is$SourceSpan())); |
17840 return new LambdaExpression(func, func.get$span()); | 17839 return new LambdaExpression(func, func.get$span()); |
17841 } | 17840 } |
17842 else { | 17841 else { |
17843 this._lang_error('expected function'); | 17842 this._lang_error('expected function'); |
17844 } | 17843 } |
17845 } | 17844 } |
17846 lang_Parser.prototype._makeFormal = function(expr) { | 17845 Parser.prototype._makeFormal = function(expr) { |
17847 var $0; | 17846 var $0; |
17848 if ((expr instanceof VarExpression)) { | 17847 if ((expr instanceof VarExpression)) { |
17849 return new FormalNode(false, false, null, expr.get$name(), null, expr.get$sp
an()); | 17848 return new FormalNode(false, false, null, expr.get$name(), null, expr.get$sp
an()); |
17850 } | 17849 } |
17851 else if ((expr instanceof DeclaredIdentifier)) { | 17850 else if ((expr instanceof DeclaredIdentifier)) { |
17852 return new FormalNode(false, false, expr.type, expr.get$name(), null, expr.g
et$span()); | 17851 return new FormalNode(false, false, expr.type, expr.get$name(), null, expr.g
et$span()); |
17853 } | 17852 } |
17854 else if ($notnull_bool(this._isBin(expr, 20/*TokenKind.ASSIGN*/)) && ((expr.x
instanceof DeclaredIdentifier))) { | 17853 else if ($notnull_bool(this._isBin(expr, 20/*TokenKind.ASSIGN*/)) && ((expr.x
instanceof DeclaredIdentifier))) { |
17855 var di = (($0 = expr.x) && $0.is$DeclaredIdentifier()); | 17854 var di = (($0 = expr.x) && $0.is$DeclaredIdentifier()); |
17856 return new FormalNode(false, false, di.type, di.name, expr.y, expr.get$span(
)); | 17855 return new FormalNode(false, false, di.type, di.name, expr.y, expr.get$span(
)); |
17857 } | 17856 } |
17858 else if ($notnull_bool(this._isBin(expr, 52/*TokenKind.LT*/))) { | 17857 else if ($notnull_bool(this._isBin(expr, 52/*TokenKind.LT*/))) { |
17859 return null; | 17858 return null; |
17860 } | 17859 } |
17861 else if ((expr instanceof ListExpression)) { | 17860 else if ((expr instanceof ListExpression)) { |
17862 return this._makeFormalsFromList(expr); | 17861 return this._makeFormalsFromList(expr); |
17863 } | 17862 } |
17864 else { | 17863 else { |
17865 this._lang_error('expected formal', expr.get$span()); | 17864 this._lang_error('expected formal', expr.get$span()); |
17866 } | 17865 } |
17867 } | 17866 } |
17868 lang_Parser.prototype._makeFormalsFromList = function(expr) { | 17867 Parser.prototype._makeFormalsFromList = function(expr) { |
17869 if ($notnull_bool(expr.get$isConst())) { | 17868 if ($notnull_bool(expr.get$isConst())) { |
17870 this._lang_error('expected formal, but found "const"', expr.get$span()); | 17869 this._lang_error('expected formal, but found "const"', expr.get$span()); |
17871 } | 17870 } |
17872 else if ($notnull_bool($ne(expr.type, null))) { | 17871 else if ($notnull_bool($ne(expr.type, null))) { |
17873 this._lang_error('expected formal, but found generic type arguments', expr.t
ype.get$span()); | 17872 this._lang_error('expected formal, but found generic type arguments', expr.t
ype.get$span()); |
17874 } | 17873 } |
17875 return this._makeFormalsFromExpressions(expr.values, false); | 17874 return this._makeFormalsFromExpressions(expr.values, false); |
17876 } | 17875 } |
17877 lang_Parser.prototype._makeFormals = function(arguments) { | 17876 Parser.prototype._makeFormals = function(arguments) { |
17878 var expressions = []; | 17877 var expressions = []; |
17879 for (var i = 0; | 17878 for (var i = 0; |
17880 i < arguments.length; i++) { | 17879 i < arguments.length; i++) { |
17881 var arg = arguments.$index(i); | 17880 var arg = arguments.$index(i); |
17882 if (arg.label != null) { | 17881 if (arg.label != null) { |
17883 this._lang_error('expected formal, but found ":"'); | 17882 this._lang_error('expected formal, but found ":"'); |
17884 } | 17883 } |
17885 expressions.add$1(arg.get$value()); | 17884 expressions.add$1(arg.get$value()); |
17886 } | 17885 } |
17887 return this._makeFormalsFromExpressions(expressions, true); | 17886 return this._makeFormalsFromExpressions(expressions, true); |
17888 } | 17887 } |
17889 lang_Parser.prototype._makeFormalsFromExpressions = function(expressions, allowO
ptional) { | 17888 Parser.prototype._makeFormalsFromExpressions = function(expressions, allowOption
al) { |
17890 var $0; | 17889 var $0; |
17891 var formals = []; | 17890 var formals = []; |
17892 for (var i = 0; | 17891 for (var i = 0; |
17893 i < expressions.length; i++) { | 17892 i < expressions.length; i++) { |
17894 var formal = this._makeFormal(expressions.$index(i)); | 17893 var formal = this._makeFormal(expressions.$index(i)); |
17895 if ($notnull_bool(formal == null)) { | 17894 if ($notnull_bool(formal == null)) { |
17896 var baseType = this._makeType(expressions.$index(i).x); | 17895 var baseType = this._makeType(expressions.$index(i).x); |
17897 var typeParams = [this._makeType(expressions.$index(i).y)]; | 17896 var typeParams = [this._makeType(expressions.$index(i).y)]; |
17898 i++; | 17897 i++; |
17899 while (i < expressions.length) { | 17898 while (i < expressions.length) { |
(...skipping 23 matching lines...) Expand all Loading... |
17923 if (!$notnull_bool(allowOptional)) { | 17922 if (!$notnull_bool(allowOptional)) { |
17924 this._lang_error('unexpected nested optional formal', expressions.$index
(i).get$span()); | 17923 this._lang_error('unexpected nested optional formal', expressions.$index
(i).get$span()); |
17925 } | 17924 } |
17926 } | 17925 } |
17927 else { | 17926 else { |
17928 formals.add$1(formal); | 17927 formals.add$1(formal); |
17929 } | 17928 } |
17930 } | 17929 } |
17931 return formals; | 17930 return formals; |
17932 } | 17931 } |
17933 lang_Parser.prototype._makeDeclaredIdentifier = function(e) { | 17932 Parser.prototype._makeDeclaredIdentifier = function(e) { |
17934 if ((e instanceof VarExpression)) { | 17933 if ((e instanceof VarExpression)) { |
17935 return new DeclaredIdentifier(null, e.get$name(), e.get$span()); | 17934 return new DeclaredIdentifier(null, e.get$name(), e.get$span()); |
17936 } | 17935 } |
17937 else if ((e instanceof DeclaredIdentifier)) { | 17936 else if ((e instanceof DeclaredIdentifier)) { |
17938 return e; | 17937 return e; |
17939 } | 17938 } |
17940 else { | 17939 else { |
17941 this._lang_error('expected declared identifier'); | 17940 this._lang_error('expected declared identifier'); |
17942 return new DeclaredIdentifier(null, null, e.get$span()); | 17941 return new DeclaredIdentifier(null, null, e.get$span()); |
17943 } | 17942 } |
17944 } | 17943 } |
17945 lang_Parser.prototype._makeLabel = function(expr) { | 17944 Parser.prototype._makeLabel = function(expr) { |
17946 if ((expr instanceof VarExpression)) { | 17945 if ((expr instanceof VarExpression)) { |
17947 return expr.get$name(); | 17946 return expr.get$name(); |
17948 } | 17947 } |
17949 else { | 17948 else { |
17950 this._errorExpected('label'); | 17949 this._errorExpected('label'); |
17951 return null; | 17950 return null; |
17952 } | 17951 } |
17953 } | 17952 } |
17954 lang_Parser.prototype.block$0 = function() { | 17953 Parser.prototype.block$0 = function() { |
17955 return this.block(); | 17954 return this.block(); |
17956 }; | 17955 }; |
17957 // ********** Code for IncompleteSourceException ************** | 17956 // ********** Code for IncompleteSourceException ************** |
17958 function IncompleteSourceException(token) { | 17957 function IncompleteSourceException(token) { |
17959 this.token = token; | 17958 this.token = token; |
17960 // Initializers done | 17959 // Initializers done |
17961 } | 17960 } |
17962 IncompleteSourceException.prototype.toString = function() { | 17961 IncompleteSourceException.prototype.toString = function() { |
17963 if (this.token.get$span() == null) return ('Unexpected ' + this.token + ''); | 17962 if (this.token.get$span() == null) return ('Unexpected ' + this.token + ''); |
17964 return $assert_String(this.token.get$span().toMessageString(('Unexpected ' + t
his.token + ''))); | 17963 return $assert_String(this.token.get$span().toMessageString(('Unexpected ' + t
his.token + ''))); |
17965 } | 17964 } |
17966 IncompleteSourceException.prototype.toString$0 = function() { | 17965 IncompleteSourceException.prototype.toString$0 = function() { |
17967 return this.toString(); | 17966 return this.toString(); |
17968 }; | 17967 }; |
17969 // ********** Code for lang_Node ************** | 17968 // ********** Code for Node ************** |
17970 function lang_Node(span) { | 17969 function Node(span) { |
17971 this.span = span; | 17970 this.span = span; |
17972 // Initializers done | 17971 // Initializers done |
17973 } | 17972 } |
17974 lang_Node.prototype.is$lang_Node = function(){return this;}; | 17973 Node.prototype.is$Node = function(){return this;}; |
17975 lang_Node.prototype.get$span = function() { return this.span; }; | 17974 Node.prototype.get$span = function() { return this.span; }; |
17976 lang_Node.prototype.set$span = function(value) { return this.span = value; }; | 17975 Node.prototype.set$span = function(value) { return this.span = value; }; |
17977 lang_Node.prototype.visit$1 = function($0) { | 17976 Node.prototype.visit$1 = function($0) { |
17978 return this.visit(($0 && $0.is$TreeVisitor())); | 17977 return this.visit(($0 && $0.is$TreeVisitor())); |
17979 }; | 17978 }; |
17980 // ********** Code for Definition ************** | 17979 // ********** Code for Definition ************** |
17981 function Definition(span) { | 17980 function Definition(span) { |
17982 // Initializers done | 17981 // Initializers done |
17983 lang_Statement.call(this, span); | 17982 Statement.call(this, span); |
17984 } | 17983 } |
17985 $inherits(Definition, lang_Statement); | 17984 $inherits(Definition, Statement); |
17986 Definition.prototype.is$Definition = function(){return this;}; | 17985 Definition.prototype.is$Definition = function(){return this;}; |
17987 Definition.prototype.get$typeParameters = function() { | 17986 Definition.prototype.get$typeParameters = function() { |
17988 return null; | 17987 return null; |
17989 } | 17988 } |
17990 Definition.prototype.get$nativeType = function() { | 17989 Definition.prototype.get$nativeType = function() { |
17991 return null; | 17990 return null; |
17992 } | 17991 } |
17993 // ********** Code for lang_Statement ************** | 17992 // ********** Code for Statement ************** |
17994 function lang_Statement(span) { | 17993 function Statement(span) { |
17995 // Initializers done | 17994 // Initializers done |
17996 lang_Node.call(this, span); | 17995 Node.call(this, span); |
17997 } | 17996 } |
17998 $inherits(lang_Statement, lang_Node); | 17997 $inherits(Statement, Node); |
17999 lang_Statement.prototype.is$lang_Statement = function(){return this;}; | 17998 Statement.prototype.is$Statement = function(){return this;}; |
18000 // ********** Code for lang_Expression ************** | 17999 // ********** Code for Expression ************** |
18001 function lang_Expression(span) { | 18000 function Expression(span) { |
18002 // Initializers done | 18001 // Initializers done |
18003 lang_Node.call(this, span); | 18002 Node.call(this, span); |
18004 } | 18003 } |
18005 $inherits(lang_Expression, lang_Node); | 18004 $inherits(Expression, Node); |
18006 lang_Expression.prototype.is$lang_Expression = function(){return this;}; | 18005 Expression.prototype.is$Expression = function(){return this;}; |
18007 // ********** Code for TypeReference ************** | 18006 // ********** Code for TypeReference ************** |
18008 function TypeReference(span, type) { | 18007 function TypeReference(span, type) { |
18009 this.type = type; | 18008 this.type = type; |
18010 // Initializers done | 18009 // Initializers done |
18011 lang_Node.call(this, span); | 18010 Node.call(this, span); |
18012 } | 18011 } |
18013 $inherits(TypeReference, lang_Node); | 18012 $inherits(TypeReference, Node); |
18014 TypeReference.prototype.is$TypeReference = function(){return this;}; | 18013 TypeReference.prototype.is$TypeReference = function(){return this;}; |
18015 TypeReference.prototype.get$type = function() { return this.type; }; | 18014 TypeReference.prototype.get$type = function() { return this.type; }; |
18016 TypeReference.prototype.set$type = function(value) { return this.type = value; }
; | 18015 TypeReference.prototype.set$type = function(value) { return this.type = value; }
; |
18017 TypeReference.prototype.visit = function(visitor) { | 18016 TypeReference.prototype.visit = function(visitor) { |
18018 return visitor.visitTypeReference(this); | 18017 return visitor.visitTypeReference(this); |
18019 } | 18018 } |
18020 TypeReference.prototype.get$isFinal = function() { | 18019 TypeReference.prototype.get$isFinal = function() { |
18021 return false; | 18020 return false; |
18022 } | 18021 } |
18023 TypeReference.prototype.visit$1 = function($0) { | 18022 TypeReference.prototype.visit$1 = function($0) { |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
18124 FunctionDefinition.prototype.visit = function(visitor) { | 18123 FunctionDefinition.prototype.visit = function(visitor) { |
18125 return visitor.visitFunctionDefinition(this); | 18124 return visitor.visitFunctionDefinition(this); |
18126 } | 18125 } |
18127 FunctionDefinition.prototype.visit$1 = function($0) { | 18126 FunctionDefinition.prototype.visit$1 = function($0) { |
18128 return this.visit(($0 && $0.is$TreeVisitor())); | 18127 return this.visit(($0 && $0.is$TreeVisitor())); |
18129 }; | 18128 }; |
18130 // ********** Code for ReturnStatement ************** | 18129 // ********** Code for ReturnStatement ************** |
18131 function ReturnStatement(value, span) { | 18130 function ReturnStatement(value, span) { |
18132 this.value = value; | 18131 this.value = value; |
18133 // Initializers done | 18132 // Initializers done |
18134 lang_Statement.call(this, span); | 18133 Statement.call(this, span); |
18135 } | 18134 } |
18136 $inherits(ReturnStatement, lang_Statement); | 18135 $inherits(ReturnStatement, Statement); |
18137 ReturnStatement.prototype.get$value = function() { return this.value; }; | 18136 ReturnStatement.prototype.get$value = function() { return this.value; }; |
18138 ReturnStatement.prototype.set$value = function(value) { return this.value = valu
e; }; | 18137 ReturnStatement.prototype.set$value = function(value) { return this.value = valu
e; }; |
18139 ReturnStatement.prototype.visit = function(visitor) { | 18138 ReturnStatement.prototype.visit = function(visitor) { |
18140 return visitor.visitReturnStatement(this); | 18139 return visitor.visitReturnStatement(this); |
18141 } | 18140 } |
18142 ReturnStatement.prototype.visit$1 = function($0) { | 18141 ReturnStatement.prototype.visit$1 = function($0) { |
18143 return this.visit(($0 && $0.is$TreeVisitor())); | 18142 return this.visit(($0 && $0.is$TreeVisitor())); |
18144 }; | 18143 }; |
18145 // ********** Code for ThrowStatement ************** | 18144 // ********** Code for ThrowStatement ************** |
18146 function ThrowStatement(value, span) { | 18145 function ThrowStatement(value, span) { |
18147 this.value = value; | 18146 this.value = value; |
18148 // Initializers done | 18147 // Initializers done |
18149 lang_Statement.call(this, span); | 18148 Statement.call(this, span); |
18150 } | 18149 } |
18151 $inherits(ThrowStatement, lang_Statement); | 18150 $inherits(ThrowStatement, Statement); |
18152 ThrowStatement.prototype.get$value = function() { return this.value; }; | 18151 ThrowStatement.prototype.get$value = function() { return this.value; }; |
18153 ThrowStatement.prototype.set$value = function(value) { return this.value = value
; }; | 18152 ThrowStatement.prototype.set$value = function(value) { return this.value = value
; }; |
18154 ThrowStatement.prototype.visit = function(visitor) { | 18153 ThrowStatement.prototype.visit = function(visitor) { |
18155 return visitor.visitThrowStatement(this); | 18154 return visitor.visitThrowStatement(this); |
18156 } | 18155 } |
18157 ThrowStatement.prototype.visit$1 = function($0) { | 18156 ThrowStatement.prototype.visit$1 = function($0) { |
18158 return this.visit(($0 && $0.is$TreeVisitor())); | 18157 return this.visit(($0 && $0.is$TreeVisitor())); |
18159 }; | 18158 }; |
18160 // ********** Code for AssertStatement ************** | 18159 // ********** Code for AssertStatement ************** |
18161 function AssertStatement(test, span) { | 18160 function AssertStatement(test, span) { |
18162 this.test = test; | 18161 this.test = test; |
18163 // Initializers done | 18162 // Initializers done |
18164 lang_Statement.call(this, span); | 18163 Statement.call(this, span); |
18165 } | 18164 } |
18166 $inherits(AssertStatement, lang_Statement); | 18165 $inherits(AssertStatement, Statement); |
18167 AssertStatement.prototype.visit = function(visitor) { | 18166 AssertStatement.prototype.visit = function(visitor) { |
18168 return visitor.visitAssertStatement(this); | 18167 return visitor.visitAssertStatement(this); |
18169 } | 18168 } |
18170 AssertStatement.prototype.visit$1 = function($0) { | 18169 AssertStatement.prototype.visit$1 = function($0) { |
18171 return this.visit(($0 && $0.is$TreeVisitor())); | 18170 return this.visit(($0 && $0.is$TreeVisitor())); |
18172 }; | 18171 }; |
18173 // ********** Code for BreakStatement ************** | 18172 // ********** Code for BreakStatement ************** |
18174 function BreakStatement(label, span) { | 18173 function BreakStatement(label, span) { |
18175 this.label = label; | 18174 this.label = label; |
18176 // Initializers done | 18175 // Initializers done |
18177 lang_Statement.call(this, span); | 18176 Statement.call(this, span); |
18178 } | 18177 } |
18179 $inherits(BreakStatement, lang_Statement); | 18178 $inherits(BreakStatement, Statement); |
18180 BreakStatement.prototype.visit = function(visitor) { | 18179 BreakStatement.prototype.visit = function(visitor) { |
18181 return visitor.visitBreakStatement(this); | 18180 return visitor.visitBreakStatement(this); |
18182 } | 18181 } |
18183 BreakStatement.prototype.visit$1 = function($0) { | 18182 BreakStatement.prototype.visit$1 = function($0) { |
18184 return this.visit(($0 && $0.is$TreeVisitor())); | 18183 return this.visit(($0 && $0.is$TreeVisitor())); |
18185 }; | 18184 }; |
18186 // ********** Code for ContinueStatement ************** | 18185 // ********** Code for ContinueStatement ************** |
18187 function ContinueStatement(label, span) { | 18186 function ContinueStatement(label, span) { |
18188 this.label = label; | 18187 this.label = label; |
18189 // Initializers done | 18188 // Initializers done |
18190 lang_Statement.call(this, span); | 18189 Statement.call(this, span); |
18191 } | 18190 } |
18192 $inherits(ContinueStatement, lang_Statement); | 18191 $inherits(ContinueStatement, Statement); |
18193 ContinueStatement.prototype.visit = function(visitor) { | 18192 ContinueStatement.prototype.visit = function(visitor) { |
18194 return visitor.visitContinueStatement(this); | 18193 return visitor.visitContinueStatement(this); |
18195 } | 18194 } |
18196 ContinueStatement.prototype.visit$1 = function($0) { | 18195 ContinueStatement.prototype.visit$1 = function($0) { |
18197 return this.visit(($0 && $0.is$TreeVisitor())); | 18196 return this.visit(($0 && $0.is$TreeVisitor())); |
18198 }; | 18197 }; |
18199 // ********** Code for IfStatement ************** | 18198 // ********** Code for IfStatement ************** |
18200 function IfStatement(test, trueBranch, falseBranch, span) { | 18199 function IfStatement(test, trueBranch, falseBranch, span) { |
18201 this.test = test; | 18200 this.test = test; |
18202 this.trueBranch = trueBranch; | 18201 this.trueBranch = trueBranch; |
18203 this.falseBranch = falseBranch; | 18202 this.falseBranch = falseBranch; |
18204 // Initializers done | 18203 // Initializers done |
18205 lang_Statement.call(this, span); | 18204 Statement.call(this, span); |
18206 } | 18205 } |
18207 $inherits(IfStatement, lang_Statement); | 18206 $inherits(IfStatement, Statement); |
18208 IfStatement.prototype.visit = function(visitor) { | 18207 IfStatement.prototype.visit = function(visitor) { |
18209 return visitor.visitIfStatement(this); | 18208 return visitor.visitIfStatement(this); |
18210 } | 18209 } |
18211 IfStatement.prototype.visit$1 = function($0) { | 18210 IfStatement.prototype.visit$1 = function($0) { |
18212 return this.visit(($0 && $0.is$TreeVisitor())); | 18211 return this.visit(($0 && $0.is$TreeVisitor())); |
18213 }; | 18212 }; |
18214 // ********** Code for WhileStatement ************** | 18213 // ********** Code for WhileStatement ************** |
18215 function WhileStatement(test, body, span) { | 18214 function WhileStatement(test, body, span) { |
18216 this.test = test; | 18215 this.test = test; |
18217 this.body = body; | 18216 this.body = body; |
18218 // Initializers done | 18217 // Initializers done |
18219 lang_Statement.call(this, span); | 18218 Statement.call(this, span); |
18220 } | 18219 } |
18221 $inherits(WhileStatement, lang_Statement); | 18220 $inherits(WhileStatement, Statement); |
18222 WhileStatement.prototype.visit = function(visitor) { | 18221 WhileStatement.prototype.visit = function(visitor) { |
18223 return visitor.visitWhileStatement(this); | 18222 return visitor.visitWhileStatement(this); |
18224 } | 18223 } |
18225 WhileStatement.prototype.visit$1 = function($0) { | 18224 WhileStatement.prototype.visit$1 = function($0) { |
18226 return this.visit(($0 && $0.is$TreeVisitor())); | 18225 return this.visit(($0 && $0.is$TreeVisitor())); |
18227 }; | 18226 }; |
18228 // ********** Code for DoStatement ************** | 18227 // ********** Code for DoStatement ************** |
18229 function DoStatement(body, test, span) { | 18228 function DoStatement(body, test, span) { |
18230 this.body = body; | 18229 this.body = body; |
18231 this.test = test; | 18230 this.test = test; |
18232 // Initializers done | 18231 // Initializers done |
18233 lang_Statement.call(this, span); | 18232 Statement.call(this, span); |
18234 } | 18233 } |
18235 $inherits(DoStatement, lang_Statement); | 18234 $inherits(DoStatement, Statement); |
18236 DoStatement.prototype.visit = function(visitor) { | 18235 DoStatement.prototype.visit = function(visitor) { |
18237 return visitor.visitDoStatement(this); | 18236 return visitor.visitDoStatement(this); |
18238 } | 18237 } |
18239 DoStatement.prototype.visit$1 = function($0) { | 18238 DoStatement.prototype.visit$1 = function($0) { |
18240 return this.visit(($0 && $0.is$TreeVisitor())); | 18239 return this.visit(($0 && $0.is$TreeVisitor())); |
18241 }; | 18240 }; |
18242 // ********** Code for ForStatement ************** | 18241 // ********** Code for ForStatement ************** |
18243 function ForStatement(init, test, step, body, span) { | 18242 function ForStatement(init, test, step, body, span) { |
18244 this.init = init; | 18243 this.init = init; |
18245 this.test = test; | 18244 this.test = test; |
18246 this.step = step; | 18245 this.step = step; |
18247 this.body = body; | 18246 this.body = body; |
18248 // Initializers done | 18247 // Initializers done |
18249 lang_Statement.call(this, span); | 18248 Statement.call(this, span); |
18250 } | 18249 } |
18251 $inherits(ForStatement, lang_Statement); | 18250 $inherits(ForStatement, Statement); |
18252 ForStatement.prototype.visit = function(visitor) { | 18251 ForStatement.prototype.visit = function(visitor) { |
18253 return visitor.visitForStatement(this); | 18252 return visitor.visitForStatement(this); |
18254 } | 18253 } |
18255 ForStatement.prototype.visit$1 = function($0) { | 18254 ForStatement.prototype.visit$1 = function($0) { |
18256 return this.visit(($0 && $0.is$TreeVisitor())); | 18255 return this.visit(($0 && $0.is$TreeVisitor())); |
18257 }; | 18256 }; |
18258 // ********** Code for ForInStatement ************** | 18257 // ********** Code for ForInStatement ************** |
18259 function ForInStatement(item, list, body, span) { | 18258 function ForInStatement(item, list, body, span) { |
18260 this.item = item; | 18259 this.item = item; |
18261 this.list = list; | 18260 this.list = list; |
18262 this.body = body; | 18261 this.body = body; |
18263 // Initializers done | 18262 // Initializers done |
18264 lang_Statement.call(this, span); | 18263 Statement.call(this, span); |
18265 } | 18264 } |
18266 $inherits(ForInStatement, lang_Statement); | 18265 $inherits(ForInStatement, Statement); |
18267 ForInStatement.prototype.visit = function(visitor) { | 18266 ForInStatement.prototype.visit = function(visitor) { |
18268 return visitor.visitForInStatement(this); | 18267 return visitor.visitForInStatement(this); |
18269 } | 18268 } |
18270 ForInStatement.prototype.visit$1 = function($0) { | 18269 ForInStatement.prototype.visit$1 = function($0) { |
18271 return this.visit(($0 && $0.is$TreeVisitor())); | 18270 return this.visit(($0 && $0.is$TreeVisitor())); |
18272 }; | 18271 }; |
18273 // ********** Code for TryStatement ************** | 18272 // ********** Code for TryStatement ************** |
18274 function TryStatement(body, catches, finallyBlock, span) { | 18273 function TryStatement(body, catches, finallyBlock, span) { |
18275 this.body = body; | 18274 this.body = body; |
18276 this.catches = catches; | 18275 this.catches = catches; |
18277 this.finallyBlock = finallyBlock; | 18276 this.finallyBlock = finallyBlock; |
18278 // Initializers done | 18277 // Initializers done |
18279 lang_Statement.call(this, span); | 18278 Statement.call(this, span); |
18280 } | 18279 } |
18281 $inherits(TryStatement, lang_Statement); | 18280 $inherits(TryStatement, Statement); |
18282 TryStatement.prototype.visit = function(visitor) { | 18281 TryStatement.prototype.visit = function(visitor) { |
18283 return visitor.visitTryStatement(this); | 18282 return visitor.visitTryStatement(this); |
18284 } | 18283 } |
18285 TryStatement.prototype.visit$1 = function($0) { | 18284 TryStatement.prototype.visit$1 = function($0) { |
18286 return this.visit(($0 && $0.is$TreeVisitor())); | 18285 return this.visit(($0 && $0.is$TreeVisitor())); |
18287 }; | 18286 }; |
18288 // ********** Code for SwitchStatement ************** | 18287 // ********** Code for SwitchStatement ************** |
18289 function SwitchStatement(test, cases, span) { | 18288 function SwitchStatement(test, cases, span) { |
18290 this.test = test; | 18289 this.test = test; |
18291 this.cases = cases; | 18290 this.cases = cases; |
18292 // Initializers done | 18291 // Initializers done |
18293 lang_Statement.call(this, span); | 18292 Statement.call(this, span); |
18294 } | 18293 } |
18295 $inherits(SwitchStatement, lang_Statement); | 18294 $inherits(SwitchStatement, Statement); |
18296 SwitchStatement.prototype.visit = function(visitor) { | 18295 SwitchStatement.prototype.visit = function(visitor) { |
18297 return visitor.visitSwitchStatement(this); | 18296 return visitor.visitSwitchStatement(this); |
18298 } | 18297 } |
18299 SwitchStatement.prototype.visit$1 = function($0) { | 18298 SwitchStatement.prototype.visit$1 = function($0) { |
18300 return this.visit(($0 && $0.is$TreeVisitor())); | 18299 return this.visit(($0 && $0.is$TreeVisitor())); |
18301 }; | 18300 }; |
18302 // ********** Code for BlockStatement ************** | 18301 // ********** Code for BlockStatement ************** |
18303 function BlockStatement(body, span) { | 18302 function BlockStatement(body, span) { |
18304 this.body = body; | 18303 this.body = body; |
18305 // Initializers done | 18304 // Initializers done |
18306 lang_Statement.call(this, span); | 18305 Statement.call(this, span); |
18307 } | 18306 } |
18308 $inherits(BlockStatement, lang_Statement); | 18307 $inherits(BlockStatement, Statement); |
18309 BlockStatement.prototype.is$BlockStatement = function(){return this;}; | 18308 BlockStatement.prototype.is$BlockStatement = function(){return this;}; |
18310 BlockStatement.prototype.visit = function(visitor) { | 18309 BlockStatement.prototype.visit = function(visitor) { |
18311 return visitor.visitBlockStatement(this); | 18310 return visitor.visitBlockStatement(this); |
18312 } | 18311 } |
18313 BlockStatement.prototype.visit$1 = function($0) { | 18312 BlockStatement.prototype.visit$1 = function($0) { |
18314 return this.visit(($0 && $0.is$TreeVisitor())); | 18313 return this.visit(($0 && $0.is$TreeVisitor())); |
18315 }; | 18314 }; |
18316 // ********** Code for LabeledStatement ************** | 18315 // ********** Code for LabeledStatement ************** |
18317 function LabeledStatement(name, body, span) { | 18316 function LabeledStatement(name, body, span) { |
18318 this.name = name; | 18317 this.name = name; |
18319 this.body = body; | 18318 this.body = body; |
18320 // Initializers done | 18319 // Initializers done |
18321 lang_Statement.call(this, span); | 18320 Statement.call(this, span); |
18322 } | 18321 } |
18323 $inherits(LabeledStatement, lang_Statement); | 18322 $inherits(LabeledStatement, Statement); |
18324 LabeledStatement.prototype.get$name = function() { return this.name; }; | 18323 LabeledStatement.prototype.get$name = function() { return this.name; }; |
18325 LabeledStatement.prototype.set$name = function(value) { return this.name = value
; }; | 18324 LabeledStatement.prototype.set$name = function(value) { return this.name = value
; }; |
18326 LabeledStatement.prototype.visit = function(visitor) { | 18325 LabeledStatement.prototype.visit = function(visitor) { |
18327 return visitor.visitLabeledStatement(this); | 18326 return visitor.visitLabeledStatement(this); |
18328 } | 18327 } |
18329 LabeledStatement.prototype.visit$1 = function($0) { | 18328 LabeledStatement.prototype.visit$1 = function($0) { |
18330 return this.visit(($0 && $0.is$TreeVisitor())); | 18329 return this.visit(($0 && $0.is$TreeVisitor())); |
18331 }; | 18330 }; |
18332 // ********** Code for lang_ExpressionStatement ************** | 18331 // ********** Code for ExpressionStatement ************** |
18333 function lang_ExpressionStatement(body, span) { | 18332 function ExpressionStatement(body, span) { |
18334 this.body = body; | 18333 this.body = body; |
18335 // Initializers done | 18334 // Initializers done |
18336 lang_Statement.call(this, span); | 18335 Statement.call(this, span); |
18337 } | 18336 } |
18338 $inherits(lang_ExpressionStatement, lang_Statement); | 18337 $inherits(ExpressionStatement, Statement); |
18339 lang_ExpressionStatement.prototype.visit = function(visitor) { | 18338 ExpressionStatement.prototype.visit = function(visitor) { |
18340 return visitor.visitExpressionStatement(this); | 18339 return visitor.visitExpressionStatement(this); |
18341 } | 18340 } |
18342 lang_ExpressionStatement.prototype.visit$1 = function($0) { | 18341 ExpressionStatement.prototype.visit$1 = function($0) { |
18343 return this.visit(($0 && $0.is$TreeVisitor())); | 18342 return this.visit(($0 && $0.is$TreeVisitor())); |
18344 }; | 18343 }; |
18345 // ********** Code for EmptyStatement ************** | 18344 // ********** Code for EmptyStatement ************** |
18346 function EmptyStatement(span) { | 18345 function EmptyStatement(span) { |
18347 // Initializers done | 18346 // Initializers done |
18348 lang_Statement.call(this, span); | 18347 Statement.call(this, span); |
18349 } | 18348 } |
18350 $inherits(EmptyStatement, lang_Statement); | 18349 $inherits(EmptyStatement, Statement); |
18351 EmptyStatement.prototype.visit = function(visitor) { | 18350 EmptyStatement.prototype.visit = function(visitor) { |
18352 return visitor.visitEmptyStatement(this); | 18351 return visitor.visitEmptyStatement(this); |
18353 } | 18352 } |
18354 EmptyStatement.prototype.visit$1 = function($0) { | 18353 EmptyStatement.prototype.visit$1 = function($0) { |
18355 return this.visit(($0 && $0.is$TreeVisitor())); | 18354 return this.visit(($0 && $0.is$TreeVisitor())); |
18356 }; | 18355 }; |
18357 // ********** Code for DietStatement ************** | 18356 // ********** Code for DietStatement ************** |
18358 function DietStatement(span) { | 18357 function DietStatement(span) { |
18359 // Initializers done | 18358 // Initializers done |
18360 lang_Statement.call(this, span); | 18359 Statement.call(this, span); |
18361 } | 18360 } |
18362 $inherits(DietStatement, lang_Statement); | 18361 $inherits(DietStatement, Statement); |
18363 DietStatement.prototype.visit = function(visitor) { | 18362 DietStatement.prototype.visit = function(visitor) { |
18364 return visitor.visitDietStatement(this); | 18363 return visitor.visitDietStatement(this); |
18365 } | 18364 } |
18366 DietStatement.prototype.visit$1 = function($0) { | 18365 DietStatement.prototype.visit$1 = function($0) { |
18367 return this.visit(($0 && $0.is$TreeVisitor())); | 18366 return this.visit(($0 && $0.is$TreeVisitor())); |
18368 }; | 18367 }; |
18369 // ********** Code for NativeStatement ************** | 18368 // ********** Code for NativeStatement ************** |
18370 function NativeStatement(body, span) { | 18369 function NativeStatement(body, span) { |
18371 this.body = body; | 18370 this.body = body; |
18372 // Initializers done | 18371 // Initializers done |
18373 lang_Statement.call(this, span); | 18372 Statement.call(this, span); |
18374 } | 18373 } |
18375 $inherits(NativeStatement, lang_Statement); | 18374 $inherits(NativeStatement, Statement); |
18376 NativeStatement.prototype.visit = function(visitor) { | 18375 NativeStatement.prototype.visit = function(visitor) { |
18377 return visitor.visitNativeStatement(this); | 18376 return visitor.visitNativeStatement(this); |
18378 } | 18377 } |
18379 NativeStatement.prototype.visit$1 = function($0) { | 18378 NativeStatement.prototype.visit$1 = function($0) { |
18380 return this.visit(($0 && $0.is$TreeVisitor())); | 18379 return this.visit(($0 && $0.is$TreeVisitor())); |
18381 }; | 18380 }; |
18382 // ********** Code for LambdaExpression ************** | 18381 // ********** Code for LambdaExpression ************** |
18383 function LambdaExpression(func, span) { | 18382 function LambdaExpression(func, span) { |
18384 this.func = func; | 18383 this.func = func; |
18385 // Initializers done | 18384 // Initializers done |
18386 lang_Expression.call(this, span); | 18385 Expression.call(this, span); |
18387 } | 18386 } |
18388 $inherits(LambdaExpression, lang_Expression); | 18387 $inherits(LambdaExpression, Expression); |
18389 LambdaExpression.prototype.is$LambdaExpression = function(){return this;}; | 18388 LambdaExpression.prototype.is$LambdaExpression = function(){return this;}; |
18390 LambdaExpression.prototype.visit = function(visitor) { | 18389 LambdaExpression.prototype.visit = function(visitor) { |
18391 return visitor.visitLambdaExpression(this); | 18390 return visitor.visitLambdaExpression(this); |
18392 } | 18391 } |
18393 LambdaExpression.prototype.visit$1 = function($0) { | 18392 LambdaExpression.prototype.visit$1 = function($0) { |
18394 return this.visit(($0 && $0.is$TreeVisitor())); | 18393 return this.visit(($0 && $0.is$TreeVisitor())); |
18395 }; | 18394 }; |
18396 // ********** Code for CallExpression ************** | 18395 // ********** Code for CallExpression ************** |
18397 function CallExpression(target, arguments, span) { | 18396 function CallExpression(target, arguments, span) { |
18398 this.target = target; | 18397 this.target = target; |
18399 this.arguments = arguments; | 18398 this.arguments = arguments; |
18400 // Initializers done | 18399 // Initializers done |
18401 lang_Expression.call(this, span); | 18400 Expression.call(this, span); |
18402 } | 18401 } |
18403 $inherits(CallExpression, lang_Expression); | 18402 $inherits(CallExpression, Expression); |
18404 CallExpression.prototype.is$CallExpression = function(){return this;}; | 18403 CallExpression.prototype.is$CallExpression = function(){return this;}; |
18405 CallExpression.prototype.get$arguments = function() { return this.arguments; }; | 18404 CallExpression.prototype.get$arguments = function() { return this.arguments; }; |
18406 CallExpression.prototype.set$arguments = function(value) { return this.arguments
= value; }; | 18405 CallExpression.prototype.set$arguments = function(value) { return this.arguments
= value; }; |
18407 CallExpression.prototype.visit = function(visitor) { | 18406 CallExpression.prototype.visit = function(visitor) { |
18408 return visitor.visitCallExpression(this); | 18407 return visitor.visitCallExpression(this); |
18409 } | 18408 } |
18410 CallExpression.prototype.visit$1 = function($0) { | 18409 CallExpression.prototype.visit$1 = function($0) { |
18411 return this.visit(($0 && $0.is$TreeVisitor())); | 18410 return this.visit(($0 && $0.is$TreeVisitor())); |
18412 }; | 18411 }; |
18413 // ********** Code for IndexExpression ************** | 18412 // ********** Code for IndexExpression ************** |
18414 function IndexExpression(target, index, span) { | 18413 function IndexExpression(target, index, span) { |
18415 this.target = target; | 18414 this.target = target; |
18416 this.index = index; | 18415 this.index = index; |
18417 // Initializers done | 18416 // Initializers done |
18418 lang_Expression.call(this, span); | 18417 Expression.call(this, span); |
18419 } | 18418 } |
18420 $inherits(IndexExpression, lang_Expression); | 18419 $inherits(IndexExpression, Expression); |
18421 IndexExpression.prototype.is$IndexExpression = function(){return this;}; | 18420 IndexExpression.prototype.is$IndexExpression = function(){return this;}; |
18422 IndexExpression.prototype.visit = function(visitor) { | 18421 IndexExpression.prototype.visit = function(visitor) { |
18423 return visitor.visitIndexExpression(this); | 18422 return visitor.visitIndexExpression(this); |
18424 } | 18423 } |
18425 IndexExpression.prototype.visit$1 = function($0) { | 18424 IndexExpression.prototype.visit$1 = function($0) { |
18426 return this.visit(($0 && $0.is$TreeVisitor())); | 18425 return this.visit(($0 && $0.is$TreeVisitor())); |
18427 }; | 18426 }; |
18428 // ********** Code for BinaryExpression ************** | 18427 // ********** Code for BinaryExpression ************** |
18429 function BinaryExpression(op, x, y, span) { | 18428 function BinaryExpression(op, x, y, span) { |
18430 this.op = op; | 18429 this.op = op; |
18431 this.x = x; | 18430 this.x = x; |
18432 this.y = y; | 18431 this.y = y; |
18433 // Initializers done | 18432 // Initializers done |
18434 lang_Expression.call(this, span); | 18433 Expression.call(this, span); |
18435 } | 18434 } |
18436 $inherits(BinaryExpression, lang_Expression); | 18435 $inherits(BinaryExpression, Expression); |
18437 BinaryExpression.prototype.is$BinaryExpression = function(){return this;}; | 18436 BinaryExpression.prototype.is$BinaryExpression = function(){return this;}; |
18438 BinaryExpression.prototype.visit = function(visitor) { | 18437 BinaryExpression.prototype.visit = function(visitor) { |
18439 return visitor.visitBinaryExpression(this); | 18438 return visitor.visitBinaryExpression(this); |
18440 } | 18439 } |
18441 BinaryExpression.prototype.visit$1 = function($0) { | 18440 BinaryExpression.prototype.visit$1 = function($0) { |
18442 return this.visit(($0 && $0.is$TreeVisitor())); | 18441 return this.visit(($0 && $0.is$TreeVisitor())); |
18443 }; | 18442 }; |
18444 // ********** Code for UnaryExpression ************** | 18443 // ********** Code for UnaryExpression ************** |
18445 function UnaryExpression(op, self, span) { | 18444 function UnaryExpression(op, self, span) { |
18446 this.op = op; | 18445 this.op = op; |
18447 this.self = self; | 18446 this.self = self; |
18448 // Initializers done | 18447 // Initializers done |
18449 lang_Expression.call(this, span); | 18448 Expression.call(this, span); |
18450 } | 18449 } |
18451 $inherits(UnaryExpression, lang_Expression); | 18450 $inherits(UnaryExpression, Expression); |
18452 UnaryExpression.prototype.visit = function(visitor) { | 18451 UnaryExpression.prototype.visit = function(visitor) { |
18453 return visitor.visitUnaryExpression(this); | 18452 return visitor.visitUnaryExpression(this); |
18454 } | 18453 } |
18455 UnaryExpression.prototype.visit$1 = function($0) { | 18454 UnaryExpression.prototype.visit$1 = function($0) { |
18456 return this.visit(($0 && $0.is$TreeVisitor())); | 18455 return this.visit(($0 && $0.is$TreeVisitor())); |
18457 }; | 18456 }; |
18458 // ********** Code for PostfixExpression ************** | 18457 // ********** Code for PostfixExpression ************** |
18459 function PostfixExpression(body, op, span) { | 18458 function PostfixExpression(body, op, span) { |
18460 this.body = body; | 18459 this.body = body; |
18461 this.op = op; | 18460 this.op = op; |
18462 // Initializers done | 18461 // Initializers done |
18463 lang_Expression.call(this, span); | 18462 Expression.call(this, span); |
18464 } | 18463 } |
18465 $inherits(PostfixExpression, lang_Expression); | 18464 $inherits(PostfixExpression, Expression); |
18466 PostfixExpression.prototype.is$PostfixExpression = function(){return this;}; | 18465 PostfixExpression.prototype.is$PostfixExpression = function(){return this;}; |
18467 PostfixExpression.prototype.visit = function(visitor) { | 18466 PostfixExpression.prototype.visit = function(visitor) { |
18468 return visitor.visitPostfixExpression$1(this); | 18467 return visitor.visitPostfixExpression$1(this); |
18469 } | 18468 } |
18470 PostfixExpression.prototype.visit$1 = function($0) { | 18469 PostfixExpression.prototype.visit$1 = function($0) { |
18471 return this.visit(($0 && $0.is$TreeVisitor())); | 18470 return this.visit(($0 && $0.is$TreeVisitor())); |
18472 }; | 18471 }; |
18473 // ********** Code for lang_NewExpression ************** | 18472 // ********** Code for NewExpression ************** |
18474 function lang_NewExpression(isConst, type, name, arguments, span) { | 18473 function NewExpression(isConst, type, name, arguments, span) { |
18475 this.isConst = isConst; | 18474 this.isConst = isConst; |
18476 this.type = type; | 18475 this.type = type; |
18477 this.name = name; | 18476 this.name = name; |
18478 this.arguments = arguments; | 18477 this.arguments = arguments; |
18479 // Initializers done | 18478 // Initializers done |
18480 lang_Expression.call(this, span); | 18479 Expression.call(this, span); |
18481 } | 18480 } |
18482 $inherits(lang_NewExpression, lang_Expression); | 18481 $inherits(NewExpression, Expression); |
18483 lang_NewExpression.prototype.get$isConst = function() { return this.isConst; }; | 18482 NewExpression.prototype.get$isConst = function() { return this.isConst; }; |
18484 lang_NewExpression.prototype.set$isConst = function(value) { return this.isConst
= value; }; | 18483 NewExpression.prototype.set$isConst = function(value) { return this.isConst = va
lue; }; |
18485 lang_NewExpression.prototype.get$type = function() { return this.type; }; | 18484 NewExpression.prototype.get$type = function() { return this.type; }; |
18486 lang_NewExpression.prototype.set$type = function(value) { return this.type = val
ue; }; | 18485 NewExpression.prototype.set$type = function(value) { return this.type = value; }
; |
18487 lang_NewExpression.prototype.get$name = function() { return this.name; }; | 18486 NewExpression.prototype.get$name = function() { return this.name; }; |
18488 lang_NewExpression.prototype.set$name = function(value) { return this.name = val
ue; }; | 18487 NewExpression.prototype.set$name = function(value) { return this.name = value; }
; |
18489 lang_NewExpression.prototype.get$arguments = function() { return this.arguments;
}; | 18488 NewExpression.prototype.get$arguments = function() { return this.arguments; }; |
18490 lang_NewExpression.prototype.set$arguments = function(value) { return this.argum
ents = value; }; | 18489 NewExpression.prototype.set$arguments = function(value) { return this.arguments
= value; }; |
18491 lang_NewExpression.prototype.visit = function(visitor) { | 18490 NewExpression.prototype.visit = function(visitor) { |
18492 return visitor.visitNewExpression(this); | 18491 return visitor.visitNewExpression(this); |
18493 } | 18492 } |
18494 lang_NewExpression.prototype.visit$1 = function($0) { | 18493 NewExpression.prototype.visit$1 = function($0) { |
18495 return this.visit(($0 && $0.is$TreeVisitor())); | 18494 return this.visit(($0 && $0.is$TreeVisitor())); |
18496 }; | 18495 }; |
18497 // ********** Code for ListExpression ************** | 18496 // ********** Code for ListExpression ************** |
18498 function ListExpression(isConst, type, values, span) { | 18497 function ListExpression(isConst, type, values, span) { |
18499 this.isConst = isConst; | 18498 this.isConst = isConst; |
18500 this.type = type; | 18499 this.type = type; |
18501 this.values = values; | 18500 this.values = values; |
18502 // Initializers done | 18501 // Initializers done |
18503 lang_Expression.call(this, span); | 18502 Expression.call(this, span); |
18504 } | 18503 } |
18505 $inherits(ListExpression, lang_Expression); | 18504 $inherits(ListExpression, Expression); |
18506 ListExpression.prototype.get$isConst = function() { return this.isConst; }; | 18505 ListExpression.prototype.get$isConst = function() { return this.isConst; }; |
18507 ListExpression.prototype.set$isConst = function(value) { return this.isConst = v
alue; }; | 18506 ListExpression.prototype.set$isConst = function(value) { return this.isConst = v
alue; }; |
18508 ListExpression.prototype.get$type = function() { return this.type; }; | 18507 ListExpression.prototype.get$type = function() { return this.type; }; |
18509 ListExpression.prototype.set$type = function(value) { return this.type = value;
}; | 18508 ListExpression.prototype.set$type = function(value) { return this.type = value;
}; |
18510 ListExpression.prototype.visit = function(visitor) { | 18509 ListExpression.prototype.visit = function(visitor) { |
18511 return visitor.visitListExpression(this); | 18510 return visitor.visitListExpression(this); |
18512 } | 18511 } |
18513 ListExpression.prototype.visit$1 = function($0) { | 18512 ListExpression.prototype.visit$1 = function($0) { |
18514 return this.visit(($0 && $0.is$TreeVisitor())); | 18513 return this.visit(($0 && $0.is$TreeVisitor())); |
18515 }; | 18514 }; |
18516 // ********** Code for MapExpression ************** | 18515 // ********** Code for MapExpression ************** |
18517 function MapExpression(isConst, type, items, span) { | 18516 function MapExpression(isConst, type, items, span) { |
18518 this.isConst = isConst; | 18517 this.isConst = isConst; |
18519 this.type = type; | 18518 this.type = type; |
18520 this.items = items; | 18519 this.items = items; |
18521 // Initializers done | 18520 // Initializers done |
18522 lang_Expression.call(this, span); | 18521 Expression.call(this, span); |
18523 } | 18522 } |
18524 $inherits(MapExpression, lang_Expression); | 18523 $inherits(MapExpression, Expression); |
18525 MapExpression.prototype.get$isConst = function() { return this.isConst; }; | 18524 MapExpression.prototype.get$isConst = function() { return this.isConst; }; |
18526 MapExpression.prototype.set$isConst = function(value) { return this.isConst = va
lue; }; | 18525 MapExpression.prototype.set$isConst = function(value) { return this.isConst = va
lue; }; |
18527 MapExpression.prototype.get$type = function() { return this.type; }; | 18526 MapExpression.prototype.get$type = function() { return this.type; }; |
18528 MapExpression.prototype.set$type = function(value) { return this.type = value; }
; | 18527 MapExpression.prototype.set$type = function(value) { return this.type = value; }
; |
18529 MapExpression.prototype.visit = function(visitor) { | 18528 MapExpression.prototype.visit = function(visitor) { |
18530 return visitor.visitMapExpression(this); | 18529 return visitor.visitMapExpression(this); |
18531 } | 18530 } |
18532 MapExpression.prototype.visit$1 = function($0) { | 18531 MapExpression.prototype.visit$1 = function($0) { |
18533 return this.visit(($0 && $0.is$TreeVisitor())); | 18532 return this.visit(($0 && $0.is$TreeVisitor())); |
18534 }; | 18533 }; |
18535 // ********** Code for ConditionalExpression ************** | 18534 // ********** Code for ConditionalExpression ************** |
18536 function ConditionalExpression(test, trueBranch, falseBranch, span) { | 18535 function ConditionalExpression(test, trueBranch, falseBranch, span) { |
18537 this.test = test; | 18536 this.test = test; |
18538 this.trueBranch = trueBranch; | 18537 this.trueBranch = trueBranch; |
18539 this.falseBranch = falseBranch; | 18538 this.falseBranch = falseBranch; |
18540 // Initializers done | 18539 // Initializers done |
18541 lang_Expression.call(this, span); | 18540 Expression.call(this, span); |
18542 } | 18541 } |
18543 $inherits(ConditionalExpression, lang_Expression); | 18542 $inherits(ConditionalExpression, Expression); |
18544 ConditionalExpression.prototype.visit = function(visitor) { | 18543 ConditionalExpression.prototype.visit = function(visitor) { |
18545 return visitor.visitConditionalExpression(this); | 18544 return visitor.visitConditionalExpression(this); |
18546 } | 18545 } |
18547 ConditionalExpression.prototype.visit$1 = function($0) { | 18546 ConditionalExpression.prototype.visit$1 = function($0) { |
18548 return this.visit(($0 && $0.is$TreeVisitor())); | 18547 return this.visit(($0 && $0.is$TreeVisitor())); |
18549 }; | 18548 }; |
18550 // ********** Code for IsExpression ************** | 18549 // ********** Code for IsExpression ************** |
18551 function IsExpression(isTrue, x, type, span) { | 18550 function IsExpression(isTrue, x, type, span) { |
18552 this.isTrue = isTrue; | 18551 this.isTrue = isTrue; |
18553 this.x = x; | 18552 this.x = x; |
18554 this.type = type; | 18553 this.type = type; |
18555 // Initializers done | 18554 // Initializers done |
18556 lang_Expression.call(this, span); | 18555 Expression.call(this, span); |
18557 } | 18556 } |
18558 $inherits(IsExpression, lang_Expression); | 18557 $inherits(IsExpression, Expression); |
18559 IsExpression.prototype.get$type = function() { return this.type; }; | 18558 IsExpression.prototype.get$type = function() { return this.type; }; |
18560 IsExpression.prototype.set$type = function(value) { return this.type = value; }; | 18559 IsExpression.prototype.set$type = function(value) { return this.type = value; }; |
18561 IsExpression.prototype.visit = function(visitor) { | 18560 IsExpression.prototype.visit = function(visitor) { |
18562 return visitor.visitIsExpression(this); | 18561 return visitor.visitIsExpression(this); |
18563 } | 18562 } |
18564 IsExpression.prototype.visit$1 = function($0) { | 18563 IsExpression.prototype.visit$1 = function($0) { |
18565 return this.visit(($0 && $0.is$TreeVisitor())); | 18564 return this.visit(($0 && $0.is$TreeVisitor())); |
18566 }; | 18565 }; |
18567 // ********** Code for ParenExpression ************** | 18566 // ********** Code for ParenExpression ************** |
18568 function ParenExpression(body, span) { | 18567 function ParenExpression(body, span) { |
18569 this.body = body; | 18568 this.body = body; |
18570 // Initializers done | 18569 // Initializers done |
18571 lang_Expression.call(this, span); | 18570 Expression.call(this, span); |
18572 } | 18571 } |
18573 $inherits(ParenExpression, lang_Expression); | 18572 $inherits(ParenExpression, Expression); |
18574 ParenExpression.prototype.visit = function(visitor) { | 18573 ParenExpression.prototype.visit = function(visitor) { |
18575 return visitor.visitParenExpression(this); | 18574 return visitor.visitParenExpression(this); |
18576 } | 18575 } |
18577 ParenExpression.prototype.visit$1 = function($0) { | 18576 ParenExpression.prototype.visit$1 = function($0) { |
18578 return this.visit(($0 && $0.is$TreeVisitor())); | 18577 return this.visit(($0 && $0.is$TreeVisitor())); |
18579 }; | 18578 }; |
18580 // ********** Code for DotExpression ************** | 18579 // ********** Code for DotExpression ************** |
18581 function DotExpression(self, name, span) { | 18580 function DotExpression(self, name, span) { |
18582 this.self = self; | 18581 this.self = self; |
18583 this.name = name; | 18582 this.name = name; |
18584 // Initializers done | 18583 // Initializers done |
18585 lang_Expression.call(this, span); | 18584 Expression.call(this, span); |
18586 } | 18585 } |
18587 $inherits(DotExpression, lang_Expression); | 18586 $inherits(DotExpression, Expression); |
18588 DotExpression.prototype.is$DotExpression = function(){return this;}; | 18587 DotExpression.prototype.is$DotExpression = function(){return this;}; |
18589 DotExpression.prototype.get$name = function() { return this.name; }; | 18588 DotExpression.prototype.get$name = function() { return this.name; }; |
18590 DotExpression.prototype.set$name = function(value) { return this.name = value; }
; | 18589 DotExpression.prototype.set$name = function(value) { return this.name = value; }
; |
18591 DotExpression.prototype.visit = function(visitor) { | 18590 DotExpression.prototype.visit = function(visitor) { |
18592 return visitor.visitDotExpression(this); | 18591 return visitor.visitDotExpression(this); |
18593 } | 18592 } |
18594 DotExpression.prototype.visit$1 = function($0) { | 18593 DotExpression.prototype.visit$1 = function($0) { |
18595 return this.visit(($0 && $0.is$TreeVisitor())); | 18594 return this.visit(($0 && $0.is$TreeVisitor())); |
18596 }; | 18595 }; |
18597 // ********** Code for VarExpression ************** | 18596 // ********** Code for VarExpression ************** |
18598 function VarExpression(name, span) { | 18597 function VarExpression(name, span) { |
18599 this.name = name; | 18598 this.name = name; |
18600 // Initializers done | 18599 // Initializers done |
18601 lang_Expression.call(this, span); | 18600 Expression.call(this, span); |
18602 } | 18601 } |
18603 $inherits(VarExpression, lang_Expression); | 18602 $inherits(VarExpression, Expression); |
18604 VarExpression.prototype.is$VarExpression = function(){return this;}; | 18603 VarExpression.prototype.is$VarExpression = function(){return this;}; |
18605 VarExpression.prototype.get$name = function() { return this.name; }; | 18604 VarExpression.prototype.get$name = function() { return this.name; }; |
18606 VarExpression.prototype.set$name = function(value) { return this.name = value; }
; | 18605 VarExpression.prototype.set$name = function(value) { return this.name = value; }
; |
18607 VarExpression.prototype.visit = function(visitor) { | 18606 VarExpression.prototype.visit = function(visitor) { |
18608 return visitor.visitVarExpression(this); | 18607 return visitor.visitVarExpression(this); |
18609 } | 18608 } |
18610 VarExpression.prototype.visit$1 = function($0) { | 18609 VarExpression.prototype.visit$1 = function($0) { |
18611 return this.visit(($0 && $0.is$TreeVisitor())); | 18610 return this.visit(($0 && $0.is$TreeVisitor())); |
18612 }; | 18611 }; |
18613 // ********** Code for ThisExpression ************** | 18612 // ********** Code for ThisExpression ************** |
18614 function ThisExpression(span) { | 18613 function ThisExpression(span) { |
18615 // Initializers done | 18614 // Initializers done |
18616 lang_Expression.call(this, span); | 18615 Expression.call(this, span); |
18617 } | 18616 } |
18618 $inherits(ThisExpression, lang_Expression); | 18617 $inherits(ThisExpression, Expression); |
18619 ThisExpression.prototype.visit = function(visitor) { | 18618 ThisExpression.prototype.visit = function(visitor) { |
18620 return visitor.visitThisExpression(this); | 18619 return visitor.visitThisExpression(this); |
18621 } | 18620 } |
18622 ThisExpression.prototype.visit$1 = function($0) { | 18621 ThisExpression.prototype.visit$1 = function($0) { |
18623 return this.visit(($0 && $0.is$TreeVisitor())); | 18622 return this.visit(($0 && $0.is$TreeVisitor())); |
18624 }; | 18623 }; |
18625 // ********** Code for SuperExpression ************** | 18624 // ********** Code for SuperExpression ************** |
18626 function SuperExpression(span) { | 18625 function SuperExpression(span) { |
18627 // Initializers done | 18626 // Initializers done |
18628 lang_Expression.call(this, span); | 18627 Expression.call(this, span); |
18629 } | 18628 } |
18630 $inherits(SuperExpression, lang_Expression); | 18629 $inherits(SuperExpression, Expression); |
18631 SuperExpression.prototype.visit = function(visitor) { | 18630 SuperExpression.prototype.visit = function(visitor) { |
18632 return visitor.visitSuperExpression(this); | 18631 return visitor.visitSuperExpression(this); |
18633 } | 18632 } |
18634 SuperExpression.prototype.visit$1 = function($0) { | 18633 SuperExpression.prototype.visit$1 = function($0) { |
18635 return this.visit(($0 && $0.is$TreeVisitor())); | 18634 return this.visit(($0 && $0.is$TreeVisitor())); |
18636 }; | 18635 }; |
18637 // ********** Code for NullExpression ************** | 18636 // ********** Code for NullExpression ************** |
18638 function NullExpression(span) { | 18637 function NullExpression(span) { |
18639 // Initializers done | 18638 // Initializers done |
18640 lang_Expression.call(this, span); | 18639 Expression.call(this, span); |
18641 } | 18640 } |
18642 $inherits(NullExpression, lang_Expression); | 18641 $inherits(NullExpression, Expression); |
18643 NullExpression.prototype.visit = function(visitor) { | 18642 NullExpression.prototype.visit = function(visitor) { |
18644 return visitor.visitNullExpression(this); | 18643 return visitor.visitNullExpression(this); |
18645 } | 18644 } |
18646 NullExpression.prototype.visit$1 = function($0) { | 18645 NullExpression.prototype.visit$1 = function($0) { |
18647 return this.visit(($0 && $0.is$TreeVisitor())); | 18646 return this.visit(($0 && $0.is$TreeVisitor())); |
18648 }; | 18647 }; |
18649 // ********** Code for LiteralExpression ************** | 18648 // ********** Code for LiteralExpression ************** |
18650 function LiteralExpression(value, type, text, span) { | 18649 function LiteralExpression(value, type, text, span) { |
18651 this.value = value; | 18650 this.value = value; |
18652 this.type = type; | 18651 this.type = type; |
18653 this.text = text; | 18652 this.text = text; |
18654 // Initializers done | 18653 // Initializers done |
18655 lang_Expression.call(this, span); | 18654 Expression.call(this, span); |
18656 } | 18655 } |
18657 $inherits(LiteralExpression, lang_Expression); | 18656 $inherits(LiteralExpression, Expression); |
18658 LiteralExpression.prototype.get$value = function() { return this.value; }; | 18657 LiteralExpression.prototype.get$value = function() { return this.value; }; |
18659 LiteralExpression.prototype.set$value = function(value) { return this.value = va
lue; }; | 18658 LiteralExpression.prototype.set$value = function(value) { return this.value = va
lue; }; |
18660 LiteralExpression.prototype.get$type = function() { return this.type; }; | 18659 LiteralExpression.prototype.get$type = function() { return this.type; }; |
18661 LiteralExpression.prototype.set$type = function(value) { return this.type = valu
e; }; | 18660 LiteralExpression.prototype.set$type = function(value) { return this.type = valu
e; }; |
18662 LiteralExpression.prototype.get$text = function() { return this.text; }; | 18661 LiteralExpression.prototype.get$text = function() { return this.text; }; |
18663 LiteralExpression.prototype.set$text = function(value) { return this.text = valu
e; }; | 18662 LiteralExpression.prototype.set$text = function(value) { return this.text = valu
e; }; |
18664 LiteralExpression.prototype.visit = function(visitor) { | 18663 LiteralExpression.prototype.visit = function(visitor) { |
18665 return visitor.visitLiteralExpression(this); | 18664 return visitor.visitLiteralExpression(this); |
18666 } | 18665 } |
18667 LiteralExpression.prototype.visit$1 = function($0) { | 18666 LiteralExpression.prototype.visit$1 = function($0) { |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
18718 return visitor.visitFunctionTypeReference(this); | 18717 return visitor.visitFunctionTypeReference(this); |
18719 } | 18718 } |
18720 FunctionTypeReference.prototype.visit$1 = function($0) { | 18719 FunctionTypeReference.prototype.visit$1 = function($0) { |
18721 return this.visit(($0 && $0.is$TreeVisitor())); | 18720 return this.visit(($0 && $0.is$TreeVisitor())); |
18722 }; | 18721 }; |
18723 // ********** Code for ArgumentNode ************** | 18722 // ********** Code for ArgumentNode ************** |
18724 function ArgumentNode(label, value, span) { | 18723 function ArgumentNode(label, value, span) { |
18725 this.label = label; | 18724 this.label = label; |
18726 this.value = value; | 18725 this.value = value; |
18727 // Initializers done | 18726 // Initializers done |
18728 lang_Node.call(this, span); | 18727 Node.call(this, span); |
18729 } | 18728 } |
18730 $inherits(ArgumentNode, lang_Node); | 18729 $inherits(ArgumentNode, Node); |
18731 ArgumentNode.prototype.is$ArgumentNode = function(){return this;}; | 18730 ArgumentNode.prototype.is$ArgumentNode = function(){return this;}; |
18732 ArgumentNode.prototype.get$value = function() { return this.value; }; | 18731 ArgumentNode.prototype.get$value = function() { return this.value; }; |
18733 ArgumentNode.prototype.set$value = function(value) { return this.value = value;
}; | 18732 ArgumentNode.prototype.set$value = function(value) { return this.value = value;
}; |
18734 ArgumentNode.prototype.visit = function(visitor) { | 18733 ArgumentNode.prototype.visit = function(visitor) { |
18735 return visitor.visitArgumentNode(this); | 18734 return visitor.visitArgumentNode(this); |
18736 } | 18735 } |
18737 ArgumentNode.prototype.visit$1 = function($0) { | 18736 ArgumentNode.prototype.visit$1 = function($0) { |
18738 return this.visit(($0 && $0.is$TreeVisitor())); | 18737 return this.visit(($0 && $0.is$TreeVisitor())); |
18739 }; | 18738 }; |
18740 // ********** Code for FormalNode ************** | 18739 // ********** Code for FormalNode ************** |
18741 function FormalNode(isThis, isRest, type, name, value, span) { | 18740 function FormalNode(isThis, isRest, type, name, value, span) { |
18742 this.isThis = isThis; | 18741 this.isThis = isThis; |
18743 this.isRest = isRest; | 18742 this.isRest = isRest; |
18744 this.type = type; | 18743 this.type = type; |
18745 this.name = name; | 18744 this.name = name; |
18746 this.value = value; | 18745 this.value = value; |
18747 // Initializers done | 18746 // Initializers done |
18748 lang_Node.call(this, span); | 18747 Node.call(this, span); |
18749 } | 18748 } |
18750 $inherits(FormalNode, lang_Node); | 18749 $inherits(FormalNode, Node); |
18751 FormalNode.prototype.get$type = function() { return this.type; }; | 18750 FormalNode.prototype.get$type = function() { return this.type; }; |
18752 FormalNode.prototype.set$type = function(value) { return this.type = value; }; | 18751 FormalNode.prototype.set$type = function(value) { return this.type = value; }; |
18753 FormalNode.prototype.get$name = function() { return this.name; }; | 18752 FormalNode.prototype.get$name = function() { return this.name; }; |
18754 FormalNode.prototype.set$name = function(value) { return this.name = value; }; | 18753 FormalNode.prototype.set$name = function(value) { return this.name = value; }; |
18755 FormalNode.prototype.get$value = function() { return this.value; }; | 18754 FormalNode.prototype.get$value = function() { return this.value; }; |
18756 FormalNode.prototype.set$value = function(value) { return this.value = value; }; | 18755 FormalNode.prototype.set$value = function(value) { return this.value = value; }; |
18757 FormalNode.prototype.visit = function(visitor) { | 18756 FormalNode.prototype.visit = function(visitor) { |
18758 return visitor.visitFormalNode(this); | 18757 return visitor.visitFormalNode(this); |
18759 } | 18758 } |
18760 FormalNode.prototype.visit$1 = function($0) { | 18759 FormalNode.prototype.visit$1 = function($0) { |
18761 return this.visit(($0 && $0.is$TreeVisitor())); | 18760 return this.visit(($0 && $0.is$TreeVisitor())); |
18762 }; | 18761 }; |
18763 // ********** Code for CatchNode ************** | 18762 // ********** Code for CatchNode ************** |
18764 function CatchNode(exception, trace, body, span) { | 18763 function CatchNode(exception, trace, body, span) { |
18765 this.exception = exception; | 18764 this.exception = exception; |
18766 this.trace = trace; | 18765 this.trace = trace; |
18767 this.body = body; | 18766 this.body = body; |
18768 // Initializers done | 18767 // Initializers done |
18769 lang_Node.call(this, span); | 18768 Node.call(this, span); |
18770 } | 18769 } |
18771 $inherits(CatchNode, lang_Node); | 18770 $inherits(CatchNode, Node); |
18772 CatchNode.prototype.get$exception = function() { return this.exception; }; | 18771 CatchNode.prototype.get$exception = function() { return this.exception; }; |
18773 CatchNode.prototype.set$exception = function(value) { return this.exception = va
lue; }; | 18772 CatchNode.prototype.set$exception = function(value) { return this.exception = va
lue; }; |
18774 CatchNode.prototype.visit = function(visitor) { | 18773 CatchNode.prototype.visit = function(visitor) { |
18775 return visitor.visitCatchNode(this); | 18774 return visitor.visitCatchNode(this); |
18776 } | 18775 } |
18777 CatchNode.prototype.visit$1 = function($0) { | 18776 CatchNode.prototype.visit$1 = function($0) { |
18778 return this.visit(($0 && $0.is$TreeVisitor())); | 18777 return this.visit(($0 && $0.is$TreeVisitor())); |
18779 }; | 18778 }; |
18780 // ********** Code for CaseNode ************** | 18779 // ********** Code for CaseNode ************** |
18781 function CaseNode(label, cases, statements, span) { | 18780 function CaseNode(label, cases, statements, span) { |
18782 this.label = label; | 18781 this.label = label; |
18783 this.cases = cases; | 18782 this.cases = cases; |
18784 this.statements = statements; | 18783 this.statements = statements; |
18785 // Initializers done | 18784 // Initializers done |
18786 lang_Node.call(this, span); | 18785 Node.call(this, span); |
18787 } | 18786 } |
18788 $inherits(CaseNode, lang_Node); | 18787 $inherits(CaseNode, Node); |
18789 CaseNode.prototype.visit = function(visitor) { | 18788 CaseNode.prototype.visit = function(visitor) { |
18790 return visitor.visitCaseNode(this); | 18789 return visitor.visitCaseNode(this); |
18791 } | 18790 } |
18792 CaseNode.prototype.visit$1 = function($0) { | 18791 CaseNode.prototype.visit$1 = function($0) { |
18793 return this.visit(($0 && $0.is$TreeVisitor())); | 18792 return this.visit(($0 && $0.is$TreeVisitor())); |
18794 }; | 18793 }; |
18795 // ********** Code for TypeParameter ************** | 18794 // ********** Code for TypeParameter ************** |
18796 function TypeParameter(name, extendsType, span) { | 18795 function TypeParameter(name, extendsType, span) { |
18797 this.name = name; | 18796 this.name = name; |
18798 this.extendsType = extendsType; | 18797 this.extendsType = extendsType; |
18799 // Initializers done | 18798 // Initializers done |
18800 lang_Node.call(this, span); | 18799 Node.call(this, span); |
18801 } | 18800 } |
18802 $inherits(TypeParameter, lang_Node); | 18801 $inherits(TypeParameter, Node); |
18803 TypeParameter.prototype.get$name = function() { return this.name; }; | 18802 TypeParameter.prototype.get$name = function() { return this.name; }; |
18804 TypeParameter.prototype.set$name = function(value) { return this.name = value; }
; | 18803 TypeParameter.prototype.set$name = function(value) { return this.name = value; }
; |
18805 TypeParameter.prototype.visit = function(visitor) { | 18804 TypeParameter.prototype.visit = function(visitor) { |
18806 return visitor.visitTypeParameter(this); | 18805 return visitor.visitTypeParameter(this); |
18807 } | 18806 } |
18808 TypeParameter.prototype.visit$1 = function($0) { | 18807 TypeParameter.prototype.visit$1 = function($0) { |
18809 return this.visit(($0 && $0.is$TreeVisitor())); | 18808 return this.visit(($0 && $0.is$TreeVisitor())); |
18810 }; | 18809 }; |
18811 // ********** Code for lang_Identifier ************** | 18810 // ********** Code for Identifier ************** |
18812 function lang_Identifier(name, span) { | 18811 function Identifier(name, span) { |
18813 this.name = name; | 18812 this.name = name; |
18814 // Initializers done | 18813 // Initializers done |
18815 lang_Node.call(this, span); | 18814 Node.call(this, span); |
18816 } | 18815 } |
18817 $inherits(lang_Identifier, lang_Node); | 18816 $inherits(Identifier, Node); |
18818 lang_Identifier.prototype.is$lang_Identifier = function(){return this;}; | 18817 Identifier.prototype.is$Identifier = function(){return this;}; |
18819 lang_Identifier.prototype.get$name = function() { return this.name; }; | 18818 Identifier.prototype.get$name = function() { return this.name; }; |
18820 lang_Identifier.prototype.set$name = function(value) { return this.name = value;
}; | 18819 Identifier.prototype.set$name = function(value) { return this.name = value; }; |
18821 lang_Identifier.prototype.visit = function(visitor) { | 18820 Identifier.prototype.visit = function(visitor) { |
18822 return visitor.visitIdentifier(this); | 18821 return visitor.visitIdentifier(this); |
18823 } | 18822 } |
18824 lang_Identifier.prototype.visit$1 = function($0) { | 18823 Identifier.prototype.visit$1 = function($0) { |
18825 return this.visit(($0 && $0.is$TreeVisitor())); | 18824 return this.visit(($0 && $0.is$TreeVisitor())); |
18826 }; | 18825 }; |
18827 // ********** Code for DeclaredIdentifier ************** | 18826 // ********** Code for DeclaredIdentifier ************** |
18828 function DeclaredIdentifier(type, name, span) { | 18827 function DeclaredIdentifier(type, name, span) { |
18829 this.type = type; | 18828 this.type = type; |
18830 this.name = name; | 18829 this.name = name; |
18831 // Initializers done | 18830 // Initializers done |
18832 lang_Expression.call(this, span); | 18831 Expression.call(this, span); |
18833 } | 18832 } |
18834 $inherits(DeclaredIdentifier, lang_Expression); | 18833 $inherits(DeclaredIdentifier, Expression); |
18835 DeclaredIdentifier.prototype.is$DeclaredIdentifier = function(){return this;}; | 18834 DeclaredIdentifier.prototype.is$DeclaredIdentifier = function(){return this;}; |
18836 DeclaredIdentifier.prototype.get$type = function() { return this.type; }; | 18835 DeclaredIdentifier.prototype.get$type = function() { return this.type; }; |
18837 DeclaredIdentifier.prototype.set$type = function(value) { return this.type = val
ue; }; | 18836 DeclaredIdentifier.prototype.set$type = function(value) { return this.type = val
ue; }; |
18838 DeclaredIdentifier.prototype.get$name = function() { return this.name; }; | 18837 DeclaredIdentifier.prototype.get$name = function() { return this.name; }; |
18839 DeclaredIdentifier.prototype.set$name = function(value) { return this.name = val
ue; }; | 18838 DeclaredIdentifier.prototype.set$name = function(value) { return this.name = val
ue; }; |
18840 DeclaredIdentifier.prototype.visit = function(visitor) { | 18839 DeclaredIdentifier.prototype.visit = function(visitor) { |
18841 return visitor.visitDeclaredIdentifier(this); | 18840 return visitor.visitDeclaredIdentifier(this); |
18842 } | 18841 } |
18843 DeclaredIdentifier.prototype.visit$1 = function($0) { | 18842 DeclaredIdentifier.prototype.visit$1 = function($0) { |
18844 return this.visit(($0 && $0.is$TreeVisitor())); | 18843 return this.visit(($0 && $0.is$TreeVisitor())); |
18845 }; | 18844 }; |
18846 // ********** Code for lang_Type ************** | 18845 // ********** Code for Type ************** |
18847 function lang_Type(name) { | 18846 function Type(name) { |
18848 this.name = name; | 18847 this.name = name; |
18849 this.isTested = false; | 18848 this.isTested = false; |
18850 // Initializers done | 18849 // Initializers done |
18851 } | 18850 } |
18852 lang_Type.prototype.is$lang_Type = function(){return this;}; | 18851 Type.prototype.is$Type = function(){return this;}; |
18853 lang_Type.prototype.is$Named = function(){return this;}; | 18852 Type.prototype.is$Named = function(){return this;}; |
18854 lang_Type.prototype.get$name = function() { return this.name; }; | 18853 Type.prototype.get$name = function() { return this.name; }; |
18855 lang_Type.prototype.markUsed = function() { | 18854 Type.prototype.markUsed = function() { |
18856 | 18855 |
18857 } | 18856 } |
18858 lang_Type.prototype.get$typeMember = function() { | 18857 Type.prototype.get$typeMember = function() { |
18859 var $0; | 18858 var $0; |
18860 if (this._typeMember == null) { | 18859 if (this._typeMember == null) { |
18861 this._typeMember = new TypeMember((this && this.is$DefinedType())); | 18860 this._typeMember = new TypeMember((this && this.is$DefinedType())); |
18862 } | 18861 } |
18863 return (($0 = this._typeMember) && $0.is$TypeMember()); | 18862 return (($0 = this._typeMember) && $0.is$TypeMember()); |
18864 } | 18863 } |
18865 lang_Type.prototype.getMember = function(name) { | 18864 Type.prototype.getMember = function(name) { |
18866 return null; | 18865 return null; |
18867 } | 18866 } |
18868 lang_Type.prototype.get$isVar = function() { | 18867 Type.prototype.get$isVar = function() { |
18869 return false; | 18868 return false; |
18870 } | 18869 } |
18871 lang_Type.prototype.get$isTop = function() { | 18870 Type.prototype.get$isTop = function() { |
18872 return false; | 18871 return false; |
18873 } | 18872 } |
18874 lang_Type.prototype.get$isObject = function() { | 18873 Type.prototype.get$isObject = function() { |
18875 return false; | 18874 return false; |
18876 } | 18875 } |
18877 lang_Type.prototype.get$isString = function() { | 18876 Type.prototype.get$isString = function() { |
18878 return false; | 18877 return false; |
18879 } | 18878 } |
18880 lang_Type.prototype.get$isBool = function() { | 18879 Type.prototype.get$isBool = function() { |
18881 return false; | 18880 return false; |
18882 } | 18881 } |
18883 lang_Type.prototype.get$isFunction = function() { | 18882 Type.prototype.get$isFunction = function() { |
18884 return false; | 18883 return false; |
18885 } | 18884 } |
18886 lang_Type.prototype.get$isList = function() { | 18885 Type.prototype.get$isList = function() { |
18887 return false; | 18886 return false; |
18888 } | 18887 } |
18889 lang_Type.prototype.get$isNum = function() { | 18888 Type.prototype.get$isNum = function() { |
18890 return false; | 18889 return false; |
18891 } | 18890 } |
18892 lang_Type.prototype.get$isVoid = function() { | 18891 Type.prototype.get$isVoid = function() { |
18893 return false; | 18892 return false; |
18894 } | 18893 } |
18895 lang_Type.prototype.get$isNullable = function() { | 18894 Type.prototype.get$isNullable = function() { |
18896 return true; | 18895 return true; |
18897 } | 18896 } |
18898 lang_Type.prototype.get$isVarOrFunction = function() { | 18897 Type.prototype.get$isVarOrFunction = function() { |
18899 return $notnull_bool(this.get$isVar()) || $notnull_bool(this.get$isFunction())
; | 18898 return $notnull_bool(this.get$isVar()) || $notnull_bool(this.get$isFunction())
; |
18900 } | 18899 } |
18901 lang_Type.prototype.get$isVarOrObject = function() { | 18900 Type.prototype.get$isVarOrObject = function() { |
18902 return $notnull_bool(this.get$isVar()) || $notnull_bool(this.get$isObject()); | 18901 return $notnull_bool(this.get$isVar()) || $notnull_bool(this.get$isObject()); |
18903 } | 18902 } |
18904 lang_Type.prototype.getCallMethod = function() { | 18903 Type.prototype.getCallMethod = function() { |
18905 return null; | 18904 return null; |
18906 } | 18905 } |
18907 lang_Type.prototype.get$isClosed = function() { | 18906 Type.prototype.get$isClosed = function() { |
18908 return $notnull_bool(this.get$isString()) || $notnull_bool(this.get$isBool())
|| $notnull_bool(this.get$isNum()) || $notnull_bool(this.get$isFunction()) || $n
otnull_bool(this.get$isVar()); | 18907 return $notnull_bool(this.get$isString()) || $notnull_bool(this.get$isBool())
|| $notnull_bool(this.get$isNum()) || $notnull_bool(this.get$isFunction()) || $n
otnull_bool(this.get$isVar()); |
18909 } | 18908 } |
18910 lang_Type.prototype.get$isUsed = function() { | 18909 Type.prototype.get$isUsed = function() { |
18911 return false; | 18910 return false; |
18912 } | 18911 } |
18913 lang_Type.prototype.get$isGeneric = function() { | 18912 Type.prototype.get$isGeneric = function() { |
18914 return false; | 18913 return false; |
18915 } | 18914 } |
18916 lang_Type.prototype.get$isNativeType = function() { | 18915 Type.prototype.get$isNativeType = function() { |
18917 return false; | 18916 return false; |
18918 } | 18917 } |
18919 lang_Type.prototype.get$isNative = function() { | 18918 Type.prototype.get$isNative = function() { |
18920 return this.get$isNativeType(); | 18919 return this.get$isNativeType(); |
18921 } | 18920 } |
18922 lang_Type.prototype.get$hasTypeParams = function() { | 18921 Type.prototype.get$hasTypeParams = function() { |
18923 return false; | 18922 return false; |
18924 } | 18923 } |
18925 lang_Type.prototype.get$typeofName = function() { | 18924 Type.prototype.get$typeofName = function() { |
18926 return null; | 18925 return null; |
18927 } | 18926 } |
18928 lang_Type.prototype.get$jsname = function() { | 18927 Type.prototype.get$jsname = function() { |
18929 return this._jsname == null ? this.name : this._jsname; | 18928 return this._jsname == null ? this.name : this._jsname; |
18930 } | 18929 } |
18931 lang_Type.prototype.set$jsname = function(name) { | 18930 Type.prototype.set$jsname = function(name) { |
18932 return this._jsname = name; | 18931 return this._jsname = name; |
18933 } | 18932 } |
18934 lang_Type.prototype.get$members = function() { | 18933 Type.prototype.get$members = function() { |
18935 return null; | 18934 return null; |
18936 } | 18935 } |
18937 lang_Type.prototype.get$definition = function() { | 18936 Type.prototype.get$definition = function() { |
18938 return null; | 18937 return null; |
18939 } | 18938 } |
18940 lang_Type.prototype.get$factories = function() { | 18939 Type.prototype.get$factories = function() { |
18941 return null; | 18940 return null; |
18942 } | 18941 } |
18943 lang_Type.prototype.get$typeArgsInOrder = function() { | 18942 Type.prototype.get$typeArgsInOrder = function() { |
18944 return null; | 18943 return null; |
18945 } | 18944 } |
18946 lang_Type.prototype.get$genericType = function() { | 18945 Type.prototype.get$genericType = function() { |
18947 return (this && this.is$DefinedType()); | 18946 return (this && this.is$DefinedType()); |
18948 } | 18947 } |
18949 lang_Type.prototype.get$interfaces = function() { | 18948 Type.prototype.get$interfaces = function() { |
18950 return null; | 18949 return null; |
18951 } | 18950 } |
18952 lang_Type.prototype.get$parent = function() { | 18951 Type.prototype.get$parent = function() { |
18953 return null; | 18952 return null; |
18954 } | 18953 } |
18955 lang_Type.prototype.getAllMembers = function() { | 18954 Type.prototype.getAllMembers = function() { |
18956 return $map([]); | 18955 return $map([]); |
18957 } | 18956 } |
18958 lang_Type.prototype.hashCode = function() { | 18957 Type.prototype.hashCode = function() { |
18959 return this.name.hashCode(); | 18958 return this.name.hashCode(); |
18960 } | 18959 } |
18961 lang_Type.prototype.ensureSubtypeOf = function(other, span, typeErrors) { | 18960 Type.prototype.ensureSubtypeOf = function(other, span, typeErrors) { |
18962 if (!$notnull_bool(this.isSubtypeOf(other))) { | 18961 if (!$notnull_bool(this.isSubtypeOf(other))) { |
18963 var msg = ('type ' + this.name + ' is not a subtype of ' + other.name + ''); | 18962 var msg = ('type ' + this.name + ' is not a subtype of ' + other.name + ''); |
18964 if ($notnull_bool(typeErrors)) { | 18963 if ($notnull_bool(typeErrors)) { |
18965 world.error($assert_String(msg), span); | 18964 world.error($assert_String(msg), span); |
18966 } | 18965 } |
18967 else { | 18966 else { |
18968 world.warning($assert_String(msg), span); | 18967 world.warning($assert_String(msg), span); |
18969 } | 18968 } |
18970 } | 18969 } |
18971 } | 18970 } |
18972 lang_Type.prototype.needsVarCall = function(args) { | 18971 Type.prototype.needsVarCall = function(args) { |
18973 if ($notnull_bool(this.get$isVarOrFunction())) { | 18972 if ($notnull_bool(this.get$isVarOrFunction())) { |
18974 return true; | 18973 return true; |
18975 } | 18974 } |
18976 var call = this.getCallMethod(); | 18975 var call = this.getCallMethod(); |
18977 if ($notnull_bool($ne(call, null))) { | 18976 if ($notnull_bool($ne(call, null))) { |
18978 if (args.get$length() != call.get$parameters().length || !$notnull_bool(call
.namesInOrder$1(args))) { | 18977 if (args.get$length() != call.get$parameters().length || !$notnull_bool(call
.namesInOrder$1(args))) { |
18979 return true; | 18978 return true; |
18980 } | 18979 } |
18981 } | 18980 } |
18982 return false; | 18981 return false; |
18983 } | 18982 } |
18984 lang_Type.union = function(x, y) { | 18983 Type.union = function(x, y) { |
18985 if ($eq(x, y)) return x; | 18984 if ($eq(x, y)) return x; |
18986 if ($notnull_bool(x.get$isNum()) && $notnull_bool(y.get$isNum())) return world
.numType; | 18985 if ($notnull_bool(x.get$isNum()) && $notnull_bool(y.get$isNum())) return world
.numType; |
18987 if ($notnull_bool(x.get$isString()) && $notnull_bool(y.get$isString())) return
world.stringType; | 18986 if ($notnull_bool(x.get$isString()) && $notnull_bool(y.get$isString())) return
world.stringType; |
18988 return world.varType; | 18987 return world.varType; |
18989 } | 18988 } |
18990 lang_Type.prototype.isAssignable = function(other) { | 18989 Type.prototype.isAssignable = function(other) { |
18991 return $notnull_bool(this.isSubtypeOf(other)) || $notnull_bool(other.isSubtype
Of(this)); | 18990 return $notnull_bool(this.isSubtypeOf(other)) || $notnull_bool(other.isSubtype
Of(this)); |
18992 } | 18991 } |
18993 lang_Type.prototype._isDirectSupertypeOf = function(other) { | 18992 Type.prototype._isDirectSupertypeOf = function(other) { |
18994 var $this = this; // closure support | 18993 var $this = this; // closure support |
18995 if ($notnull_bool(other.get$isClass())) { | 18994 if ($notnull_bool(other.get$isClass())) { |
18996 return $eq(other.get$parent(), this) || $notnull_bool(this.get$isObject()) &
& other.get$parent() == null; | 18995 return $eq(other.get$parent(), this) || $notnull_bool(this.get$isObject()) &
& other.get$parent() == null; |
18997 } | 18996 } |
18998 else { | 18997 else { |
18999 if (other.get$interfaces() == null || other.get$interfaces().isEmpty()) { | 18998 if (other.get$interfaces() == null || other.get$interfaces().isEmpty()) { |
19000 return this.get$isObject(); | 18999 return this.get$isObject(); |
19001 } | 19000 } |
19002 else { | 19001 else { |
19003 return other.get$interfaces().some((function (i) { | 19002 return other.get$interfaces().some((function (i) { |
19004 return $eq(i, $this); | 19003 return $eq(i, $this); |
19005 }) | 19004 }) |
19006 ); | 19005 ); |
19007 } | 19006 } |
19008 } | 19007 } |
19009 } | 19008 } |
19010 lang_Type.prototype.isSubtypeOf = function(other) { | 19009 Type.prototype.isSubtypeOf = function(other) { |
19011 if ((other instanceof ParameterType)) { | 19010 if ((other instanceof ParameterType)) { |
19012 return true; | 19011 return true; |
19013 } | 19012 } |
19014 if ($eq(this, other)) return true; | 19013 if ($eq(this, other)) return true; |
19015 if ($notnull_bool(this.get$isVar())) return true; | 19014 if ($notnull_bool(this.get$isVar())) return true; |
19016 if ($notnull_bool(other.get$isVar())) return true; | 19015 if ($notnull_bool(other.get$isVar())) return true; |
19017 if ($notnull_bool(other._isDirectSupertypeOf(this))) return true; | 19016 if ($notnull_bool(other._isDirectSupertypeOf(this))) return true; |
19018 var call = this.getCallMethod(); | 19017 var call = this.getCallMethod(); |
19019 var otherCall = other.getCallMethod(); | 19018 var otherCall = other.getCallMethod(); |
19020 if ($notnull_bool($ne(call, null)) && $notnull_bool($ne(otherCall, null))) { | 19019 if ($notnull_bool($ne(call, null)) && $notnull_bool($ne(otherCall, null))) { |
19021 return lang_Type._isFunctionSubtypeOf((call && call.is$MethodMember()), (oth
erCall && otherCall.is$MethodMember())); | 19020 return Type._isFunctionSubtypeOf((call && call.is$MethodMember()), (otherCal
l && otherCall.is$MethodMember())); |
19022 } | 19021 } |
19023 if ($eq(this.get$genericType(), other.get$genericType()) && $notnull_bool($ne(
this.get$typeArgsInOrder(), null)) && $notnull_bool($ne(other.get$typeArgsInOrde
r(), null)) && this.get$typeArgsInOrder().length == other.get$typeArgsInOrder().
length) { | 19022 if ($eq(this.get$genericType(), other.get$genericType()) && $notnull_bool($ne(
this.get$typeArgsInOrder(), null)) && $notnull_bool($ne(other.get$typeArgsInOrde
r(), null)) && this.get$typeArgsInOrder().length == other.get$typeArgsInOrder().
length) { |
19024 var t = this.get$typeArgsInOrder().iterator$0(); | 19023 var t = this.get$typeArgsInOrder().iterator$0(); |
19025 var s = other.get$typeArgsInOrder().iterator$0(); | 19024 var s = other.get$typeArgsInOrder().iterator$0(); |
19026 while ($notnull_bool(t.hasNext$0())) { | 19025 while ($notnull_bool(t.hasNext$0())) { |
19027 if (!$notnull_bool(t.next$0().isSubtypeOf$1(s.next$0()))) return false; | 19026 if (!$notnull_bool(t.next$0().isSubtypeOf$1(s.next$0()))) return false; |
19028 } | 19027 } |
19029 return true; | 19028 return true; |
19030 } | 19029 } |
19031 if (this.get$parent() != null && $notnull_bool(this.get$parent().isSubtypeOf(o
ther))) { | 19030 if (this.get$parent() != null && $notnull_bool(this.get$parent().isSubtypeOf(o
ther))) { |
19032 return true; | 19031 return true; |
19033 } | 19032 } |
19034 if (this.get$interfaces() != null && this.get$interfaces().some((function (i)
{ | 19033 if (this.get$interfaces() != null && this.get$interfaces().some((function (i)
{ |
19035 return i.isSubtypeOf$1(other); | 19034 return i.isSubtypeOf$1(other); |
19036 }) | 19035 }) |
19037 )) { | 19036 )) { |
19038 return true; | 19037 return true; |
19039 } | 19038 } |
19040 return false; | 19039 return false; |
19041 } | 19040 } |
19042 lang_Type._isFunctionSubtypeOf = function(t, s) { | 19041 Type._isFunctionSubtypeOf = function(t, s) { |
19043 if (!$notnull_bool(s.returnType.get$isVoid()) && !$notnull_bool(s.returnType.i
sAssignable(t.returnType))) { | 19042 if (!$notnull_bool(s.returnType.get$isVoid()) && !$notnull_bool(s.returnType.i
sAssignable(t.returnType))) { |
19044 return false; | 19043 return false; |
19045 } | 19044 } |
19046 var tp = t.parameters; | 19045 var tp = t.parameters; |
19047 var sp = s.parameters; | 19046 var sp = s.parameters; |
19048 if (tp.length < sp.length) return false; | 19047 if (tp.length < sp.length) return false; |
19049 for (var i = 0; | 19048 for (var i = 0; |
19050 i < sp.length; i++) { | 19049 i < sp.length; i++) { |
19051 if ($ne(tp.$index(i).get$isOptional(), sp.$index(i).get$isOptional())) retur
n false; | 19050 if ($ne(tp.$index(i).get$isOptional(), sp.$index(i).get$isOptional())) retur
n false; |
19052 if ($notnull_bool(tp.$index(i).get$isOptional()) && $notnull_bool($ne(tp.$in
dex(i).get$name(), sp.$index(i).get$name()))) return false; | 19051 if ($notnull_bool(tp.$index(i).get$isOptional()) && $notnull_bool($ne(tp.$in
dex(i).get$name(), sp.$index(i).get$name()))) return false; |
19053 if (!$notnull_bool(tp.$index(i).type.isAssignable$1(sp.$index(i).type))) ret
urn false; | 19052 if (!$notnull_bool(tp.$index(i).type.isAssignable$1(sp.$index(i).type))) ret
urn false; |
19054 } | 19053 } |
19055 if (tp.length > sp.length && !$notnull_bool(tp.$index(sp.length).get$isOptiona
l())) return false; | 19054 if (tp.length > sp.length && !$notnull_bool(tp.$index(sp.length).get$isOptiona
l())) return false; |
19056 return true; | 19055 return true; |
19057 } | 19056 } |
19058 lang_Type.prototype.addDirectSubtype$1 = function($0) { | 19057 Type.prototype.addDirectSubtype$1 = function($0) { |
19059 return this.addDirectSubtype(($0 && $0.is$lang_Type())); | 19058 return this.addDirectSubtype(($0 && $0.is$Type())); |
19060 }; | 19059 }; |
19061 lang_Type.prototype.ensureSubtypeOf$3 = function($0, $1, $2) { | 19060 Type.prototype.ensureSubtypeOf$3 = function($0, $1, $2) { |
19062 return this.ensureSubtypeOf(($0 && $0.is$lang_Type()), ($1 && $1.is$SourceSpan
()), $assert_bool($2)); | 19061 return this.ensureSubtypeOf(($0 && $0.is$Type()), ($1 && $1.is$SourceSpan()),
$assert_bool($2)); |
19063 }; | 19062 }; |
19064 lang_Type.prototype.getConstructor$1 = function($0) { | 19063 Type.prototype.getConstructor$1 = function($0) { |
19065 return this.getConstructor($assert_String($0)); | 19064 return this.getConstructor($assert_String($0)); |
19066 }; | 19065 }; |
19067 lang_Type.prototype.getFactory$2 = function($0, $1) { | 19066 Type.prototype.getFactory$2 = function($0, $1) { |
19068 return this.getFactory(($0 && $0.is$lang_Type()), $assert_String($1)); | 19067 return this.getFactory(($0 && $0.is$Type()), $assert_String($1)); |
19069 }; | 19068 }; |
19070 lang_Type.prototype.getMember$1 = function($0) { | 19069 Type.prototype.getMember$1 = function($0) { |
19071 return this.getMember($assert_String($0)); | 19070 return this.getMember($assert_String($0)); |
19072 }; | 19071 }; |
19073 lang_Type.prototype.getOrMakeConcreteType$1 = function($0) { | 19072 Type.prototype.getOrMakeConcreteType$1 = function($0) { |
19074 return this.getOrMakeConcreteType(($0 && $0.is$List$Type())); | 19073 return this.getOrMakeConcreteType(($0 && $0.is$List$Type())); |
19075 }; | 19074 }; |
19076 lang_Type.prototype.hashCode$0 = function() { | 19075 Type.prototype.hashCode$0 = function() { |
19077 return this.hashCode(); | 19076 return this.hashCode(); |
19078 }; | 19077 }; |
19079 lang_Type.prototype.isAssignable$1 = function($0) { | 19078 Type.prototype.isAssignable$1 = function($0) { |
19080 return this.isAssignable(($0 && $0.is$lang_Type())); | 19079 return this.isAssignable(($0 && $0.is$Type())); |
19081 }; | 19080 }; |
19082 lang_Type.prototype.isSubtypeOf$1 = function($0) { | 19081 Type.prototype.isSubtypeOf$1 = function($0) { |
19083 return this.isSubtypeOf(($0 && $0.is$lang_Type())); | 19082 return this.isSubtypeOf(($0 && $0.is$Type())); |
19084 }; | 19083 }; |
19085 lang_Type.prototype.markUsed$0 = function() { | 19084 Type.prototype.markUsed$0 = function() { |
19086 return this.markUsed(); | 19085 return this.markUsed(); |
19087 }; | 19086 }; |
19088 lang_Type.prototype.resolveMember$1 = function($0) { | 19087 Type.prototype.resolveMember$1 = function($0) { |
19089 return this.resolveMember($assert_String($0)); | 19088 return this.resolveMember($assert_String($0)); |
19090 }; | 19089 }; |
19091 lang_Type.prototype.resolveTypeParams$1 = function($0) { | 19090 Type.prototype.resolveTypeParams$1 = function($0) { |
19092 return this.resolveTypeParams(($0 && $0.is$ConcreteType())); | 19091 return this.resolveTypeParams(($0 && $0.is$ConcreteType())); |
19093 }; | 19092 }; |
19094 // ********** Code for ParameterType ************** | 19093 // ********** Code for ParameterType ************** |
19095 function ParameterType(name, typeParameter) { | 19094 function ParameterType(name, typeParameter) { |
19096 this.typeParameter = typeParameter; | 19095 this.typeParameter = typeParameter; |
19097 // Initializers done | 19096 // Initializers done |
19098 lang_Type.call(this, name); | 19097 Type.call(this, name); |
19099 } | 19098 } |
19100 $inherits(ParameterType, lang_Type); | 19099 $inherits(ParameterType, Type); |
19101 ParameterType.prototype.is$ParameterType = function(){return this;}; | 19100 ParameterType.prototype.is$ParameterType = function(){return this;}; |
19102 ParameterType.prototype.get$isClass = function() { | 19101 ParameterType.prototype.get$isClass = function() { |
19103 return false; | 19102 return false; |
19104 } | 19103 } |
19105 ParameterType.prototype.get$library = function() { | 19104 ParameterType.prototype.get$library = function() { |
19106 return null; | 19105 return null; |
19107 } | 19106 } |
19108 ParameterType.prototype.get$span = function() { | 19107 ParameterType.prototype.get$span = function() { |
19109 return this.typeParameter.span; | 19108 return this.typeParameter.span; |
19110 } | 19109 } |
(...skipping 13 matching lines...) Expand all Loading... |
19124 return this.extendsType.resolveMember(memberName); | 19123 return this.extendsType.resolveMember(memberName); |
19125 } | 19124 } |
19126 ParameterType.prototype.getConstructor = function(constructorName) { | 19125 ParameterType.prototype.getConstructor = function(constructorName) { |
19127 world.internalError('no constructors on type parameters yet'); | 19126 world.internalError('no constructors on type parameters yet'); |
19128 } | 19127 } |
19129 ParameterType.prototype.getOrMakeConcreteType = function(typeArgs) { | 19128 ParameterType.prototype.getOrMakeConcreteType = function(typeArgs) { |
19130 world.internalError('no concrete types of type parameters yet', this.get$span(
)); | 19129 world.internalError('no concrete types of type parameters yet', this.get$span(
)); |
19131 } | 19130 } |
19132 ParameterType.prototype.resolveTypeParams = function(inType) { | 19131 ParameterType.prototype.resolveTypeParams = function(inType) { |
19133 var $0; | 19132 var $0; |
19134 return (($0 = inType.typeArguments.$index(this.name)) && $0.is$lang_Type()); | 19133 return (($0 = inType.typeArguments.$index(this.name)) && $0.is$Type()); |
19135 } | 19134 } |
19136 ParameterType.prototype.addDirectSubtype = function(type) { | 19135 ParameterType.prototype.addDirectSubtype = function(type) { |
19137 world.internalError('no subtypes of type parameters yet', this.get$span()); | 19136 world.internalError('no subtypes of type parameters yet', this.get$span()); |
19138 } | 19137 } |
19139 ParameterType.prototype.resolve = function(inType) { | 19138 ParameterType.prototype.resolve = function(inType) { |
19140 if (this.typeParameter.extendsType != null) { | 19139 if (this.typeParameter.extendsType != null) { |
19141 this.extendsType = inType.resolveType(this.typeParameter.extendsType, true); | 19140 this.extendsType = inType.resolveType(this.typeParameter.extendsType, true); |
19142 } | 19141 } |
19143 else { | 19142 else { |
19144 this.extendsType = world.objectType; | 19143 this.extendsType = world.objectType; |
19145 } | 19144 } |
19146 } | 19145 } |
19147 ParameterType.prototype.addDirectSubtype$1 = function($0) { | 19146 ParameterType.prototype.addDirectSubtype$1 = function($0) { |
19148 return this.addDirectSubtype(($0 && $0.is$lang_Type())); | 19147 return this.addDirectSubtype(($0 && $0.is$Type())); |
19149 }; | 19148 }; |
19150 ParameterType.prototype.getConstructor$1 = function($0) { | 19149 ParameterType.prototype.getConstructor$1 = function($0) { |
19151 return this.getConstructor($assert_String($0)); | 19150 return this.getConstructor($assert_String($0)); |
19152 }; | 19151 }; |
19153 ParameterType.prototype.getOrMakeConcreteType$1 = function($0) { | 19152 ParameterType.prototype.getOrMakeConcreteType$1 = function($0) { |
19154 return this.getOrMakeConcreteType(($0 && $0.is$List$Type())); | 19153 return this.getOrMakeConcreteType(($0 && $0.is$List$Type())); |
19155 }; | 19154 }; |
19156 ParameterType.prototype.isSubtypeOf$1 = function($0) { | 19155 ParameterType.prototype.isSubtypeOf$1 = function($0) { |
19157 return this.isSubtypeOf(($0 && $0.is$lang_Type())); | 19156 return this.isSubtypeOf(($0 && $0.is$Type())); |
19158 }; | 19157 }; |
19159 ParameterType.prototype.resolve$1 = function($0) { | 19158 ParameterType.prototype.resolve$1 = function($0) { |
19160 return this.resolve(($0 && $0.is$lang_Type())); | 19159 return this.resolve(($0 && $0.is$Type())); |
19161 }; | 19160 }; |
19162 ParameterType.prototype.resolveMember$1 = function($0) { | 19161 ParameterType.prototype.resolveMember$1 = function($0) { |
19163 return this.resolveMember($assert_String($0)); | 19162 return this.resolveMember($assert_String($0)); |
19164 }; | 19163 }; |
19165 ParameterType.prototype.resolveTypeParams$1 = function($0) { | 19164 ParameterType.prototype.resolveTypeParams$1 = function($0) { |
19166 return this.resolveTypeParams(($0 && $0.is$ConcreteType())); | 19165 return this.resolveTypeParams(($0 && $0.is$ConcreteType())); |
19167 }; | 19166 }; |
19168 // ********** Code for NonNullableType ************** | 19167 // ********** Code for NonNullableType ************** |
19169 function NonNullableType(type) { | 19168 function NonNullableType(type) { |
19170 this.type = type; | 19169 this.type = type; |
19171 // Initializers done | 19170 // Initializers done |
19172 lang_Type.call(this, type.name); | 19171 Type.call(this, type.name); |
19173 } | 19172 } |
19174 $inherits(NonNullableType, lang_Type); | 19173 $inherits(NonNullableType, Type); |
19175 NonNullableType.prototype.get$type = function() { return this.type; }; | 19174 NonNullableType.prototype.get$type = function() { return this.type; }; |
19176 NonNullableType.prototype.get$isNullable = function() { | 19175 NonNullableType.prototype.get$isNullable = function() { |
19177 return false; | 19176 return false; |
19178 } | 19177 } |
19179 NonNullableType.prototype.get$isBool = function() { | 19178 NonNullableType.prototype.get$isBool = function() { |
19180 return this.type.get$isBool(); | 19179 return this.type.get$isBool(); |
19181 } | 19180 } |
19182 NonNullableType.prototype.get$isUsed = function() { | 19181 NonNullableType.prototype.get$isUsed = function() { |
19183 return false; | 19182 return false; |
19184 } | 19183 } |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
19269 NonNullableType.prototype.get$parent = function() { | 19268 NonNullableType.prototype.get$parent = function() { |
19270 return this.type.get$parent(); | 19269 return this.type.get$parent(); |
19271 } | 19270 } |
19272 NonNullableType.prototype.getAllMembers = function() { | 19271 NonNullableType.prototype.getAllMembers = function() { |
19273 return this.type.getAllMembers(); | 19272 return this.type.getAllMembers(); |
19274 } | 19273 } |
19275 NonNullableType.prototype.get$isNativeType = function() { | 19274 NonNullableType.prototype.get$isNativeType = function() { |
19276 return this.type.get$isNativeType(); | 19275 return this.type.get$isNativeType(); |
19277 } | 19276 } |
19278 NonNullableType.prototype.addDirectSubtype$1 = function($0) { | 19277 NonNullableType.prototype.addDirectSubtype$1 = function($0) { |
19279 return this.addDirectSubtype(($0 && $0.is$lang_Type())); | 19278 return this.addDirectSubtype(($0 && $0.is$Type())); |
19280 }; | 19279 }; |
19281 NonNullableType.prototype.getConstructor$1 = function($0) { | 19280 NonNullableType.prototype.getConstructor$1 = function($0) { |
19282 return this.getConstructor($assert_String($0)); | 19281 return this.getConstructor($assert_String($0)); |
19283 }; | 19282 }; |
19284 NonNullableType.prototype.getFactory$2 = function($0, $1) { | 19283 NonNullableType.prototype.getFactory$2 = function($0, $1) { |
19285 return this.getFactory(($0 && $0.is$lang_Type()), $assert_String($1)); | 19284 return this.getFactory(($0 && $0.is$Type()), $assert_String($1)); |
19286 }; | 19285 }; |
19287 NonNullableType.prototype.getMember$1 = function($0) { | 19286 NonNullableType.prototype.getMember$1 = function($0) { |
19288 return this.getMember($assert_String($0)); | 19287 return this.getMember($assert_String($0)); |
19289 }; | 19288 }; |
19290 NonNullableType.prototype.getOrMakeConcreteType$1 = function($0) { | 19289 NonNullableType.prototype.getOrMakeConcreteType$1 = function($0) { |
19291 return this.getOrMakeConcreteType(($0 && $0.is$List$Type())); | 19290 return this.getOrMakeConcreteType(($0 && $0.is$List$Type())); |
19292 }; | 19291 }; |
19293 NonNullableType.prototype.isSubtypeOf$1 = function($0) { | 19292 NonNullableType.prototype.isSubtypeOf$1 = function($0) { |
19294 return this.isSubtypeOf(($0 && $0.is$lang_Type())); | 19293 return this.isSubtypeOf(($0 && $0.is$Type())); |
19295 }; | 19294 }; |
19296 NonNullableType.prototype.markUsed$0 = function() { | 19295 NonNullableType.prototype.markUsed$0 = function() { |
19297 return this.markUsed(); | 19296 return this.markUsed(); |
19298 }; | 19297 }; |
19299 NonNullableType.prototype.resolveMember$1 = function($0) { | 19298 NonNullableType.prototype.resolveMember$1 = function($0) { |
19300 return this.resolveMember($assert_String($0)); | 19299 return this.resolveMember($assert_String($0)); |
19301 }; | 19300 }; |
19302 NonNullableType.prototype.resolveTypeParams$1 = function($0) { | 19301 NonNullableType.prototype.resolveTypeParams$1 = function($0) { |
19303 return this.resolveTypeParams(($0 && $0.is$ConcreteType())); | 19302 return this.resolveTypeParams(($0 && $0.is$ConcreteType())); |
19304 }; | 19303 }; |
19305 // ********** Code for ConcreteType ************** | 19304 // ********** Code for ConcreteType ************** |
19306 function ConcreteType(name, genericType, typeArguments, typeArgsInOrder) { | 19305 function ConcreteType(name, genericType, typeArguments, typeArgsInOrder) { |
19307 this.genericType = genericType; | 19306 this.genericType = genericType; |
19308 this.typeArguments = typeArguments; | 19307 this.typeArguments = typeArguments; |
19309 this.typeArgsInOrder = typeArgsInOrder; | 19308 this.typeArgsInOrder = typeArgsInOrder; |
19310 this.constructors = $map([]); | 19309 this.constructors = $map([]); |
19311 this.members = $map([]); | 19310 this.members = $map([]); |
19312 this.factories = new FactoryMap(); | 19311 this.factories = new FactoryMap(); |
19313 // Initializers done | 19312 // Initializers done |
19314 lang_Type.call(this, name); | 19313 Type.call(this, name); |
19315 } | 19314 } |
19316 $inherits(ConcreteType, lang_Type); | 19315 $inherits(ConcreteType, Type); |
19317 ConcreteType.prototype.is$ConcreteType = function(){return this;}; | 19316 ConcreteType.prototype.is$ConcreteType = function(){return this;}; |
19318 ConcreteType.prototype.get$genericType = function() { return this.genericType; }
; | 19317 ConcreteType.prototype.get$genericType = function() { return this.genericType; }
; |
19319 ConcreteType.prototype.get$typeArgsInOrder = function() { return this.typeArgsIn
Order; }; | 19318 ConcreteType.prototype.get$typeArgsInOrder = function() { return this.typeArgsIn
Order; }; |
19320 ConcreteType.prototype.set$typeArgsInOrder = function(value) { return this.typeA
rgsInOrder = value; }; | 19319 ConcreteType.prototype.set$typeArgsInOrder = function(value) { return this.typeA
rgsInOrder = value; }; |
19321 ConcreteType.prototype.get$isList = function() { | 19320 ConcreteType.prototype.get$isList = function() { |
19322 return this.genericType.get$isList(); | 19321 return this.genericType.get$isList(); |
19323 } | 19322 } |
19324 ConcreteType.prototype.get$isClass = function() { | 19323 ConcreteType.prototype.get$isClass = function() { |
19325 return this.genericType.isClass; | 19324 return this.genericType.isClass; |
19326 } | 19325 } |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
19437 var $list = this.genericType.get$subtypes(); | 19436 var $list = this.genericType.get$subtypes(); |
19438 for (var $i = this.genericType.get$subtypes().iterator(); $i.hasNext$0(); ) { | 19437 for (var $i = this.genericType.get$subtypes().iterator(); $i.hasNext$0(); ) { |
19439 var t = $i.next$0(); | 19438 var t = $i.next$0(); |
19440 var m = t.get$members().$index(memberName); | 19439 var m = t.get$members().$index(memberName); |
19441 if ($notnull_bool($ne(m, null))) ret.add$1(m); | 19440 if ($notnull_bool($ne(m, null))) ret.add$1(m); |
19442 } | 19441 } |
19443 return (ret && ret.is$MemberSet()); | 19442 return (ret && ret.is$MemberSet()); |
19444 } | 19443 } |
19445 ConcreteType.prototype.resolveType = function(node, isRequired) { | 19444 ConcreteType.prototype.resolveType = function(node, isRequired) { |
19446 var ret = this.genericType.resolveType(node, isRequired); | 19445 var ret = this.genericType.resolveType(node, isRequired); |
19447 return (ret && ret.is$lang_Type()); | 19446 return (ret && ret.is$Type()); |
19448 } | 19447 } |
19449 ConcreteType.prototype.addDirectSubtype = function(type) { | 19448 ConcreteType.prototype.addDirectSubtype = function(type) { |
19450 this.genericType.addDirectSubtype(type); | 19449 this.genericType.addDirectSubtype(type); |
19451 } | 19450 } |
19452 ConcreteType.prototype.addDirectSubtype$1 = function($0) { | 19451 ConcreteType.prototype.addDirectSubtype$1 = function($0) { |
19453 return this.addDirectSubtype(($0 && $0.is$lang_Type())); | 19452 return this.addDirectSubtype(($0 && $0.is$Type())); |
19454 }; | 19453 }; |
19455 ConcreteType.prototype.getConstructor$1 = function($0) { | 19454 ConcreteType.prototype.getConstructor$1 = function($0) { |
19456 return this.getConstructor($assert_String($0)); | 19455 return this.getConstructor($assert_String($0)); |
19457 }; | 19456 }; |
19458 ConcreteType.prototype.getFactory$2 = function($0, $1) { | 19457 ConcreteType.prototype.getFactory$2 = function($0, $1) { |
19459 return this.getFactory(($0 && $0.is$lang_Type()), $assert_String($1)); | 19458 return this.getFactory(($0 && $0.is$Type()), $assert_String($1)); |
19460 }; | 19459 }; |
19461 ConcreteType.prototype.getMember$1 = function($0) { | 19460 ConcreteType.prototype.getMember$1 = function($0) { |
19462 return this.getMember($assert_String($0)); | 19461 return this.getMember($assert_String($0)); |
19463 }; | 19462 }; |
19464 ConcreteType.prototype.getOrMakeConcreteType$1 = function($0) { | 19463 ConcreteType.prototype.getOrMakeConcreteType$1 = function($0) { |
19465 return this.getOrMakeConcreteType(($0 && $0.is$List$Type())); | 19464 return this.getOrMakeConcreteType(($0 && $0.is$List$Type())); |
19466 }; | 19465 }; |
19467 ConcreteType.prototype.markUsed$0 = function() { | 19466 ConcreteType.prototype.markUsed$0 = function() { |
19468 return this.markUsed(); | 19467 return this.markUsed(); |
19469 }; | 19468 }; |
19470 ConcreteType.prototype.resolveMember$1 = function($0) { | 19469 ConcreteType.prototype.resolveMember$1 = function($0) { |
19471 return this.resolveMember($assert_String($0)); | 19470 return this.resolveMember($assert_String($0)); |
19472 }; | 19471 }; |
19473 ConcreteType.prototype.resolveTypeParams$1 = function($0) { | 19472 ConcreteType.prototype.resolveTypeParams$1 = function($0) { |
19474 return this.resolveTypeParams(($0 && $0.is$ConcreteType())); | 19473 return this.resolveTypeParams(($0 && $0.is$ConcreteType())); |
19475 }; | 19474 }; |
19476 // ********** Code for DefinedType ************** | 19475 // ********** Code for DefinedType ************** |
19477 function DefinedType(name, library, definition, isClass) { | 19476 function DefinedType(name, library, definition, isClass) { |
19478 this.isUsed = false | 19477 this.isUsed = false |
19479 this.isNativeType = false | 19478 this.isNativeType = false |
19480 this.library = library; | 19479 this.library = library; |
19481 this.isClass = isClass; | 19480 this.isClass = isClass; |
19482 this.directSubtypes = new HashSetImplementation(); | 19481 this.directSubtypes = new HashSetImplementation(); |
19483 this.constructors = $map([]); | 19482 this.constructors = $map([]); |
19484 this.members = $map([]); | 19483 this.members = $map([]); |
19485 this.factories = new FactoryMap(); | 19484 this.factories = new FactoryMap(); |
19486 this._resolvedMembers = $map([]); | 19485 this._resolvedMembers = $map([]); |
19487 // Initializers done | 19486 // Initializers done |
19488 lang_Type.call(this, name); | 19487 Type.call(this, name); |
19489 this.setDefinition(definition); | 19488 this.setDefinition(definition); |
19490 } | 19489 } |
19491 $inherits(DefinedType, lang_Type); | 19490 $inherits(DefinedType, Type); |
19492 DefinedType.prototype.is$DefinedType = function(){return this;}; | 19491 DefinedType.prototype.is$DefinedType = function(){return this;}; |
19493 DefinedType.prototype.get$definition = function() { return this.definition; }; | 19492 DefinedType.prototype.get$definition = function() { return this.definition; }; |
19494 DefinedType.prototype.set$definition = function(value) { return this.definition
= value; }; | 19493 DefinedType.prototype.set$definition = function(value) { return this.definition
= value; }; |
19495 DefinedType.prototype.get$library = function() { return this.library; }; | 19494 DefinedType.prototype.get$library = function() { return this.library; }; |
19496 DefinedType.prototype.get$isClass = function() { return this.isClass; }; | 19495 DefinedType.prototype.get$isClass = function() { return this.isClass; }; |
19497 DefinedType.prototype.get$parent = function() { | 19496 DefinedType.prototype.get$parent = function() { |
19498 return this._parent; | 19497 return this._parent; |
19499 } | 19498 } |
19500 DefinedType.prototype.set$parent = function(p) { | 19499 DefinedType.prototype.set$parent = function(p) { |
19501 this._parent = p; | 19500 this._parent = p; |
(...skipping 485 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
19987 name = $assert_String(typeRef.names.last().get$name()); | 19986 name = $assert_String(typeRef.names.last().get$name()); |
19988 } | 19987 } |
19989 else { | 19988 else { |
19990 name = typeRef.name.name; | 19989 name = typeRef.name.name; |
19991 } | 19990 } |
19992 if (this.typeParameters != null) { | 19991 if (this.typeParameters != null) { |
19993 var $list = this.typeParameters; | 19992 var $list = this.typeParameters; |
19994 for (var $i = 0;$i < $list.length; $i++) { | 19993 for (var $i = 0;$i < $list.length; $i++) { |
19995 var tp = $list.$index($i); | 19994 var tp = $list.$index($i); |
19996 if ($notnull_bool($eq(tp.get$name(), name))) { | 19995 if ($notnull_bool($eq(tp.get$name(), name))) { |
19997 typeRef.type = (tp && tp.is$lang_Type()); | 19996 typeRef.type = (tp && tp.is$Type()); |
19998 } | 19997 } |
19999 } | 19998 } |
20000 } | 19999 } |
20001 if (typeRef.type == null) { | 20000 if (typeRef.type == null) { |
20002 typeRef.type = this.library.findType(typeRef); | 20001 typeRef.type = this.library.findType(typeRef); |
20003 } | 20002 } |
20004 if (typeRef.type == null) { | 20003 if (typeRef.type == null) { |
20005 var message = ('can not find type ' + DefinedType._getDottedName(typeRef)
+ ''); | 20004 var message = ('can not find type ' + DefinedType._getDottedName(typeRef)
+ ''); |
20006 if ($notnull_bool(typeErrors)) { | 20005 if ($notnull_bool(typeErrors)) { |
20007 world.error($assert_String(message), typeRef.span); | 20006 world.error($assert_String(message), typeRef.span); |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
20059 var paramName = this.typeParameters.$index(i).get$name(); | 20058 var paramName = this.typeParameters.$index(i).get$name(); |
20060 typeMap.$setindex(paramName, typeArgs.$index(i)); | 20059 typeMap.$setindex(paramName, typeArgs.$index(i)); |
20061 names.add$1(typeArgs.$index(i).get$name()); | 20060 names.add$1(typeArgs.$index(i).get$name()); |
20062 } | 20061 } |
20063 var concreteName = Strings.join((names && names.is$List$String()), '\$'); | 20062 var concreteName = Strings.join((names && names.is$List$String()), '\$'); |
20064 var ret = this._concreteTypes.$index(concreteName); | 20063 var ret = this._concreteTypes.$index(concreteName); |
20065 if ($notnull_bool(ret == null)) { | 20064 if ($notnull_bool(ret == null)) { |
20066 ret = new ConcreteType($assert_String(concreteName), this, typeMap, typeArgs
); | 20065 ret = new ConcreteType($assert_String(concreteName), this, typeMap, typeArgs
); |
20067 this._concreteTypes.$setindex(concreteName, ret); | 20066 this._concreteTypes.$setindex(concreteName, ret); |
20068 } | 20067 } |
20069 return (ret && ret.is$lang_Type()); | 20068 return (ret && ret.is$Type()); |
20070 } | 20069 } |
20071 DefinedType.prototype.getCallStub = function(args) { | 20070 DefinedType.prototype.getCallStub = function(args) { |
20072 $assert(this.get$isFunction(), "isFunction", "type.dart", 1251, 12); | 20071 $assert(this.get$isFunction(), "isFunction", "type.dart", 1251, 12); |
20073 var name = _getCallStubName('call', args); | 20072 var name = _getCallStubName('call', args); |
20074 if (this.varStubs == null) this.varStubs = $map([]); | 20073 if (this.varStubs == null) this.varStubs = $map([]); |
20075 var stub = this.varStubs.$index(name); | 20074 var stub = this.varStubs.$index(name); |
20076 if ($notnull_bool(stub == null)) { | 20075 if ($notnull_bool(stub == null)) { |
20077 stub = new VarFunctionStub($assert_String(name), args); | 20076 stub = new VarFunctionStub($assert_String(name), args); |
20078 this.varStubs.$setindex(name, stub); | 20077 this.varStubs.$setindex(name, stub); |
20079 } | 20078 } |
20080 return (stub && stub.is$VarFunctionStub()); | 20079 return (stub && stub.is$VarFunctionStub()); |
20081 } | 20080 } |
20082 DefinedType.prototype.addDirectSubtype$1 = function($0) { | 20081 DefinedType.prototype.addDirectSubtype$1 = function($0) { |
20083 return this.addDirectSubtype(($0 && $0.is$lang_Type())); | 20082 return this.addDirectSubtype(($0 && $0.is$Type())); |
20084 }; | 20083 }; |
20085 DefinedType.prototype.addMethod$2 = function($0, $1) { | 20084 DefinedType.prototype.addMethod$2 = function($0, $1) { |
20086 return this.addMethod($assert_String($0), ($1 && $1.is$FunctionDefinition())); | 20085 return this.addMethod($assert_String($0), ($1 && $1.is$FunctionDefinition())); |
20087 }; | 20086 }; |
20088 DefinedType.prototype.getConstructor$1 = function($0) { | 20087 DefinedType.prototype.getConstructor$1 = function($0) { |
20089 return this.getConstructor($assert_String($0)); | 20088 return this.getConstructor($assert_String($0)); |
20090 }; | 20089 }; |
20091 DefinedType.prototype.getFactory$2 = function($0, $1) { | 20090 DefinedType.prototype.getFactory$2 = function($0, $1) { |
20092 return this.getFactory(($0 && $0.is$lang_Type()), $assert_String($1)); | 20091 return this.getFactory(($0 && $0.is$Type()), $assert_String($1)); |
20093 }; | 20092 }; |
20094 DefinedType.prototype.getMember$1 = function($0) { | 20093 DefinedType.prototype.getMember$1 = function($0) { |
20095 return this.getMember($assert_String($0)); | 20094 return this.getMember($assert_String($0)); |
20096 }; | 20095 }; |
20097 DefinedType.prototype.getOrMakeConcreteType$1 = function($0) { | 20096 DefinedType.prototype.getOrMakeConcreteType$1 = function($0) { |
20098 return this.getOrMakeConcreteType(($0 && $0.is$List$Type())); | 20097 return this.getOrMakeConcreteType(($0 && $0.is$List$Type())); |
20099 }; | 20098 }; |
20100 DefinedType.prototype.markUsed$0 = function() { | 20099 DefinedType.prototype.markUsed$0 = function() { |
20101 return this.markUsed(); | 20100 return this.markUsed(); |
20102 }; | 20101 }; |
(...skipping 394 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
20497 else { | 20496 else { |
20498 if (argsString.length > 0) argsString = (', ' + argsString + ''); | 20497 if (argsString.length > 0) argsString = (', ' + argsString + ''); |
20499 world.gen.corejs.useOperator(name); | 20498 world.gen.corejs.useOperator(name); |
20500 return new Value(returnType, ('' + name + '(' + this.code + '' + argsString
+ ')'), this.span, true); | 20499 return new Value(returnType, ('' + name + '(' + this.code + '' + argsString
+ ')'), this.span, true); |
20501 } | 20500 } |
20502 } | 20501 } |
20503 Value.prototype.checkFirstClass$1 = function($0) { | 20502 Value.prototype.checkFirstClass$1 = function($0) { |
20504 return this.checkFirstClass(($0 && $0.is$SourceSpan())); | 20503 return this.checkFirstClass(($0 && $0.is$SourceSpan())); |
20505 }; | 20504 }; |
20506 Value.prototype.convertTo$3 = function($0, $1, $2) { | 20505 Value.prototype.convertTo$3 = function($0, $1, $2) { |
20507 return this.convertTo(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Type(
)), ($2 && $2.is$lang_Node()), false); | 20506 return this.convertTo(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Type()), (
$2 && $2.is$Node()), false); |
20508 }; | 20507 }; |
20509 Value.prototype.convertTo$4 = function($0, $1, $2, $3) { | 20508 Value.prototype.convertTo$4 = function($0, $1, $2, $3) { |
20510 return this.convertTo(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Type(
)), ($2 && $2.is$lang_Node()), $assert_bool($3)); | 20509 return this.convertTo(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Type()), (
$2 && $2.is$Node()), $assert_bool($3)); |
20511 }; | 20510 }; |
20512 Value.prototype.get_$3 = function($0, $1, $2) { | 20511 Value.prototype.get_$3 = function($0, $1, $2) { |
20513 return this.get_(($0 && $0.is$MethodGenerator()), $assert_String($1), ($2 && $
2.is$lang_Node())); | 20512 return this.get_(($0 && $0.is$MethodGenerator()), $assert_String($1), ($2 && $
2.is$Node())); |
20514 }; | 20513 }; |
20515 Value.prototype.instanceOf$3$isTrue$forceCheck = function($0, $1, $2, isTrue, fo
rceCheck) { | 20514 Value.prototype.instanceOf$3$isTrue$forceCheck = function($0, $1, $2, isTrue, fo
rceCheck) { |
20516 return this.instanceOf(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Type
()), ($2 && $2.is$SourceSpan()), $assert_bool(isTrue), $assert_bool(forceCheck))
; | 20515 return this.instanceOf(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Type()),
($2 && $2.is$SourceSpan()), $assert_bool(isTrue), $assert_bool(forceCheck)); |
20517 }; | 20516 }; |
20518 Value.prototype.instanceOf$4 = function($0, $1, $2, $3) { | 20517 Value.prototype.instanceOf$4 = function($0, $1, $2, $3) { |
20519 return this.instanceOf(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Type
()), ($2 && $2.is$SourceSpan()), $assert_bool($3), false); | 20518 return this.instanceOf(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Type()),
($2 && $2.is$SourceSpan()), $assert_bool($3), false); |
20520 }; | 20519 }; |
20521 Value.prototype.invoke$4 = function($0, $1, $2, $3) { | 20520 Value.prototype.invoke$4 = function($0, $1, $2, $3) { |
20522 return this.invoke(($0 && $0.is$MethodGenerator()), $assert_String($1), ($2 &&
$2.is$lang_Node()), ($3 && $3.is$Arguments()), false); | 20521 return this.invoke(($0 && $0.is$MethodGenerator()), $assert_String($1), ($2 &&
$2.is$Node()), ($3 && $3.is$Arguments()), false); |
20523 }; | 20522 }; |
20524 Value.prototype.invoke$4$isDynamic = function($0, $1, $2, $3, isDynamic) { | 20523 Value.prototype.invoke$4$isDynamic = function($0, $1, $2, $3, isDynamic) { |
20525 return this.invoke(($0 && $0.is$MethodGenerator()), $assert_String($1), ($2 &&
$2.is$lang_Node()), ($3 && $3.is$Arguments()), $assert_bool(isDynamic)); | 20524 return this.invoke(($0 && $0.is$MethodGenerator()), $assert_String($1), ($2 &&
$2.is$Node()), ($3 && $3.is$Arguments()), $assert_bool(isDynamic)); |
20526 }; | 20525 }; |
20527 Value.prototype.invoke$5 = function($0, $1, $2, $3, $4) { | 20526 Value.prototype.invoke$5 = function($0, $1, $2, $3, $4) { |
20528 return this.invoke(($0 && $0.is$MethodGenerator()), $assert_String($1), ($2 &&
$2.is$lang_Node()), ($3 && $3.is$Arguments()), $assert_bool($4)); | 20527 return this.invoke(($0 && $0.is$MethodGenerator()), $assert_String($1), ($2 &&
$2.is$Node()), ($3 && $3.is$Arguments()), $assert_bool($4)); |
20529 }; | 20528 }; |
20530 Value.prototype.needsConversion$1 = function($0) { | 20529 Value.prototype.needsConversion$1 = function($0) { |
20531 return this.needsConversion(($0 && $0.is$lang_Type())); | 20530 return this.needsConversion(($0 && $0.is$Type())); |
20532 }; | 20531 }; |
20533 Value.prototype.set_$4 = function($0, $1, $2, $3) { | 20532 Value.prototype.set_$4 = function($0, $1, $2, $3) { |
20534 return this.set_(($0 && $0.is$MethodGenerator()), $assert_String($1), ($2 && $
2.is$lang_Node()), ($3 && $3.is$Value()), false); | 20533 return this.set_(($0 && $0.is$MethodGenerator()), $assert_String($1), ($2 && $
2.is$Node()), ($3 && $3.is$Value()), false); |
20535 }; | 20534 }; |
20536 // ********** Code for EvaluatedValue ************** | 20535 // ********** Code for EvaluatedValue ************** |
20537 function EvaluatedValue() {} | 20536 function EvaluatedValue() {} |
20538 EvaluatedValue._internal$ctor = function(type, actualValue, canonicalCode, span,
code) { | 20537 EvaluatedValue._internal$ctor = function(type, actualValue, canonicalCode, span,
code) { |
20539 this.actualValue = actualValue; | 20538 this.actualValue = actualValue; |
20540 this.canonicalCode = canonicalCode; | 20539 this.canonicalCode = canonicalCode; |
20541 // Initializers done | 20540 // Initializers done |
20542 Value.call(this, type, code, span, false); | 20541 Value.call(this, type, code, span, false); |
20543 } | 20542 } |
20544 EvaluatedValue._internal$ctor.prototype = EvaluatedValue.prototype; | 20543 EvaluatedValue._internal$ctor.prototype = EvaluatedValue.prototype; |
20545 $inherits(EvaluatedValue, Value); | 20544 $inherits(EvaluatedValue, Value); |
20546 EvaluatedValue.EvaluatedValue$factory = function(type, actualValue, canonicalCod
e, span) { | 20545 EvaluatedValue.EvaluatedValue$factory = function(type, actualValue, canonicalCod
e, span) { |
20547 return new EvaluatedValue._internal$ctor(type, actualValue, canonicalCode, spa
n, EvaluatedValue.codeWithComments(canonicalCode, span)); | 20546 return new EvaluatedValue._internal$ctor(type, actualValue, canonicalCode, spa
n, EvaluatedValue.codeWithComments(canonicalCode, span)); |
20548 } | 20547 } |
20549 EvaluatedValue.prototype.get$actualValue = function() { return this.actualValue;
}; | 20548 EvaluatedValue.prototype.get$actualValue = function() { return this.actualValue;
}; |
20550 EvaluatedValue.prototype.set$actualValue = function(value) { return this.actualV
alue = value; }; | 20549 EvaluatedValue.prototype.set$actualValue = function(value) { return this.actualV
alue = value; }; |
20551 EvaluatedValue.prototype.get$isConst = function() { | 20550 EvaluatedValue.prototype.get$isConst = function() { |
20552 return true; | 20551 return true; |
20553 } | 20552 } |
20554 EvaluatedValue.prototype.get$canonicalCode = function() { return this.canonicalC
ode; }; | 20553 EvaluatedValue.prototype.get$canonicalCode = function() { return this.canonicalC
ode; }; |
20555 EvaluatedValue.prototype.set$canonicalCode = function(value) { return this.canon
icalCode = value; }; | 20554 EvaluatedValue.prototype.set$canonicalCode = function(value) { return this.canon
icalCode = value; }; |
20556 EvaluatedValue.codeWithComments = function(canonicalCode, span) { | 20555 EvaluatedValue.codeWithComments = function(canonicalCode, span) { |
20557 return (span != null && span.get$text() != canonicalCode) ? ('' + canonicalCod
e + '/*' + span.get$text() + '*/') : canonicalCode; | 20556 return (span != null && span.get$text() != canonicalCode) ? ('' + canonicalCod
e + '/*' + span.get$text() + '*/') : canonicalCode; |
20558 } | 20557 } |
20559 // ********** Code for ConstListValue ************** | 20558 // ********** Code for ConstListValue ************** |
20560 function ConstListValue() {} | 20559 function ConstListValue() {} |
20561 ConstListValue._internal$ctor = function(type, values, actualValue, canonicalCod
e, span, code) { | 20560 ConstListValue._internal$ctor = function(type, values, actualValue, canonicalCod
e, span, code) { |
20562 this.values = values; | 20561 this.values = values; |
20563 // Initializers done | 20562 // Initializers done |
20564 EvaluatedValue._internal$ctor.call(this, (type && type.is$lang_Type()), actual
Value, canonicalCode, (span && span.is$SourceSpan()), $assert_String(code)); | 20563 EvaluatedValue._internal$ctor.call(this, (type && type.is$Type()), actualValue
, canonicalCode, (span && span.is$SourceSpan()), $assert_String(code)); |
20565 } | 20564 } |
20566 ConstListValue._internal$ctor.prototype = ConstListValue.prototype; | 20565 ConstListValue._internal$ctor.prototype = ConstListValue.prototype; |
20567 $inherits(ConstListValue, EvaluatedValue); | 20566 $inherits(ConstListValue, EvaluatedValue); |
20568 ConstListValue.ConstListValue$factory = function(type, values, actualValue, cano
nicalCode, span) { | 20567 ConstListValue.ConstListValue$factory = function(type, values, actualValue, cano
nicalCode, span) { |
20569 return new ConstListValue._internal$ctor(type, values, actualValue, canonicalC
ode, span, EvaluatedValue.codeWithComments(canonicalCode, span)); | 20568 return new ConstListValue._internal$ctor(type, values, actualValue, canonicalC
ode, span, EvaluatedValue.codeWithComments(canonicalCode, span)); |
20570 } | 20569 } |
20571 // ********** Code for ConstMapValue ************** | 20570 // ********** Code for ConstMapValue ************** |
20572 function ConstMapValue() {} | 20571 function ConstMapValue() {} |
20573 ConstMapValue._internal$ctor = function(type, values, actualValue, canonicalCode
, span, code) { | 20572 ConstMapValue._internal$ctor = function(type, values, actualValue, canonicalCode
, span, code) { |
20574 this.values = values; | 20573 this.values = values; |
20575 // Initializers done | 20574 // Initializers done |
20576 EvaluatedValue._internal$ctor.call(this, (type && type.is$lang_Type()), actual
Value, canonicalCode, (span && span.is$SourceSpan()), $assert_String(code)); | 20575 EvaluatedValue._internal$ctor.call(this, (type && type.is$Type()), actualValue
, canonicalCode, (span && span.is$SourceSpan()), $assert_String(code)); |
20577 } | 20576 } |
20578 ConstMapValue._internal$ctor.prototype = ConstMapValue.prototype; | 20577 ConstMapValue._internal$ctor.prototype = ConstMapValue.prototype; |
20579 $inherits(ConstMapValue, EvaluatedValue); | 20578 $inherits(ConstMapValue, EvaluatedValue); |
20580 ConstMapValue.ConstMapValue$factory = function(type, keyValuePairs, actualValue,
canonicalCode, span) { | 20579 ConstMapValue.ConstMapValue$factory = function(type, keyValuePairs, actualValue,
canonicalCode, span) { |
20581 var values = new HashMapImplementation(); | 20580 var values = new HashMapImplementation(); |
20582 for (var i = 0; | 20581 for (var i = 0; |
20583 i < keyValuePairs.length; i += 2) { | 20582 i < keyValuePairs.length; i += 2) { |
20584 values.$setindex(keyValuePairs.$index(i).get$actualValue(), keyValuePairs.$i
ndex(i + 1)); | 20583 values.$setindex(keyValuePairs.$index(i).get$actualValue(), keyValuePairs.$i
ndex(i + 1)); |
20585 } | 20584 } |
20586 return new ConstMapValue._internal$ctor(type, values, actualValue, canonicalCo
de, span, EvaluatedValue.codeWithComments(canonicalCode, span)); | 20585 return new ConstMapValue._internal$ctor(type, values, actualValue, canonicalCo
de, span, EvaluatedValue.codeWithComments(canonicalCode, span)); |
20587 } | 20586 } |
20588 // ********** Code for ConstObjectValue ************** | 20587 // ********** Code for ConstObjectValue ************** |
20589 function ConstObjectValue() {} | 20588 function ConstObjectValue() {} |
20590 ConstObjectValue._internal$ctor = function(type, fields, actualValue, canonicalC
ode, span, code) { | 20589 ConstObjectValue._internal$ctor = function(type, fields, actualValue, canonicalC
ode, span, code) { |
20591 this.fields = fields; | 20590 this.fields = fields; |
20592 // Initializers done | 20591 // Initializers done |
20593 EvaluatedValue._internal$ctor.call(this, (type && type.is$lang_Type()), actual
Value, canonicalCode, (span && span.is$SourceSpan()), $assert_String(code)); | 20592 EvaluatedValue._internal$ctor.call(this, (type && type.is$Type()), actualValue
, canonicalCode, (span && span.is$SourceSpan()), $assert_String(code)); |
20594 } | 20593 } |
20595 ConstObjectValue._internal$ctor.prototype = ConstObjectValue.prototype; | 20594 ConstObjectValue._internal$ctor.prototype = ConstObjectValue.prototype; |
20596 $inherits(ConstObjectValue, EvaluatedValue); | 20595 $inherits(ConstObjectValue, EvaluatedValue); |
20597 ConstObjectValue.ConstObjectValue$factory = function(type, fields, canonicalCode
, span) { | 20596 ConstObjectValue.ConstObjectValue$factory = function(type, fields, canonicalCode
, span) { |
20598 var fieldValues = []; | 20597 var fieldValues = []; |
20599 var $list = fields.getKeys(); | 20598 var $list = fields.getKeys(); |
20600 for (var $i = fields.getKeys().iterator$0(); $i.hasNext$0(); ) { | 20599 for (var $i = fields.getKeys().iterator$0(); $i.hasNext$0(); ) { |
20601 var f = $i.next$0(); | 20600 var f = $i.next$0(); |
20602 fieldValues.add(('' + f + ' = ' + fields.$index(f).get$actualValue() + '')); | 20601 fieldValues.add(('' + f + ' = ' + fields.$index(f).get$actualValue() + '')); |
20603 } | 20602 } |
(...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
20857 throw exc; | 20856 throw exc; |
20858 } | 20857 } |
20859 } | 20858 } |
20860 this.printStatus(); | 20859 this.printStatus(); |
20861 return !$notnull_bool(this.get$hasErrors()); | 20860 return !$notnull_bool(this.get$hasErrors()); |
20862 } | 20861 } |
20863 World.prototype.runLeg = function() { | 20862 World.prototype.runLeg = function() { |
20864 var $this = this; // closure support | 20863 var $this = this; // closure support |
20865 if (!$notnull_bool(options.enableLeg)) return false; | 20864 if (!$notnull_bool(options.enableLeg)) return false; |
20866 var res = $assert_bool(this.withTiming('try leg compile', (function () { | 20865 var res = $assert_bool(this.withTiming('try leg compile', (function () { |
20867 return compile($this); | 20866 return leg_compile($this); |
20868 }) | 20867 }) |
20869 )); | 20868 )); |
20870 if (!$notnull_bool(res) && $notnull_bool(options.legOnly)) { | 20869 if (!$notnull_bool(res) && $notnull_bool(options.legOnly)) { |
20871 this.fatal(("Leg could not compile " + options.dartScript + "")); | 20870 this.fatal(("Leg could not compile " + options.dartScript + "")); |
20872 return true; | 20871 return true; |
20873 } | 20872 } |
20874 return res; | 20873 return res; |
20875 } | 20874 } |
20876 World.prototype.runCompilationPhases = function() { | 20875 World.prototype.runCompilationPhases = function() { |
20877 var $this = this; // closure support | 20876 var $this = this; // closure support |
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
21183 VarMember.prototype.get$returnType = function() { | 21182 VarMember.prototype.get$returnType = function() { |
21184 return world.varType; | 21183 return world.varType; |
21185 } | 21184 } |
21186 VarMember.prototype.invoke = function(context, node, target, args) { | 21185 VarMember.prototype.invoke = function(context, node, target, args) { |
21187 return new Value(this.get$returnType(), ('' + target.code + '.' + this.name +
'(' + args.getCode() + ')'), node.span, true); | 21186 return new Value(this.get$returnType(), ('' + target.code + '.' + this.name +
'(' + args.getCode() + ')'), node.span, true); |
21188 } | 21187 } |
21189 VarMember.prototype.generate$1 = function($0) { | 21188 VarMember.prototype.generate$1 = function($0) { |
21190 return this.generate(($0 && $0.is$CodeWriter())); | 21189 return this.generate(($0 && $0.is$CodeWriter())); |
21191 }; | 21190 }; |
21192 VarMember.prototype.invoke$4 = function($0, $1, $2, $3) { | 21191 VarMember.prototype.invoke$4 = function($0, $1, $2, $3) { |
21193 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()),
($2 && $2.is$Value()), ($3 && $3.is$Arguments())); | 21192 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Node()), ($2
&& $2.is$Value()), ($3 && $3.is$Arguments())); |
21194 }; | 21193 }; |
21195 // ********** Code for VarFunctionStub ************** | 21194 // ********** Code for VarFunctionStub ************** |
21196 function VarFunctionStub(name, callArgs) { | 21195 function VarFunctionStub(name, callArgs) { |
21197 this.args = callArgs.toCallStubArgs(); | 21196 this.args = callArgs.toCallStubArgs(); |
21198 // Initializers done | 21197 // Initializers done |
21199 VarMember.call(this, name); | 21198 VarMember.call(this, name); |
21200 world.gen.corejs.useGenStub = true; | 21199 world.gen.corejs.useGenStub = true; |
21201 } | 21200 } |
21202 $inherits(VarFunctionStub, VarMember); | 21201 $inherits(VarFunctionStub, VarMember); |
21203 VarFunctionStub.prototype.is$VarFunctionStub = function(){return this;}; | 21202 VarFunctionStub.prototype.is$VarFunctionStub = function(){return this;}; |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
21237 function VarMethodStub(name, member, args, body) { | 21236 function VarMethodStub(name, member, args, body) { |
21238 this.member = member; | 21237 this.member = member; |
21239 this.args = args; | 21238 this.args = args; |
21240 this.body = body; | 21239 this.body = body; |
21241 // Initializers done | 21240 // Initializers done |
21242 VarMember.call(this, name); | 21241 VarMember.call(this, name); |
21243 } | 21242 } |
21244 $inherits(VarMethodStub, VarMember); | 21243 $inherits(VarMethodStub, VarMember); |
21245 VarMethodStub.prototype.get$returnType = function() { | 21244 VarMethodStub.prototype.get$returnType = function() { |
21246 var $0; | 21245 var $0; |
21247 return (($0 = this.member != null ? this.member.get$returnType() : world.varTy
pe) && $0.is$lang_Type()); | 21246 return (($0 = this.member != null ? this.member.get$returnType() : world.varTy
pe) && $0.is$Type()); |
21248 } | 21247 } |
21249 VarMethodStub.prototype.get$typeName = function() { | 21248 VarMethodStub.prototype.get$typeName = function() { |
21250 return this.member != null ? this.member.declaringType.get$jsname() : 'Object'
; | 21249 return this.member != null ? this.member.declaringType.get$jsname() : 'Object'
; |
21251 } | 21250 } |
21252 VarMethodStub.prototype.generate = function(code) { | 21251 VarMethodStub.prototype.generate = function(code) { |
21253 code.write(('' + this.get$typeName() + '.prototype.' + this.name + ' = ')); | 21252 code.write(('' + this.get$typeName() + '.prototype.' + this.name + ' = ')); |
21254 this.generateBody(code, ';'); | 21253 this.generateBody(code, ';'); |
21255 } | 21254 } |
21256 VarMethodStub.prototype.generateBody = function(code, end) { | 21255 VarMethodStub.prototype.generateBody = function(code, end) { |
21257 if ($notnull_bool(this._useDirectCall(this.member, this.args))) { | 21256 if ($notnull_bool(this._useDirectCall(this.member, this.args))) { |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
21313 for (var $i = 0;$i < $list.length; $i++) { | 21312 for (var $i = 0;$i < $list.length; $i++) { |
21314 var member = $list.$index($i); | 21313 var member = $list.$index($i); |
21315 var target = new Value(member.declaringType, 'this', node.span, true); | 21314 var target = new Value(member.declaringType, 'this', node.span, true); |
21316 var result = member.invoke$4$isDynamic(context, node, target, this.args, tru
e); | 21315 var result = member.invoke$4$isDynamic(context, node, target, this.args, tru
e); |
21317 var stub = new VarMethodStub(this.name, member, this.args, result); | 21316 var stub = new VarMethodStub(this.name, member, this.args, result); |
21318 var type = member.declaringType; | 21317 var type = member.declaringType; |
21319 if ($notnull_bool(type.get$isObject())) { | 21318 if ($notnull_bool(type.get$isObject())) { |
21320 objectStub = stub; | 21319 objectStub = stub; |
21321 } | 21320 } |
21322 else if ($ne(type.get$library(), world.get$dom())) { | 21321 else if ($ne(type.get$library(), world.get$dom())) { |
21323 VarMethodSet._addVarStub((type && type.is$lang_Type()), (stub && stub.is$V
arMember())); | 21322 VarMethodSet._addVarStub((type && type.is$Type()), (stub && stub.is$VarMem
ber())); |
21324 } | 21323 } |
21325 else { | 21324 else { |
21326 this._fallbackStubs.add(stub); | 21325 this._fallbackStubs.add(stub); |
21327 } | 21326 } |
21328 } | 21327 } |
21329 if ($notnull_bool(objectStub == null)) { | 21328 if ($notnull_bool(objectStub == null)) { |
21330 var target = new Value(world.objectType, 'this', node.span, true); | 21329 var target = new Value(world.objectType, 'this', node.span, true); |
21331 var result = target.invokeNoSuchMethod(context, this.get$baseName(), node, t
his.args); | 21330 var result = target.invokeNoSuchMethod(context, this.get$baseName(), node, t
his.args); |
21332 objectStub = new VarMethodStub(this.name, null, this.args, result); | 21331 objectStub = new VarMethodStub(this.name, null, this.args, result); |
21333 } | 21332 } |
(...skipping 18 matching lines...) Expand all Loading... |
21352 var stub = $list.$index($i); | 21351 var stub = $list.$index($i); |
21353 code.write(('"' + stub.get$typeName() + '": ')); | 21352 code.write(('"' + stub.get$typeName() + '": ')); |
21354 stub.generateBody$2(code, $notnull_bool($eq(stub, lastOne)) ? '' : ','); | 21353 stub.generateBody$2(code, $notnull_bool($eq(stub, lastOne)) ? '' : ','); |
21355 } | 21354 } |
21356 code.exitBlock('});'); | 21355 code.exitBlock('});'); |
21357 } | 21356 } |
21358 VarMethodSet.prototype.generate$1 = function($0) { | 21357 VarMethodSet.prototype.generate$1 = function($0) { |
21359 return this.generate(($0 && $0.is$CodeWriter())); | 21358 return this.generate(($0 && $0.is$CodeWriter())); |
21360 }; | 21359 }; |
21361 VarMethodSet.prototype.invoke$4 = function($0, $1, $2, $3) { | 21360 VarMethodSet.prototype.invoke$4 = function($0, $1, $2, $3) { |
21362 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$lang_Node()),
($2 && $2.is$Value()), ($3 && $3.is$Arguments())); | 21361 return this.invoke(($0 && $0.is$MethodGenerator()), ($1 && $1.is$Node()), ($2
&& $2.is$Value()), ($3 && $3.is$Arguments())); |
21363 }; | 21362 }; |
21364 // ********** Code for top level ************** | 21363 // ********** Code for top level ************** |
21365 function map(source, mapper) { | 21364 function map(source, mapper) { |
21366 var result = new ListFactory(); | 21365 var result = new ListFactory(); |
21367 if (!!(source && source.is$List)) { | 21366 if (!!(source && source.is$List)) { |
21368 var list = (source && source.is$List()); | 21367 var list = (source && source.is$List()); |
21369 result.length = list.length; | 21368 result.length = list.length; |
21370 for (var i = 0; | 21369 for (var i = 0; |
21371 i < list.length; i++) { | 21370 i < list.length; i++) { |
21372 result.$setindex(i, mapper(list.$index(i))); | 21371 result.$setindex(i, mapper(list.$index(i))); |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
21443 else { | 21442 else { |
21444 return text; | 21443 return text; |
21445 } | 21444 } |
21446 } | 21445 } |
21447 var world; | 21446 var world; |
21448 function initializeWorld(files) { | 21447 function initializeWorld(files) { |
21449 $assert(world == null, "world == null", "world.dart", 13, 10); | 21448 $assert(world == null, "world == null", "world.dart", 13, 10); |
21450 world = new World(files); | 21449 world = new World(files); |
21451 world.init(); | 21450 world.init(); |
21452 } | 21451 } |
21453 function lang_compile(homedir, args, files) { | 21452 function compile(homedir, args, files) { |
21454 parseOptions(homedir, args, files); | 21453 parseOptions(homedir, args, files); |
21455 initializeWorld(files); | 21454 initializeWorld(files); |
21456 var success = world.compile(); | 21455 var success = world.compile(); |
21457 if (options.outfile != null) { | 21456 if (options.outfile != null) { |
21458 if ($notnull_bool(success)) { | 21457 if ($notnull_bool(success)) { |
21459 var code = world.getGeneratedCode(); | 21458 var code = world.getGeneratedCode(); |
21460 if (!options.outfile.endsWith('.js')) { | 21459 if (!options.outfile.endsWith('.js')) { |
21461 code = '#!/usr/bin/env node\n' + code; | 21460 code = '#!/usr/bin/env node\n' + code; |
21462 } | 21461 } |
21463 world.files.writeString(options.outfile, $assert_String(code)); | 21462 world.files.writeString(options.outfile, $assert_String(code)); |
(...skipping 15 matching lines...) Expand all Loading... |
21479 i < args.get$length(); i++) { | 21478 i < args.get$length(); i++) { |
21480 nameBuilder.add('\$').add(args.getName(i)); | 21479 nameBuilder.add('\$').add(args.getName(i)); |
21481 } | 21480 } |
21482 return nameBuilder.toString(); | 21481 return nameBuilder.toString(); |
21483 } | 21482 } |
21484 // ********** Library frog ************** | 21483 // ********** Library frog ************** |
21485 // ********** Code for top level ************** | 21484 // ********** Code for top level ************** |
21486 function main() { | 21485 function main() { |
21487 var homedir = path.dirname(fs.realpathSync($assert_String(process.argv.$index(
1)))); | 21486 var homedir = path.dirname(fs.realpathSync($assert_String(process.argv.$index(
1)))); |
21488 var argv = ListFactory.ListFactory$from$factory(process.argv); | 21487 var argv = ListFactory.ListFactory$from$factory(process.argv); |
21489 if ($notnull_bool(lang_compile($assert_String(homedir), (argv && argv.is$List$
String()), new NodeFileSystem()))) { | 21488 if ($notnull_bool(compile($assert_String(homedir), (argv && argv.is$List$Strin
g()), new NodeFileSystem()))) { |
21490 var code = world.getGeneratedCode(); | 21489 var code = world.getGeneratedCode(); |
21491 if (!$notnull_bool(options.compileOnly)) { | 21490 if (!$notnull_bool(options.compileOnly)) { |
21492 process.argv = [argv.$index(0), argv.$index(1)]; | 21491 process.argv = [argv.$index(0), argv.$index(1)]; |
21493 process.argv.addAll(options.childArgs); | 21492 process.argv.addAll(options.childArgs); |
21494 vm.runInNewContext($assert_String(code), createSandbox()); | 21493 vm.runInNewContext($assert_String(code), createSandbox()); |
21495 } | 21494 } |
21496 } | 21495 } |
21497 else { | 21496 else { |
21498 process.exit(1); | 21497 process.exit(1); |
21499 } | 21498 } |
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
21787 INTERFACE, | 21786 INTERFACE, |
21788 LIBRARY, | 21787 LIBRARY, |
21789 NATIVE, | 21788 NATIVE, |
21790 NEGATE, | 21789 NEGATE, |
21791 OPERATOR, | 21790 OPERATOR, |
21792 SET, | 21791 SET, |
21793 SOURCE, | 21792 SOURCE, |
21794 STATIC, | 21793 STATIC, |
21795 TYPEDEF ]*/; | 21794 TYPEDEF ]*/; |
21796 main(); | 21795 main(); |
OLD | NEW |