OLD | NEW |
1 library pub.preprocess; | 1 library pub.preprocess; |
| 2 import 'package:pub_semver/pub_semver.dart'; |
2 import 'package:string_scanner/string_scanner.dart'; | 3 import 'package:string_scanner/string_scanner.dart'; |
3 import 'version.dart'; | |
4 String preprocess(String input, Map<String, Version> versions, sourceUrl) { | 4 String preprocess(String input, Map<String, Version> versions, sourceUrl) { |
5 if (!input.contains(new RegExp(r"^//[>#]", multiLine: true))) return input; | 5 if (!input.contains(new RegExp(r"^//[>#]", multiLine: true))) return input; |
6 return new _Preprocessor(input, versions, sourceUrl).run(); | 6 return new _Preprocessor(input, versions, sourceUrl).run(); |
7 } | 7 } |
8 class _Preprocessor { | 8 class _Preprocessor { |
9 final StringScanner _scanner; | 9 final StringScanner _scanner; |
10 final Map<String, Version> _versions; | 10 final Map<String, Version> _versions; |
11 final _buffer = new StringBuffer(); | 11 final _buffer = new StringBuffer(); |
12 _Preprocessor(String input, this._versions, sourceUrl) | 12 _Preprocessor(String input, this._versions, sourceUrl) |
13 : _scanner = new StringScanner(input, sourceUrl: sourceUrl); | 13 : _scanner = new StringScanner(input, sourceUrl: sourceUrl); |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
67 } else { | 67 } else { |
68 _emitText(); | 68 _emitText(); |
69 } | 69 } |
70 _scanner.expect("//#"); | 70 _scanner.expect("//#"); |
71 _scanner.scan(new RegExp(r"[ \t]*")); | 71 _scanner.scan(new RegExp(r"[ \t]*")); |
72 } | 72 } |
73 _scanner.expect("end"); | 73 _scanner.expect("end"); |
74 if (!_scanner.isDone) _scanner.expect("\n"); | 74 if (!_scanner.isDone) _scanner.expect("\n"); |
75 } | 75 } |
76 } | 76 } |
OLD | NEW |