Fixes #912. Abstract variables syntax tests added
diff --git a/LanguageFeatures/Abstract-external-fields/syntax_A01_t01.dart b/LanguageFeatures/Abstract-external-fields/syntax_A01_t01.dart
index c02e1eb..50438ef 100644
--- a/LanguageFeatures/Abstract-external-fields/syntax_A01_t01.dart
+++ b/LanguageFeatures/Abstract-external-fields/syntax_A01_t01.dart
@@ -25,6 +25,7 @@
  *
  * @description Checks topLevelDefinition syntax
  * @author sgrekhov@unipro.ru
+ * @issue 43851
  */
 
   final external int i1;
diff --git a/LanguageFeatures/Abstract-external-fields/syntax_A01_t05.dart b/LanguageFeatures/Abstract-external-fields/syntax_A01_t05.dart
index 5db3fdb..678d9e4 100644
--- a/LanguageFeatures/Abstract-external-fields/syntax_A01_t05.dart
+++ b/LanguageFeatures/Abstract-external-fields/syntax_A01_t05.dart
@@ -25,6 +25,7 @@
  *
  * @description Checks topLevelDefinition syntax
  * @author sgrekhov@unipro.ru
+ * @issue 43851
  */
 
   var external i2;
diff --git a/LanguageFeatures/Abstract-external-fields/syntax_A02_t01.dart b/LanguageFeatures/Abstract-external-fields/syntax_A02_t01.dart
index 86c628f..d8d68b2 100644
--- a/LanguageFeatures/Abstract-external-fields/syntax_A02_t01.dart
+++ b/LanguageFeatures/Abstract-external-fields/syntax_A02_t01.dart
@@ -25,6 +25,7 @@
  *
  * @description Checks topLevelDefinition syntax
  * @author sgrekhov@unipro.ru
