Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(286)

Issue 9599013: Complete AST nodes for switch statement. (Closed)

Created:
8 years, 9 months ago by ahe
Modified:
8 years, 9 months ago
CC:
reviews_dartlang.org, compiler-dev_dartlang.org
Visibility:
Public.

Description

Complete AST nodes for switch statement. Committed: https://code.google.com/p/dart/source/detail?r=4973

Patch Set 1 #

Total comments: 6
Unified diffs Side-by-side diffs Delta from patch set Stats (+111 lines, -20 lines) Patch
M dart/frog/leg/resolver.dart View 1 chunk +16 lines, -1 line 4 comments Download
M dart/frog/leg/scanner/listener.dart View 2 chunks +8 lines, -8 lines 0 comments Download
M dart/frog/leg/tree/nodes.dart View 6 chunks +61 lines, -6 lines 2 comments Download
M dart/frog/leg/tree/unparser.dart View 1 chunk +24 lines, -2 lines 0 comments Download
M dart/frog/leg/tree/visitors.dart View 2 chunks +2 lines, -0 lines 0 comments Download
M dart/tests/co19/co19-leg.status View 1 chunk +0 lines, -3 lines 0 comments Download

Messages

Total messages: 4 (0 generated)
ahe
8 years, 9 months ago (2012-03-05 16:02:14 UTC) #1
ngeoffray
LGTM
8 years, 9 months ago (2012-03-05 18:56:19 UTC) #2
Lasse Reichstein Nielsen
LGTM too. https://chromiumcodereview.appspot.com/9599013/diff/1/dart/frog/leg/resolver.dart File dart/frog/leg/resolver.dart (right): https://chromiumcodereview.appspot.com/9599013/diff/1/dart/frog/leg/resolver.dart#newcode1144 dart/frog/leg/resolver.dart:1144: statementScope.enterLoop(element); Will need modifying (switch isn't a ...
8 years, 9 months ago (2012-03-05 19:54:04 UTC) #3
ahe
8 years, 9 months ago (2012-03-05 20:07:23 UTC) #4
Hi Nicolas and Lasse,

Thank you for taking a look.

I think I may need some help finishing this, but I'm making some progress on
generating code for switch statements without continue.

Cheers,
Peter

https://chromiumcodereview.appspot.com/9599013/diff/1/dart/frog/leg/resolver....
File dart/frog/leg/resolver.dart (right):

https://chromiumcodereview.appspot.com/9599013/diff/1/dart/frog/leg/resolver....
dart/frog/leg/resolver.dart:1144: statementScope.enterLoop(element);
On 2012/03/05 19:54:04, Lasse Reichstein Nielsen wrote:
> Will need modifying (switch isn't a continue target), but this'll be fine for
> now.

Good point. I'll probably need your help figuring this out.

https://chromiumcodereview.appspot.com/9599013/diff/1/dart/frog/leg/resolver....
dart/frog/leg/resolver.dart:1150: // TODO(ahe): What about the label?
On 2012/03/05 19:54:04, Lasse Reichstein Nielsen wrote:
> We will probably have to make two passed over the switch, one (in
> visitSwitchStatement) to gather labels and set up the statement scope, and one
> to resolve the labels of continues in the case statements.
> 

I was thinking about something similar.

https://chromiumcodereview.appspot.com/9599013/diff/1/dart/frog/leg/tree/node...
File dart/frog/leg/tree/nodes.dart (right):

https://chromiumcodereview.appspot.com/9599013/diff/1/dart/frog/leg/tree/node...
dart/frog/leg/tree/nodes.dart:1406: final Expression expression;
On 2012/03/05 19:54:04, Lasse Reichstein Nielsen wrote:
> Only one expression per case?
> How is 
>  foo: case 1: case 2: stmts;
> modelled?

new SwitchCase('foo', 1, []);
new SwitchCase(null, 2, stmts);

I'm currently working on generating code and I may change this.

Powered by Google App Engine
This is Rietveld 408576698