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

Side by Side Diff: runtime/vm/symbols.h

Issue 72923002: Add Dart keyword symbols to the VM isolate (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 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
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 #ifndef VM_SYMBOLS_H_ 5 #ifndef VM_SYMBOLS_H_
6 #define VM_SYMBOLS_H_ 6 #define VM_SYMBOLS_H_
7 7
8 #include "vm/object.h" 8 #include "vm/object.h"
9 #include "vm/snapshot_ids.h" 9 #include "vm/snapshot_ids.h"
10 10
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after
308 308
309 // List of strings that are pre created in the vm isolate. 309 // List of strings that are pre created in the vm isolate.
310 enum SymbolId { 310 enum SymbolId {
311 kIllegal = 0, 311 kIllegal = 0,
312 312
313 #define DEFINE_SYMBOL_INDEX(symbol, literal) \ 313 #define DEFINE_SYMBOL_INDEX(symbol, literal) \
314 k##symbol##Id, 314 k##symbol##Id,
315 PREDEFINED_SYMBOLS_LIST(DEFINE_SYMBOL_INDEX) 315 PREDEFINED_SYMBOLS_LIST(DEFINE_SYMBOL_INDEX)
316 #undef DEFINE_SYMBOL_INDEX 316 #undef DEFINE_SYMBOL_INDEX
317 317
318 kKwTableStart, // First keyword at kKwTableStart + 1.
319
320 #define DEFINE_KEYWORD_SYMBOL_INDEX(token, chars, ignore1, ignore2) \
321 token##Id,
322 DART_KEYWORD_LIST(DEFINE_KEYWORD_SYMBOL_INDEX)
323 #undef DEFINE_KEYWORD_SYMBOL_INDEX
324
318 kNullCharId, // One char code symbol starts here and takes up 256 entries. 325 kNullCharId, // One char code symbol starts here and takes up 256 entries.
319 kMaxPredefinedId = kNullCharId + kMaxOneCharCodeSymbol + 1, 326 kMaxPredefinedId = kNullCharId + kMaxOneCharCodeSymbol + 1,
320 }; 327 };
321 328
322 // Number of one character symbols being predefined in the predefined_ array. 329 // Number of one character symbols being predefined in the predefined_ array.
323 static const int kNumberOfOneCharCodeSymbols = 330 static const int kNumberOfOneCharCodeSymbols =
324 (kMaxPredefinedId - kNullCharId); 331 (kMaxPredefinedId - kNullCharId);
325 332
326 // Offset of Null character which is the predefined character symbol. 333 // Offset of Null character which is the predefined character symbol.
327 static const int kNullCharCodeSymbolOffset = 0; 334 static const int kNullCharCodeSymbolOffset = 0;
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
390 static const String& Semicolon() { 397 static const String& Semicolon() {
391 return *(symbol_handles_[kNullCharId + ';']); 398 return *(symbol_handles_[kNullCharId + ';']);
392 } 399 }
393 400
394 // Access methods for symbol handles stored in the vm isolate. 401 // Access methods for symbol handles stored in the vm isolate.
395 #define DEFINE_SYMBOL_HANDLE_ACCESSOR(symbol, literal) \ 402 #define DEFINE_SYMBOL_HANDLE_ACCESSOR(symbol, literal) \
396 static const String& symbol() { return *(symbol_handles_[k##symbol##Id]); } 403 static const String& symbol() { return *(symbol_handles_[k##symbol##Id]); }
397 PREDEFINED_SYMBOLS_LIST(DEFINE_SYMBOL_HANDLE_ACCESSOR) 404 PREDEFINED_SYMBOLS_LIST(DEFINE_SYMBOL_HANDLE_ACCESSOR)
398 #undef DEFINE_SYMBOL_HANDLE_ACCESSOR 405 #undef DEFINE_SYMBOL_HANDLE_ACCESSOR
399 406
407 // Get symbol for scanner keyword.
408 static const String& Keyword(Token::Kind keyword);
409
400 // Initialize frequently used symbols in the vm isolate. 410 // Initialize frequently used symbols in the vm isolate.
401 static void InitOnce(Isolate* isolate); 411 static void InitOnce(Isolate* isolate);
402 412
403 // Initialize and setup a symbol table for the isolate. 413 // Initialize and setup a symbol table for the isolate.
404 static void SetupSymbolTable(Isolate* isolate); 414 static void SetupSymbolTable(Isolate* isolate);
405 415
406 // Get number of symbols in an isolate's symbol table. 416 // Get number of symbols in an isolate's symbol table.
407 static intptr_t Size(Isolate* isolate); 417 static intptr_t Size(Isolate* isolate);
408 418
409 // Creates a Symbol given a C string that is assumed to contain 419 // Creates a Symbol given a C string that is assumed to contain
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
498 friend class SnapshotReader; 508 friend class SnapshotReader;
499 friend class SnapshotWriter; 509 friend class SnapshotWriter;
500 friend class ApiMessageReader; 510 friend class ApiMessageReader;
501 511
502 DISALLOW_COPY_AND_ASSIGN(Symbols); 512 DISALLOW_COPY_AND_ASSIGN(Symbols);
503 }; 513 };
504 514
505 } // namespace dart 515 } // namespace dart
506 516
507 #endif // VM_SYMBOLS_H_ 517 #endif // VM_SYMBOLS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698