Reviewers: dcarney,

Message:
Committed patchset #1 manually as r18049.

Description:
Experimental parser: mock implementation for the rest of the Scanner API funcs.

And starting to fix some include file problems...

[email protected]
BUG=

Committed: https://code.google.com/p/v8/source/detail?r=18049

Please review this at https://codereview.chromium.org/85263003/

SVN Base: https://v8.googlecode.com/svn/branches/experimental/parser

Affected files (+68, -20 lines):
  M src/lexer/experimental-scanner.h


Index: src/lexer/experimental-scanner.h
diff --git a/src/lexer/experimental-scanner.h b/src/lexer/experimental-scanner.h index 46ca28de90e00fe8997738aa1bcbbff26de79e1b..ecdc0fedd0531108ff62cb67b439b5e0e82fb59b 100644
--- a/src/lexer/experimental-scanner.h
+++ b/src/lexer/experimental-scanner.h
@@ -38,18 +38,15 @@
 #include "preparse-data-format.h"
 #include "preparse-data.h"
 #include "scopes.h"
-#include "preparser.h"
 #include "api.h"
 #include "ast.h"
 #include "bootstrapper.h"
 #include "char-predicates-inl.h"
-#include "codegen.h"
 #include "compiler.h"
 #include "func-name-inferrer.h"
 #include "messages.h"
 #include "parser.h"
 #include "platform.h"
-#include "preparser.h"
 #include "runtime.h"
 #include "scanner-character-streams.h"
 #include "scopeinfo.h"
@@ -60,23 +57,23 @@ namespace internal {

 class UnicodeCache;

-template<typename YYCTYPE>
-class ExperimentalScanner {
- public:
-  struct Location {
-    Location(int b, int e) : beg_pos(b), end_pos(e) { }
-    Location() : beg_pos(0), end_pos(0) { }
+struct ScannerLocation {
+  ScannerLocation(int b, int e) : beg_pos(b), end_pos(e) { }
+  ScannerLocation() : beg_pos(0), end_pos(0) { }

-    bool IsValid() const {
-      return beg_pos >= 0 && end_pos >= beg_pos;
-    }
+  bool IsValid() const {
+    return beg_pos >= 0 && end_pos >= beg_pos;
+  }

-    static Location invalid() { return Location(-1, -1); }
+  static ScannerLocation invalid() { return ScannerLocation(-1, -1); }

-    int beg_pos;
-    int end_pos;
-  };
+  int beg_pos;
+  int end_pos;
+};

+template<typename YYCTYPE>
+class ExperimentalScanner {
+ public:
   explicit ExperimentalScanner(
       YYCTYPE* source,
       YYCTYPE* source_end,
@@ -97,14 +94,14 @@ class ExperimentalScanner {

   // Returns the location information for the current token
   // (the token last returned by Next()).
-  Location location() {
-    return Location(current_.beg_pos, current_.end_pos);
+  ScannerLocation location() {
+    return ScannerLocation(current_.beg_pos, current_.end_pos);
   }

   // One token look-ahead (past the token returned by Next()).
   Token::Value peek() const { return next_.token; }

-  Location peek_location() const { return next_.location; }
+  ScannerLocation peek_location() const { return next_.location; }

   UnicodeCache* unicode_cache() { return unicode_cache_; }

@@ -135,12 +132,63 @@ class ExperimentalScanner {
     // multiline comments? Atm doesn't look like we need to.
   }

+  // FIXME: implement these
+  Vector<const char> literal_ascii_string() {
+    return Vector<const char>();  // FIXME
+  }
+  Vector<const uc16> literal_utf16_string() {
+    return Vector<const uc16>();  // FIXME
+  }
+  bool is_literal_ascii() {
+    return true;  // FIXME
+  }
+  bool is_literal_contextual_keyword(Vector<const char> keyword) {
+    return false;  // FIXME
+  }
+  int literal_length() const {
+    return 0;  // FIXME
+  }
+  bool literal_contains_escapes() const {
+    return false;  // FIXME
+  }
+
+  Vector<const char> next_literal_ascii_string() {
+    return Vector<const char>();  // FIXME
+  }
+  Vector<const uc16> next_literal_utf16_string() {
+    return Vector<const uc16>();  // FIXME
+  }
+  bool is_next_literal_ascii() {
+    return true;  // FIXME
+  }
+  bool is_next_contextual_keyword(Vector<const char> keyword) {
+    return false;  // FIXME
+  }
+  int next_literal_length() const {
+    return 0;  // FIXME
+  }
+
+  uc32 ScanOctalEscape(uc32 c, int length) { return 0; }  // FIXME
+
+  ScannerLocation octal_position() const {
+    return ScannerLocation(0, 0);  // FIXME
+  }
+  void clear_octal_position() { }  // FIXME
+
+  void SeekForward(int pos) { }  // FIXME
+
+  // Scans the input as a regular expression pattern, previous
+  // character(s) must be /(=). Returns true if a pattern is scanned.
+  bool ScanRegExpPattern(bool seen_equal) { return false; }  // FIXME
+  // Returns true if regexp flags are scanned (always since flags can
+  // be empty).
+  bool ScanRegExpFlags() { return false; }  // FIXME
+
  private:
   struct TokenDesc {
     Token::Value token;
     int beg_pos;
     int end_pos;
-    LiteralBuffer* literal_chars;
   };

   void Scan();


--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to