mirror of
https://github.com/dart-lang/sdk
synced 2024-10-03 06:21:30 +00:00
Initial implementations of two generators
Change-Id: Ib751abe9920d0f8b07b4395b47a60ed99ab80493 Reviewed-on: https://dart-review.googlesource.com/60322 Reviewed-by: Dan Rubel <danrubel@google.com> Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
This commit is contained in:
parent
03bcc495f7
commit
5bf6436bc9
|
@ -30,6 +30,55 @@ class AnalyzerDeferredAccessGenerator extends AnalyzerExpressionGenerator
|
|||
Expression buildSimpleRead() => generator.buildSimpleRead();
|
||||
}
|
||||
|
||||
class AnalyzerDelayedAssignmentGenerator extends AnalyzerExpressionGenerator
|
||||
with fasta.DelayedAssignment<Expression, Statement, Arguments> {
|
||||
final Token token;
|
||||
final fasta.Generator<Expression, Statement, Arguments> generator;
|
||||
final String assignmentOperator;
|
||||
final Expression value;
|
||||
|
||||
AnalyzerDelayedAssignmentGenerator(
|
||||
ExpressionGeneratorHelper<Expression, Statement, Arguments> helper,
|
||||
AstFactory astFactory,
|
||||
this.token,
|
||||
this.generator,
|
||||
this.assignmentOperator,
|
||||
this.value)
|
||||
: super(helper, astFactory);
|
||||
|
||||
@override
|
||||
Expression buildSimpleRead() => astFactory.assignmentExpression(
|
||||
generator.buildSimpleRead(), token, value);
|
||||
|
||||
@override
|
||||
Expression doInvocation(int offset, Arguments arguments) => buildSimpleRead();
|
||||
}
|
||||
|
||||
class AnalyzerDelayedPostfixIncrementGenerator
|
||||
extends AnalyzerExpressionGenerator
|
||||
with fasta.DelayedPostfixIncrement<Expression, Statement, Arguments> {
|
||||
final Token token;
|
||||
final fasta.Generator<Expression, Statement, Arguments> generator;
|
||||
final kernel.Name binaryOperator;
|
||||
final kernel.Procedure interfaceTarget;
|
||||
|
||||
AnalyzerDelayedPostfixIncrementGenerator(
|
||||
ExpressionGeneratorHelper<Expression, Statement, Arguments> helper,
|
||||
AstFactory astFactory,
|
||||
this.token,
|
||||
this.generator,
|
||||
this.binaryOperator,
|
||||
this.interfaceTarget)
|
||||
: super(helper, astFactory);
|
||||
|
||||
@override
|
||||
Expression buildSimpleRead() =>
|
||||
astFactory.postfixExpression(generator.buildSimpleRead(), token);
|
||||
|
||||
@override
|
||||
Expression doInvocation(int offset, Arguments arguments) => buildSimpleRead();
|
||||
}
|
||||
|
||||
abstract class AnalyzerExpressionGenerator
|
||||
implements fasta.Generator<Expression, Statement, Arguments> {
|
||||
final ExpressionGeneratorHelper<Expression, Statement, Arguments> helper;
|
||||
|
|
|
@ -192,8 +192,8 @@ class AstBuildingForest
|
|||
Generator<Expression, Statement, Arguments> generator,
|
||||
Expression value,
|
||||
String assignmentOperator) {
|
||||
// TODO(brianwilkerson) Implement this.
|
||||
throw new UnimplementedError();
|
||||
return new AnalyzerDelayedAssignmentGenerator(
|
||||
helper, astFactory, token, generator, assignmentOperator, value);
|
||||
}
|
||||
|
||||
@override
|
||||
|
@ -203,8 +203,8 @@ class AstBuildingForest
|
|||
Generator<Expression, Statement, Arguments> generator,
|
||||
kernel.Name binaryOperator,
|
||||
kernel.Procedure interfaceTarget) {
|
||||
// TODO(brianwilkerson) Implement this.
|
||||
throw new UnimplementedError();
|
||||
return new AnalyzerDelayedPostfixIncrementGenerator(
|
||||
helper, astFactory, token, generator, binaryOperator, interfaceTarget);
|
||||
}
|
||||
|
||||
@override
|
||||
|
|
Loading…
Reference in a new issue