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

Side by Side Diff: pkg/compiler/lib/src/patch_parser.dart

Issue 1892183002: Refactor Parsing to remove compiler dependency (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 /** 5 /**
6 * This library contains the infrastructure to parse and integrate patch files. 6 * This library contains the infrastructure to parse and integrate patch files.
7 * 7 *
8 * Three types of elements can be patched: [LibraryElement], [ClassElement], 8 * Three types of elements can be patched: [LibraryElement], [ClassElement],
9 * [FunctionElement]. Patches are introduced in patch libraries which are loaded 9 * [FunctionElement]. Patches are introduced in patch libraries which are loaded
10 * together with the corresponding origin library. Which libraries that are 10 * together with the corresponding origin library. Which libraries that are
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 assert(listener.nodes.isEmpty); 209 assert(listener.nodes.isEmpty);
210 })); 210 }));
211 } 211 }
212 } 212 }
213 213
214 class PatchMemberListener extends MemberListener { 214 class PatchMemberListener extends MemberListener {
215 final Compiler compiler; 215 final Compiler compiler;
216 216
217 PatchMemberListener(Compiler compiler, ClassElement enclosingClass) 217 PatchMemberListener(Compiler compiler, ClassElement enclosingClass)
218 : this.compiler = compiler, 218 : this.compiler = compiler,
219 super(compiler.parsing.getScannerOptionsFor(enclosingClass), 219 super(compiler.parsingContext.getScannerOptionsFor(enclosingClass),
220 compiler.reporter, enclosingClass); 220 compiler.reporter, enclosingClass);
221 221
222 @override 222 @override
223 void addMember(Element patch) { 223 void addMember(Element patch) {
224 addMetadata(patch); 224 addMetadata(patch);
225 225
226 PatchVersion patchVersion = getPatchVersion(compiler, patch); 226 PatchVersion patchVersion = getPatchVersion(compiler, patch);
227 if (patchVersion != null) { 227 if (patchVersion != null) {
228 if (patchVersion.isActive(compiler.patchVersion)) { 228 if (patchVersion.isActive(compiler.patchVersion)) {
229 Element origin = enclosingClass.origin.localLookup(patch.name); 229 Element origin = enclosingClass.origin.localLookup(patch.name);
(...skipping 24 matching lines...) Expand all
254 254
255 /** 255 /**
256 * Extension of [ElementListener] for parsing patch files. 256 * Extension of [ElementListener] for parsing patch files.
257 */ 257 */
258 class PatchElementListener extends ElementListener implements Listener { 258 class PatchElementListener extends ElementListener implements Listener {
259 final Compiler compiler; 259 final Compiler compiler;
260 260
261 PatchElementListener(Compiler compiler, CompilationUnitElement patchElement, 261 PatchElementListener(Compiler compiler, CompilationUnitElement patchElement,
262 IdGenerator idGenerator) 262 IdGenerator idGenerator)
263 : this.compiler = compiler, 263 : this.compiler = compiler,
264 super(compiler.parsing.getScannerOptionsFor(patchElement), 264 super(compiler.parsingContext.getScannerOptionsFor(patchElement),
265 compiler.reporter, patchElement, idGenerator); 265 compiler.reporter, patchElement, idGenerator);
266 266
267 @override 267 @override
268 void pushElement(Element patch) { 268 void pushElement(Element patch) {
269 popMetadata(patch); 269 popMetadata(patch);
270 270
271 PatchVersion patchVersion = getPatchVersion(compiler, patch); 271 PatchVersion patchVersion = getPatchVersion(compiler, patch);
272 if (patchVersion != null) { 272 if (patchVersion != null) {
273 if (patchVersion.isActive(compiler.patchVersion)) { 273 if (patchVersion.isActive(compiler.patchVersion)) {
274 LibraryElement originLibrary = compilationUnitElement.library; 274 LibraryElement originLibrary = compilationUnitElement.library;
(...skipping 336 matching lines...) Expand 10 before | Expand all | Expand 10 after
611 611
612 class PatchVersion { 612 class PatchVersion {
613 final String tag; 613 final String tag;
614 614
615 const PatchVersion(this.tag); 615 const PatchVersion(this.tag);
616 616
617 bool isActive(String patchTag) => tag == null || tag == patchTag; 617 bool isActive(String patchTag) => tag == null || tag == patchTag;
618 618
619 String toString() => 'PatchVersion($tag)'; 619 String toString() => 'PatchVersion($tag)';
620 } 620 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/parser/partial_elements.dart ('k') | pkg/compiler/lib/src/resolution/class_hierarchy.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698