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

Side by Side Diff: compiler/java/com/google/dart/compiler/parser/DartParser.java

Issue 9288076: Call operator shared test and parser updates for operator call in dartc. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: more test updates Created 8 years, 11 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | tests/language/language.status » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 package com.google.dart.compiler.parser; 5 package com.google.dart.compiler.parser;
6 6
7 import com.google.common.annotations.VisibleForTesting; 7 import com.google.common.annotations.VisibleForTesting;
8 import com.google.common.io.CharStreams; 8 import com.google.common.io.CharStreams;
9 import com.google.dart.compiler.DartCompilationError; 9 import com.google.dart.compiler.DartCompilationError;
10 import com.google.dart.compiler.DartCompilerListener; 10 import com.google.dart.compiler.DartCompilerListener;
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 /** 119 /**
120 * Determines the maximum number of errors before terminating the parser. See 120 * Determines the maximum number of errors before terminating the parser. See
121 * {@link #reportError(com.google.dart.compiler.parser.DartScanner.Position, E rrorCode, 121 * {@link #reportError(com.google.dart.compiler.parser.DartScanner.Position, E rrorCode,
122 * Object...)}. 122 * Object...)}.
123 */ 123 */
124 final int MAX_DEFAULT_ERRORS = 100; 124 final int MAX_DEFAULT_ERRORS = 100;
125 125
126 // Pseudo-keywords that should also be valid identifiers. 126 // Pseudo-keywords that should also be valid identifiers.
127 private static final String ABSTRACT_KEYWORD = "abstract"; 127 private static final String ABSTRACT_KEYWORD = "abstract";
128 private static final String ASSERT_KEYWORD = "assert"; 128 private static final String ASSERT_KEYWORD = "assert";
129 private static final String CALL_KEYWORD = "call";
129 private static final String EXTENDS_KEYWORD = "extends"; 130 private static final String EXTENDS_KEYWORD = "extends";
130 private static final String FACTORY_KEYWORD = "factory"; // TODO(zundel): remo ve 131 private static final String FACTORY_KEYWORD = "factory"; // TODO(zundel): remo ve
131 private static final String GETTER_KEYWORD = "get"; 132 private static final String GETTER_KEYWORD = "get";
132 private static final String IMPLEMENTS_KEYWORD = "implements"; 133 private static final String IMPLEMENTS_KEYWORD = "implements";
133 private static final String INTERFACE_KEYWORD = "interface"; 134 private static final String INTERFACE_KEYWORD = "interface";
134 private static final String NATIVE_KEYWORD = "native"; 135 private static final String NATIVE_KEYWORD = "native";
135 private static final String NEGATE_KEYWORD = "negate"; 136 private static final String NEGATE_KEYWORD = "negate";
136 private static final String OPERATOR_KEYWORD = "operator"; 137 private static final String OPERATOR_KEYWORD = "operator";
137 private static final String PREFIX_KEYWORD = "prefix"; 138 private static final String PREFIX_KEYWORD = "prefix";
138 private static final String SETTER_KEYWORD = "set"; 139 private static final String SETTER_KEYWORD = "set";
139 private static final String STATIC_KEYWORD = "static"; 140 private static final String STATIC_KEYWORD = "static";
140 private static final String TYPEDEF_KEYWORD = "typedef"; 141 private static final String TYPEDEF_KEYWORD = "typedef";
141 142
143
142 public static final String[] PSEUDO_KEYWORDS = { 144 public static final String[] PSEUDO_KEYWORDS = {
143 ABSTRACT_KEYWORD, 145 ABSTRACT_KEYWORD,
144 ASSERT_KEYWORD, 146 ASSERT_KEYWORD,
147 CALL_KEYWORD,
145 EXTENDS_KEYWORD, 148 EXTENDS_KEYWORD,
146 FACTORY_KEYWORD, 149 FACTORY_KEYWORD,
147 GETTER_KEYWORD, 150 GETTER_KEYWORD,
148 IMPLEMENTS_KEYWORD, 151 IMPLEMENTS_KEYWORD,
149 INTERFACE_KEYWORD, 152 INTERFACE_KEYWORD,
150 NEGATE_KEYWORD, 153 NEGATE_KEYWORD,
151 NATIVE_KEYWORD, 154 NATIVE_KEYWORD,
152 OPERATOR_KEYWORD, 155 OPERATOR_KEYWORD,
153 PREFIX_KEYWORD, 156 PREFIX_KEYWORD,
154 SETTER_KEYWORD, 157 SETTER_KEYWORD,
(...skipping 680 matching lines...) Expand 10 before | Expand all | Expand 10 after
835 * : GET 838 * : GET
836 * | SET 839 * | SET
837 * ; 840 * ;
838 * 841 *
839 * operator 842 * operator
840 * : unaryOperator 843 * : unaryOperator
841 * | binaryOperator 844 * | binaryOperator
842 * | '[' ']' { "[]".equals($text) }? 845 * | '[' ']' { "[]".equals($text) }?
843 * | '[' ']' '=' { "[]=".equals($text) }? 846 * | '[' ']' '=' { "[]=".equals($text) }?
844 * | NEGATE 847 * | NEGATE
848 * | CALL
845 * ; 849 * ;
846 * </pre> 850 * </pre>
847 * 851 *
848 * @param allowStatic true if the static modifier is allowed 852 * @param allowStatic true if the static modifier is allowed
849 * @return a {@link DartNode} representing the grammar fragment above 853 * @return a {@link DartNode} representing the grammar fragment above
850 */ 854 */
851 private DartNode parseFieldOrMethod(boolean allowStatic) { 855 private DartNode parseFieldOrMethod(boolean allowStatic) {
852 beginClassMember(); 856 beginClassMember();
853 Modifiers modifiers = Modifiers.NONE; 857 Modifiers modifiers = Modifiers.NONE;
854 if (optionalPseudoKeyword(STATIC_KEYWORD)) { 858 if (optionalPseudoKeyword(STATIC_KEYWORD)) {
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after
1089 } else if (operation == Token.INDEX) { 1093 } else if (operation == Token.INDEX) {
1090 arity = 1; 1094 arity = 1;
1091 } else { 1095 } else {
1092 assert operation.isUnaryOperator(); 1096 assert operation.isUnaryOperator();
1093 arity = 0; 1097 arity = 0;
1094 } 1098 }
1095 } else if (operation == Token.IDENTIFIER 1099 } else if (operation == Token.IDENTIFIER
1096 && ctx.getTokenString().equals(NEGATE_KEYWORD)) { 1100 && ctx.getTokenString().equals(NEGATE_KEYWORD)) {
1097 name = done(new DartIdentifier(NEGATE_KEYWORD)); 1101 name = done(new DartIdentifier(NEGATE_KEYWORD));
1098 arity = 0; 1102 arity = 0;
1103 } else if (operation == Token.IDENTIFIER
1104 && ctx.getTokenString().equals(CALL_KEYWORD)) {
1105 name = done(new DartIdentifier(CALL_KEYWORD));
1099 } else { 1106 } else {
1100 reportUnexpectedToken(position(), Token.COMMENT, operation); 1107 reportUnexpectedToken(position(), Token.COMMENT, operation);
1101 done(null); 1108 done(null);
1102 } 1109 }
1103 } else { 1110 } else {
1104 beginMethodName(); 1111 beginMethodName();
1105 // Check for getters and setters. 1112 // Check for getters and setters.
1106 if (optionalPseudoKeyword(GETTER_KEYWORD)) { 1113 if (optionalPseudoKeyword(GETTER_KEYWORD)) {
1107 name = parseIdentifier(); 1114 name = parseIdentifier();
1108 modifiers = modifiers.makeGetter(); 1115 modifiers = modifiers.makeGetter();
(...skipping 2713 matching lines...) Expand 10 before | Expand all | Expand 10 after
3822 } 3829 }
3823 3830
3824 private void reportError(DartNode node, ErrorCode errorCode, Object... argumen ts) { 3831 private void reportError(DartNode node, ErrorCode errorCode, Object... argumen ts) {
3825 reportError(new DartCompilationError(node, errorCode, arguments)); 3832 reportError(new DartCompilationError(node, errorCode, arguments));
3826 } 3833 }
3827 3834
3828 private boolean currentlyParsingToplevel() { 3835 private boolean currentlyParsingToplevel() {
3829 return !(isParsingInterface || isTopLevelAbstract || isParsingClass); 3836 return !(isParsingInterface || isTopLevelAbstract || isParsingClass);
3830 } 3837 }
3831 } 3838 }
OLDNEW
« no previous file with comments | « no previous file | tests/language/language.status » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698