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

Side by Side Diff: runtime/vm/scanner.cc

Issue 11316031: - Move MathNatives from dart:core to dart:math. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 1 month 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 | « runtime/vm/scanner.h ('k') | runtime/vm/vm.gypi » ('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 #include "vm/scanner.h" 5 #include "vm/scanner.h"
6 6
7 #include "platform/assert.h" 7 #include "platform/assert.h"
8 #include "vm/flags.h" 8 #include "vm/flags.h"
9 #include "vm/object.h" 9 #include "vm/object.h"
10 #include "vm/object_store.h" 10 #include "vm/object_store.h"
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
167 } 167 }
168 for (int i = 1; i < str.Length(); i++) { 168 for (int i = 1; i < str.Length(); i++) {
169 if (!IsIdentChar(str.CharAt(i))) { 169 if (!IsIdentChar(str.CharAt(i))) {
170 return false; 170 return false;
171 } 171 }
172 } 172 }
173 return true; 173 return true;
174 } 174 }
175 175
176 176
177 // This method is used when parsing integers and doubles in Dart code. We
178 // are reusing the Scanner's handling of number literals in that situation.
179 bool Scanner::IsValidLiteral(const Scanner::GrowableTokenStream& tokens,
180 Token::Kind literal_kind,
181 bool* is_positive,
182 String** value) {
183 if ((tokens.length() == 2) &&
184 (tokens[0].kind == literal_kind) &&
185 (tokens[1].kind == Token::kEOS)) {
186 *is_positive = true;
187 *value = tokens[0].literal;
188 return true;
189 }
190 if ((tokens.length() == 3) &&
191 ((tokens[0].kind == Token::kTIGHTADD) ||
192 (tokens[0].kind == Token::kSUB)) &&
193 (tokens[1].kind == literal_kind) &&
194 (tokens[2].kind == Token::kEOS)) {
195 // Check there is no space between "+/-" and number.
196 if ((tokens[0].offset + 1) != tokens[1].offset) {
197 return false;
198 }
199 *is_positive = tokens[0].kind == Token::kTIGHTADD;
200 *value = tokens[1].literal;
201 return true;
202 }
203 return false;
204 }
205
206
177 void Scanner::ReadChar() { 207 void Scanner::ReadChar() {
178 if (lookahead_pos_ < source_length_) { 208 if (lookahead_pos_ < source_length_) {
179 if (c0_ == '\n') { 209 if (c0_ == '\n') {
180 newline_seen_ = true; 210 newline_seen_ = true;
181 c0_pos_.line++; 211 c0_pos_.line++;
182 c0_pos_.column = 0; 212 c0_pos_.column = 0;
183 if (source_.CharAt(lookahead_pos_) == '\r') { 213 if (source_.CharAt(lookahead_pos_) == '\r') {
184 // Replace a sequence of '\r' '\n' with a single '\n'. 214 // Replace a sequence of '\r' '\n' with a single '\n'.
185 if (LookaheadChar(1) == '\n') { 215 if (LookaheadChar(1) == '\n') {
186 lookahead_pos_++; 216 lookahead_pos_++;
(...skipping 765 matching lines...) Expand 10 before | Expand all | Expand 10 after
952 "%c%#"Px"", kPrivateKeySeparator, key_value); 982 "%c%#"Px"", kPrivateKeySeparator, key_value);
953 const String& result = String::Handle(String::New(private_key, Heap::kOld)); 983 const String& result = String::Handle(String::New(private_key, Heap::kOld));
954 return result.raw(); 984 return result.raw();
955 } 985 }
956 986
957 987
958 void Scanner::InitOnce() { 988 void Scanner::InitOnce() {
959 } 989 }
960 990
961 } // namespace dart 991 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/scanner.h ('k') | runtime/vm/vm.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698