+ * @issue 43851
  */
 class C {
   final external int i1;
diff --git a/LanguageFeatures/Abstract-external-fields/syntax_A02_t05.dart b/LanguageFeatures/Abstract-external-fields/syntax_A02_t05.dart
index 0c3584a..20ab73f 100644
--- a/LanguageFeatures/Abstract-external-fields/syntax_A02_t05.dart
+++ b/LanguageFeatures/Abstract-external-fields/syntax_A02_t05.dart
@@ -25,6 +25,7 @@
  *
  * @description Checks topLevelDefinition syntax
  * @author sgrekhov@unipro.ru
+ * @issue 43851
  */
 class C {
   var external i2;
diff --git a/LanguageFeatures/Abstract-external-fields/syntax_A02_t10.dart b/LanguageFeatures/Abstract-external-fields/syntax_A02_t10.dart
index 8f22c76..5ff3ad9 100644
--- a/LanguageFeatures/Abstract-external-fields/syntax_A02_t10.dart
+++ b/LanguageFeatures/Abstract-external-fields/syntax_A02_t10.dart
@@ -25,6 +25,7 @@
  *
  * @description Checks topLevelDefinition syntax
  * @author sgrekhov@unipro.ru
+ * @issue 43851
  */
 class C {
   covariant external num i1;
diff --git a/LanguageFeatures/Abstract-external-fields/syntax_A03_t01.dart b/LanguageFeatures/Abstract-external-fields/syntax_A03_t01.dart
new file mode 100644
index 0000000..db8e16e
--- /dev/null
+++ b/LanguageFeatures/Abstract-external-fields/syntax_A03_t01.dart
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2020, the Dart project authors.  Please see the AUTHORS file
+ * for details. All rights reserved. Use of this source code is governed by a
+ * BSD-style license that can be found in the LICENSE file.
+ */
+/**
+ * @assertion The grammar is modified as follows:
+ *
+ * <topLevelDefinition> ::=
+ *  ... |
+ *  // New alternative.
+ *  'external' <finalVarOrType> <identifierList> ';'
+ *
+ *  <finalVarOrType> ::= // New rule.
+ *  'final' <type>? |
+ *  <varOrType>
+ *
+ *  <declaration> ::=
+ *  ... |
+ *  // New alternative.
+ *  'external' ('static'? <finalVarOrType> | 'covariant' <varOrType>)
+ *  <identifierList> |
+ * // New alternative.
+ *  'abstract' (<finalVarOrType> | 'covariant' <varOrType>) <identifierList>
+ *
+ * @description Checks topLevelDefinition syntax
+ * @author sgrekhov@unipro.ru
+ * @issue 43855
+ */
+abstract class C {
+  final abstract int i1;
+//^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  final abstract i2;
+//^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+main() {
+  C? c;
+}
diff --git a/LanguageFeatures/Abstract-external-fields/syntax_A03_t02.dart b/LanguageFeatures/Abstract-external-fields/syntax_A03_t02.dart
new file mode 100644
index 0000000..e3967ae
--- /dev/null
+++ b/LanguageFeatures/Abstract-external-fields/syntax_A03_t02.dart
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2020, the Dart project authors.  Please see the AUTHORS file
+ * for details. All rights reserved. Use of this source code is governed by a
+ * BSD-style license that can be found in the LICENSE file.
+ */
+/**
+ * @assertion The grammar is modified as follows:
+ *
+ * <topLevelDefinition> ::=
+ *  ... |
+ *  // New alternative.
+ *  'external' <finalVarOrType> <identifierList> ';'
+ *
+ *  <finalVarOrType> ::= // New rule.
+ *  'final' <type>? |
+ *  <varOrType>
+ *
+ *  <declaration> ::=
+ *  ... |
+ *  // New alternative.
+ *  'external' ('static'? <finalVarOrType> | 'covariant' <varOrType>)
+ *  <identifierList> |
+ * // New alternative.
+ *  'abstract' (<finalVarOrType> | 'covariant' <varOrType>) <identifierList>
+ *
+ * @description Checks topLevelDefinition syntax
+ * @author sgrekhov@unipro.ru
+ * @issue 43855
+ */
+abstract class C {
+  covariant abstract num i1;
+//^^^^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  covariant abstract var i2;
+//^^^^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+main() {
+  C? c;
+}
diff --git a/LanguageFeatures/Abstract-external-fields/syntax_A03_t03.dart b/LanguageFeatures/Abstract-external-fields/syntax_A03_t03.dart
new file mode 100644
index 0000000..e3967ae
--- /dev/null
+++ b/LanguageFeatures/Abstract-external-fields/syntax_A03_t03.dart
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2020, the Dart project authors.  Please see the AUTHORS file
+ * for details. All rights reserved. Use of this source code is governed by a
+ * BSD-style license that can be found in the LICENSE file.
+ */
+/**
+ * @assertion The grammar is modified as follows:
+ *
+ * <topLevelDefinition> ::=
+ *  ... |
+ *  // New alternative.
+ *  'external' <finalVarOrType> <identifierList> ';'
+ *
+ *  <finalVarOrType> ::= // New rule.
+ *  'final' <type>? |
+ *  <varOrType>
+ *
+ *  <declaration> ::=
+ *  ... |
+ *  // New alternative.
+ *  'external' ('static'? <finalVarOrType> | 'covariant' <varOrType>)
+ *  <identifierList> |
+ * // New alternative.
+ *  'abstract' (<finalVarOrType> | 'covariant' <varOrType>) <identifierList>
+ *
+ * @description Checks topLevelDefinition syntax
+ * @author sgrekhov@unipro.ru
+ * @issue 43855
+ */
+abstract class C {
+  covariant abstract num i1;
+//^^^^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  covariant abstract var i2;
+//^^^^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+main() {
+  C? c;
+}
diff --git a/LanguageFeatures/Abstract-external-fields/syntax_A03_t04.dart b/LanguageFeatures/Abstract-external-fields/syntax_A03_t04.dart
new file mode 100644
index 0000000..091e45d
--- /dev/null
+++ b/LanguageFeatures/Abstract-external-fields/syntax_A03_t04.dart
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2020, the Dart project authors.  Please see the AUTHORS file
+ * for details. All rights reserved. Use of this source code is governed by a
+ * BSD-style license that can be found in the LICENSE file.
+ */
+/**
+ * @assertion The grammar is modified as follows:
+ *
+ * <topLevelDefinition> ::=
+ *  ... |
+ *  // New alternative.
+ *  'external' <finalVarOrType> <identifierList> ';'
+ *
+ *  <finalVarOrType> ::= // New rule.
+ *  'final' <type>? |
+ *  <varOrType>
+ *
+ *  <declaration> ::=
+ *  ... |
+ *  // New alternative.
+ *  'external' ('static'? <finalVarOrType> | 'covariant' <varOrType>)
+ *  <identifierList> |
+ * // New alternative.
+ *  'abstract' (<finalVarOrType> | 'covariant' <varOrType>) <identifierList>
+ *
+ * @description Checks topLevelDefinition syntax
+ * @author sgrekhov@unipro.ru
+ * @compile-error
+ */
+abstract class C {
+  covariant int? abstract i1;
+  covariant var abstract i2;
+}
+
+main() {
+  C? c;
+}
diff --git a/LanguageFeatures/Abstract-external-fields/syntax_A03_t05.dart b/LanguageFeatures/Abstract-external-fields/syntax_A03_t05.dart
new file mode 100644
index 0000000..821ca0d
--- /dev/null
+++ b/LanguageFeatures/Abstract-external-fields/syntax_A03_t05.dart
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2020, the Dart project authors.  Please see the AUTHORS file
+ * for details. All rights reserved. Use of this source code is governed by a
+ * BSD-style license that can be found in the LICENSE file.
+ */
+/**
+ * @assertion The grammar is modified as follows:
+ *
+ * <topLevelDefinition> ::=
+ *  ... |
+ *  // New alternative.
+ *  'external' <finalVarOrType> <identifierList> ';'
+ *
+ *  <finalVarOrType> ::= // New rule.
+ *  'final' <type>? |
+ *  <varOrType>
+ *
+ *  <declaration> ::=
+ *  ... |
+ *  // New alternative.
+ *  'external' ('static'? <finalVarOrType> | 'covariant' <varOrType>)
+ *  <identifierList> |
+ * // New alternative.
+ *  'abstract' (<finalVarOrType> | 'covariant' <varOrType>) <identifierList>
+ *
+ * @description Checks topLevelDefinition syntax
+ * @author sgrekhov@unipro.ru
+ * @compile-error
+ */
+abstract class C {
+  int? abstract i1;
+  var abstract i2;
+}
+
+main() {
+  C? c;
+}
diff --git a/LanguageFeatures/Abstract-external-fields/syntax_A03_t06.dart b/LanguageFeatures/Abstract-external-fields/syntax_A03_t06.dart
new file mode 100644
index 0000000..d7afcda
--- /dev/null
+++ b/LanguageFeatures/Abstract-external-fields/syntax_A03_t06.dart
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2020, the Dart project authors.  Please see the AUTHORS file
+ * for details. All rights reserved. Use of this source code is governed by a
+ * BSD-style license that can be found in the LICENSE file.
+ */
+/**
+ * @assertion The grammar is modified as follows:
+ *
+ * <topLevelDefinition> ::=
+ *  ... |
+ *  // New alternative.
+ *  'external' <finalVarOrType> <identifierList> ';'
+ *
+ *  <finalVarOrType> ::= // New rule.
+ *  'final' <type>? |
+ *  <varOrType>
+ *
+ *  <declaration> ::=
+ *  ... |
+ *  // New alternative.
+ *  'external' ('static'? <finalVarOrType> | 'covariant' <varOrType>)
+ *  <identifierList> |
+ * // New alternative.
+ *  'abstract' (<finalVarOrType> | 'covariant' <varOrType>) <identifierList>
+ *
+ * @description Checks topLevelDefinition syntax
+ * @author sgrekhov@unipro.ru
+ */
+abstract class C {
+  static abstract num? i1;
+//       ^^^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  abstract static var i2;
+//^^^^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+main() {
+  C? c;
+}