1 // Copyright 2011 the V8 project authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef V8_PARSING_SCANNER_CHARACTER_STREAMS_H_ 6 #define V8_PARSING_SCANNER_CHARACTER_STREAMS_H_ 7 8 #include "include/v8.h" // for v8::ScriptCompiler 9 10 namespace v8 { 11 namespace internal { 12 13 template <typename T> 14 class Handle; 15 class Utf16CharacterStream; 16 class RuntimeCallStats; 17 class String; 18 19 class ScannerStream { 20 public: 21 static Utf16CharacterStream* For(Handle<String> data); 22 static Utf16CharacterStream* For(Handle<String> data, int start_pos, 23 int end_pos); 24 static Utf16CharacterStream* For( 25 ScriptCompiler::ExternalSourceStream* source_stream, 26 ScriptCompiler::StreamedSource::Encoding encoding, 27 RuntimeCallStats* stats); 28 29 // For testing: 30 static std::unique_ptr<Utf16CharacterStream> ForTesting(const char* data); 31 static std::unique_ptr<Utf16CharacterStream> ForTesting(const char* data, 32 size_t length); 33 }; 34 35 } // namespace internal 36 } // namespace v8 37 38 #endif // V8_PARSING_SCANNER_CHARACTER_STREAMS_H_ 39