All Projects → estools → Esutils

estools / Esutils

Licence: bsd-2-clause
utility box for ECMAScript language tools

Programming Languages

javascript
184084 projects - #8 most used programming language
coffeescript
4710 projects
ecmascript
72 projects

Labels

Projects that are alternatives of or similar to Esutils

Lang C
Lightweight C parser for Rust
Stars: ✭ 77 (-23.76%)
Mutual labels:  ast
Babel Plugin React Persist
Automatically useCallback() & useMemo(); memoize inline functions
Stars: ✭ 91 (-9.9%)
Mutual labels:  ast
Estemplate
Proper (AST-based) JavaScript code templating with source maps support.
Stars: ✭ 95 (-5.94%)
Mutual labels:  ast
I Pascal
A free Object Pascal language plugin for IntelliJ IDEA
Stars: ✭ 85 (-15.84%)
Mutual labels:  ast
Astq
Abstract Syntax Tree (AST) Query Engine
Stars: ✭ 89 (-11.88%)
Mutual labels:  ast
Gorm2sql
auto generate sql from gorm model struct
Stars: ✭ 92 (-8.91%)
Mutual labels:  ast
Deps Report
Generate reports about dependencies and dependents of your JavaScript/TypeScript files through an AST. It supports import and require statements.
Stars: ✭ 76 (-24.75%)
Mutual labels:  ast
Elm Markdown
Pure Elm markdown parsing and rendering
Stars: ✭ 96 (-4.95%)
Mutual labels:  ast
Ts Type Info
TypeScript AST and code generator [Deprecated]
Stars: ✭ 90 (-10.89%)
Mutual labels:  ast
Astpretty
Pretty print the output of python stdlib `ast.parse`.
Stars: ✭ 93 (-7.92%)
Mutual labels:  ast
Uaiso
A multi-language parsing infrastructure with an unified AST
Stars: ✭ 86 (-14.85%)
Mutual labels:  ast
Jsx Ast Utils
AST utility module for statically analyzing JSX
Stars: ✭ 89 (-11.88%)
Mutual labels:  ast
Pyast64
Compile a subset of the Python AST to x64-64 assembler
Stars: ✭ 93 (-7.92%)
Mutual labels:  ast
Hippo
PHP standards checker.
Stars: ✭ 82 (-18.81%)
Mutual labels:  ast
Unimport
A linter, formatter for finding and removing unused import statements.
Stars: ✭ 96 (-4.95%)
Mutual labels:  ast
Show ast
An IPython notebook plugin for visualizing ASTs.
Stars: ✭ 76 (-24.75%)
Mutual labels:  ast
Libdparse
Library for lexing and parsing D source code
Stars: ✭ 91 (-9.9%)
Mutual labels:  ast
Birdseye
Graphical Python debugger which lets you easily view the values of all evaluated expressions
Stars: ✭ 1,373 (+1259.41%)
Mutual labels:  ast
Graphql Go Tools
Tools to write high performance GraphQL applications using Go/Golang.
Stars: ✭ 96 (-4.95%)
Mutual labels:  ast
Redux Boilerplate Helpers
AST-based tool for automating Redux boilerplate
Stars: ✭ 94 (-6.93%)
Mutual labels:  ast

esutils Build Status

esutils (esutils) is utility box for ECMAScript language tools.

API

ast

ast.isExpression(node)

Returns true if node is an Expression as defined in ECMA262 edition 5.1 section 11.

ast.isStatement(node)

Returns true if node is a Statement as defined in ECMA262 edition 5.1 section 12.

ast.isIterationStatement(node)

Returns true if node is an IterationStatement as defined in ECMA262 edition 5.1 section 12.6.

ast.isSourceElement(node)

Returns true if node is a SourceElement as defined in ECMA262 edition 5.1 section 14.

ast.trailingStatement(node)

Returns Statement? if node has trailing Statement.

if (cond)
    consequent;

When taking this IfStatement, returns consequent; statement.

ast.isProblematicIfStatement(node)

Returns true if node is a problematic IfStatement. If node is a problematic IfStatement, node cannot be represented as an one-to-one JavaScript code.

{
    type: 'IfStatement',
    consequent: {
        type: 'WithStatement',
        body: {
            type: 'IfStatement',
            consequent: {type: 'EmptyStatement'}
        }
    },
    alternate: {type: 'EmptyStatement'}
}

The above node cannot be represented as a JavaScript code, since the top level else alternate belongs to an inner IfStatement.

code

code.isDecimalDigit(code)

Return true if provided code is decimal digit.

code.isHexDigit(code)

Return true if provided code is hexadecimal digit.

code.isOctalDigit(code)

Return true if provided code is octal digit.

code.isWhiteSpace(code)

Return true if provided code is white space. White space characters are formally defined in ECMA262.

code.isLineTerminator(code)

Return true if provided code is line terminator. Line terminator characters are formally defined in ECMA262.

code.isIdentifierStart(code)

Return true if provided code can be the first character of ECMA262 Identifier. They are formally defined in ECMA262.

code.isIdentifierPart(code)

Return true if provided code can be the trailing character of ECMA262 Identifier. They are formally defined in ECMA262.

keyword

keyword.isKeywordES5(id, strict)

Returns true if provided identifier string is a Keyword or Future Reserved Word in ECMA262 edition 5.1. They are formally defined in ECMA262 sections 7.6.1.1 and 7.6.1.2, respectively. If the strict flag is truthy, this function additionally checks whether id is a Keyword or FutureReservedWord under strict mode.

keyword.isKeywordES6(id, strict)

Returns true if provided identifier string is a Keyword or FutureReservedWord in ECMA262 edition 6. They are formally defined in ECMA262 sections 11.6.2.1 and 11.6.2.2, respectively. If the strict flag is truthy, this function additionally checks whether id is a Keyword or FutureReservedWord under strict mode.

keyword.isReservedWordES5(id, strict)

Returns true if provided identifier string is a ReservedWord in ECMA262 edition 5.1. They are formally defined in ECMA262 section 7.6.1. If the strict flag is truthy, this function additionally checks whether id is a ReservedWord under strict mode.

keyword.isReservedWordES6(id, strict)

Returns true if provided identifier string is a ReservedWord in ECMA262 edition 6. They are formally defined in ECMA262 section 11.6.2. If the strict flag is truthy, this function additionally checks whether id is a ReservedWord under strict mode.

keyword.isRestrictedWord(id)

Returns true if provided identifier string is one of eval or arguments. They are restricted in strict mode code throughout ECMA262 edition 5.1 and in ECMA262 edition 6 section 12.1.1.

keyword.isIdentifierNameES5(id)

Return true if provided identifier string is an IdentifierName as specified in ECMA262 edition 5.1 section 7.6.

keyword.isIdentifierNameES6(id)

Return true if provided identifier string is an IdentifierName as specified in ECMA262 edition 6 section 11.6.

keyword.isIdentifierES5(id, strict)

Return true if provided identifier string is an Identifier as specified in ECMA262 edition 5.1 section 7.6. If the strict flag is truthy, this function additionally checks whether id is an Identifier under strict mode.

keyword.isIdentifierES6(id, strict)

Return true if provided identifier string is an Identifier as specified in ECMA262 edition 6 section 12.1. If the strict flag is truthy, this function additionally checks whether id is an Identifier under strict mode.

License

Copyright (C) 2013 Yusuke Suzuki (twitter: @Constellation) and other contributors.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].