Index: packages/petitparser/lib/src/dart/grammar.dart |
diff --git a/petitparser/lib/src/dart/grammar.dart b/packages/petitparser/lib/src/dart/grammar.dart |
similarity index 95% |
rename from petitparser/lib/src/dart/grammar.dart |
rename to packages/petitparser/lib/src/dart/grammar.dart |
index 187ecfa3c8759837acf01841ee7579d885d9f398..e7bfa4198ddbd78f3e4680f1f25452127a808b27 100644 |
--- a/petitparser/lib/src/dart/grammar.dart |
+++ b/packages/petitparser/lib/src/dart/grammar.dart |
@@ -1,17 +1,11 @@ |
-part of dart; |
+part of petitparser.dart; |
-/** |
- * Dart grammar. |
- */ |
+/// Dart grammar. |
class DartGrammar extends GrammarParser { |
DartGrammar() : super(new DartGrammarDefinition()); |
} |
-/** |
- * Dart grammar definition. |
- * |
- * Adapted from [https://code.google.com/p/dart/source/browse/branches/bleeding_edge/dart/language/grammar/Dart.g]. |
- */ |
+/// Dart grammar definition. |
class DartGrammarDefinition extends GrammarDefinition { |
Parser token(input) { |
@@ -23,7 +17,7 @@ class DartGrammarDefinition extends GrammarDefinition { |
if (input is! Parser && input is TrimmingParser) { |
throw new StateError('Invalid token parser: $input'); |
} |
- return input.token().trim(ref(HIDDEN)); |
+ return input.token().trim(ref(HIDDEN_STUFF)); |
} |
@@ -146,8 +140,8 @@ class DartGrammarDefinition extends GrammarDefinition { |
| ref(functionDeclaration) & ref(initializers).optional() |
| ref(namedConstructorDeclaration) & ref(initializers).optional(); |
-// An abstract method/operator, a field, or const constructor (which |
-// all should be followed by a semicolon). |
+ // An abstract method/operator, a field, or const constructor (which |
+ // all should be followed by a semicolon). |
declaration() => |
ref(constantConstructorDeclaration) & (ref(redirection) | ref(initializers)).optional() |
| ref(functionDeclaration) & ref(redirection) |
@@ -245,8 +239,8 @@ class DartGrammarDefinition extends GrammarDefinition { |
| ref(token, '+=') |
| ref(token, '-=') |
| ref(token, '<<=') |
- | ref(token, '>') & ref(token, '>') & ref(token, '>') & ref(token, '=') |
- | ref(token, '>') & ref(token, '>') & ref(token, '=') |
+ | ref(token, '>>>=') |
+ | ref(token, '>>=') |
| ref(token, '&=') |
| ref(token, '^=') |
| ref(token, '|='); |
@@ -261,20 +255,20 @@ class DartGrammarDefinition extends GrammarDefinition { |
shiftOperator() => |
ref(token, '<<') |
- | ref(token, '>') & ref(token, '>') & ref(token, '>') |
- | ref(token, '>') & ref(token, '>'); |
+ | ref(token, '>>>') |
+ | ref(token, '>>'); |
relationalOperator() => |
- ref(token, '>') & ref(token, '=') |
+ ref(token, '>=') |
| ref(token, '>') |
| ref(token, '<=') |
| ref(token, '<'); |
equalityOperator() => |
- ref(token, '==') |
- | ref(token, '!=') |
- | ref(token, '===') |
- | ref(token, '!=='); |
+ ref(token, '===') |
+ | ref(token, '!==') |
+ | ref(token, '==') |
+ | ref(token, '!='); |
bitwiseOperator() => |
ref(token, '&') |
@@ -327,26 +321,7 @@ class DartGrammarDefinition extends GrammarDefinition { |
| ref(type) & ref(identifier) |
; |
- identifier() => ref(token, ref(IDENTIFIER) |
- | ref(ABSTRACT) |
- | ref(ASSERT) |
- | ref(CLASS) |
- | ref(EXTENDS) |
- | ref(FACTORY) |
- | ref(GET) |
- | ref(IMPLEMENTS) |
- | ref(IMPORT) |
- | ref(INTERFACE) |
- | ref(IS) |
- | ref(LIBRARY) |
- | ref(NATIVE) |
- | ref(NEGATE) |
- | ref(OPERATOR) |
- | ref(SET) |
- | ref(SOURCE) |
- | ref(STATIC) |
- | ref(TYPEDEF) |
- ); |
+ identifier() => ref(token, ref(IDENTIFIER)); |
qualified() => |
ref(identifier) & (ref(token, '.') & ref(identifier)).optional() |