diff --git a/.idea/runConfigurations/All_Tests.xml b/.idea/runConfigurations/All_Tests.xml
deleted file mode 100644
index 9b10a435..00000000
--- a/.idea/runConfigurations/All_Tests.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/runConfigurations/tests_in_comment_test_dart.xml b/.idea/runConfigurations/tests_in_comment_test_dart.xml
new file mode 100644
index 00000000..29f7faf4
--- /dev/null
+++ b/.idea/runConfigurations/tests_in_comment_test_dart.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/runConfigurations/tests_in_graphql_parser.xml b/.idea/runConfigurations/tests_in_graphql_parser.xml
index e3ea6792..854ed556 100644
--- a/.idea/runConfigurations/tests_in_graphql_parser.xml
+++ b/.idea/runConfigurations/tests_in_graphql_parser.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/.travis.yml b/.travis.yml
index 7c2f802a..903bc5ea 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,3 +1,6 @@
language: dart
+dart:
+ - dev
+ - stable
script:
- - travis.sh
\ No newline at end of file
+ - bash -ex travis.sh
\ No newline at end of file
diff --git a/graphql_parser/lib/src/language/lexer.dart b/graphql_parser/lib/src/language/lexer.dart
index 63eb94c6..e74ecdd0 100644
--- a/graphql_parser/lib/src/language/lexer.dart
+++ b/graphql_parser/lib/src/language/lexer.dart
@@ -3,6 +3,7 @@ import 'syntax_error.dart';
import 'token.dart';
import 'token_type.dart';
+final RegExp _comment = RegExp(r'#[^\n]*');
final RegExp _whitespace = new RegExp('[ \t\n\r]+');
final RegExp _boolean = new RegExp(r'true|false');
final RegExp _number = new RegExp(r'-?[0-9]+(\.[0-9]+)?(E|e(\+|-)?[0-9]+)?');
@@ -41,7 +42,7 @@ List scan(String text) {
while (!scanner.isDone) {
List potential = [];
- if (scanner.scan(_whitespace)) continue;
+ if (scanner.scan(_comment) || scanner.scan(_whitespace)) continue;
for (var pattern in _patterns.keys) {
if (scanner.matches(pattern)) {
diff --git a/graphql_parser/test/all.dart b/graphql_parser/test/all.dart
deleted file mode 100644
index fdc40728..00000000
--- a/graphql_parser/test/all.dart
+++ /dev/null
@@ -1,26 +0,0 @@
-import 'package:test/test.dart';
-import 'argument_test.dart' as argument;
-import 'directive_test.dart' as directive;
-import 'document_test.dart' as document;
-import 'field_test.dart' as field;
-import 'fragment_spread_test.dart' as fragment_spread;
-import 'inline_fragment_test.dart' as inline_fragment;
-import 'selection_set_test.dart' as selection_set;
-import 'type_test.dart' as type;
-import 'value_test.dart' as value;
-import 'variable_definition_test.dart' as variable_definition;
-import 'variable_test.dart' as variable;
-
-main() {
- group('argument', argument.main);
- group('directive', directive.main);
- group('document', document.main);
- group('field', field.main);
- group('fragment spread', fragment_spread.main);
- group('inline fragment', inline_fragment.main);
- group('selection set', selection_set.main);
- group('type', type.main);
- group('value', value.main);
- group('variable', variable.main);
- group('variable definition', variable_definition.main);
-}
diff --git a/graphql_parser/test/comment_test.dart b/graphql_parser/test/comment_test.dart
new file mode 100644
index 00000000..5ca6a91e
--- /dev/null
+++ b/graphql_parser/test/comment_test.dart
@@ -0,0 +1,16 @@
+import 'package:graphql_parser/graphql_parser.dart';
+import 'package:test/test.dart';
+
+void main() {
+ test('heeds comments', () {
+ var tokens = scan('''
+ # Hello
+ {
+ # Goodbye
+ }
+ # Bonjour
+ ''');
+
+ expect(tokens, hasLength(2));
+ });
+}
diff --git a/travis.sh b/travis.sh
index 2da982a9..05fac71d 100644
--- a/travis.sh
+++ b/travis.sh
@@ -1,4 +1,2 @@
#!/usr/bin/env bash
-set -e
-set -x
cd graphql_parser && pub get && pub run test -j2 && cd..
\ No newline at end of file