forked from facebook/hermes
-
Notifications
You must be signed in to change notification settings - Fork 0
/
JSParser.cpp
66 lines (50 loc) · 1.52 KB
/
JSParser.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
/*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
#include "hermes/Parser/JSParser.h"
#include "JSParserImpl.h"
using llvm::cast;
using llvm::dyn_cast;
using llvm::isa;
namespace hermes {
namespace parser {
JSParser::JSParser(Context &context, std::unique_ptr<llvm::MemoryBuffer> input)
: impl_(new detail::JSParserImpl(context, std::move(input))) {}
JSParser::JSParser(Context &context, uint32_t bufferId, ParserPass pass)
: impl_(new detail::JSParserImpl(context, bufferId, pass)) {}
JSParser::~JSParser() = default;
Context &JSParser::getContext() {
return impl_->getContext();
}
bool JSParser::isStrictMode() const {
return impl_->isStrictMode();
}
void JSParser::setStrictMode(bool mode) {
return impl_->setStrictMode(mode);
}
bool JSParser::getUseStaticBuiltin() const {
return impl_->getUseStaticBuiltin();
}
llvm::Optional<ESTree::ProgramNode *> JSParser::parse() {
return impl_->parse();
}
void JSParser::seek(SMLoc startPos) {
return impl_->seek(startPos);
}
bool JSParser::preParseBuffer(
Context &context,
uint32_t bufferId,
bool &useStaticBuiltinDetected) {
return detail::JSParserImpl::preParseBuffer(
context, bufferId, useStaticBuiltinDetected);
}
llvm::Optional<ESTree::NodePtr> JSParser::parseLazyFunction(
ESTree::NodeKind kind,
SMLoc start) {
return impl_->parseLazyFunction(kind, start);
}
}; // namespace parser
}; // namespace hermes