const ( WhitespaceChars = " \f\n\r\t\v\u00a0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u2028\u2029\u202f\u205f\u3000\ufeff" Re2Dot = "[^\r\n\u2028\u2029]" )
func IsIdentifier(s string) bool
func ParseFile(fileSet *file.FileSet, filename string, src interface{}, mode Mode, options ...Option) (*ast.Program, error)
ParseFile parses the source code of a single JavaScript/ECMAScript source file and returns the corresponding ast.Program node.
If fileSet == nil, ParseFile parses source without a FileSet. If fileSet != nil, ParseFile first adds filename and src to fileSet.
The filename argument is optional and is used for labelling errors, etc.
src may be a string, a byte slice, a bytes.Buffer, or an io.Reader, but it MUST always be in UTF-8.
// Parse some JavaScript, yielding a *ast.Program and/or an ErrorList program, err := parser.ParseFile(nil, "", `if (abc > 1) {}`, 0)
func ParseFunction(parameterList, body string, options ...Option) (*ast.FunctionLiteral, error)
ParseFunction parses a given parameter list and body as a function and returns the corresponding ast.FunctionLiteral node.
The parameter list, if any, should be a comma-separated list of identifiers.
func ReadSource(filename string, src interface{}) ([]byte, error)
func TransformRegExp(pattern string) (transformed string, err error)
TransformRegExp transforms a JavaScript pattern into a Go "regexp" pattern.
re2 (Go) cannot do backtracking, so the presence of a lookahead (?=) (?!) or backreference (\1, \2, ...) will cause an error.
re2 (Go) has a different definition for \s: [\t\n\f\r ]. The JavaScript definition, on the other hand, also includes \v, Unicode "Separator, Space", etc.
If the pattern is valid, but incompatible (contains a lookahead or backreference), then this function returns an empty string an error of type RegexpErrorIncompatible.
If the pattern is invalid (not valid even in JavaScript), then this function returns an empty string and a generic error.
func WithDisableSourceMaps(opts *options)
WithDisableSourceMaps is an option to disable source maps support. May save a bit of time when source maps are not in use.
An Error represents a parsing error. It includes the position where the error occurred and a message/description.
type Error struct { Position file.Position Message string }
func (self Error) Error() string
ErrorList is a list of *Errors.
type ErrorList []*Error
func (self *ErrorList) Add(position file.Position, msg string)
Add adds an Error with given position and message to an ErrorList.
func (self ErrorList) Err() error
Err returns an error equivalent to this ErrorList. If the list is empty, Err returns nil.
func (self ErrorList) Error() string
Error implements the Error interface.
func (self ErrorList) Len() int
func (self ErrorList) Less(i, j int) bool
func (self *ErrorList) Reset()
Reset resets an ErrorList to no errors.
func (self ErrorList) Sort()
func (self ErrorList) Swap(i, j int)
A Mode value is a set of flags (or 0). They control optional parser functionality.
type Mode uint
const ( IgnoreRegExpErrors Mode = 1 << iota // Ignore RegExp compatibility errors (allow backtracking) )
Option represents one of the options for the parser to use in the Parse methods. Currently supported are: WithDisableSourceMaps and WithSourceMapLoader.
type Option func(*options)
func WithSourceMapLoader(loader func(path string) ([]byte, error)) Option
WithSourceMapLoader is an option to set a custom source map loader. The loader will be given a path or a URL from the sourceMappingURL. If sourceMappingURL is not absolute it is resolved relatively to the name of the file being parsed. Any error returned by the loader will fail the parsing. Note that setting this to nil does not disable source map support, there is a default loader which reads from the filesystem. Use WithDisableSourceMaps to disable source map support.
type RegexpErrorIncompatible struct {
// contains filtered or unexported fields
}
func (s RegexpErrorIncompatible) Error() string
type RegexpSyntaxError struct {
// contains filtered or unexported fields
}
func (s RegexpSyntaxError) Error() string