Classes | Defines | Typedefs | Enumerations | Functions

jsparse.h File Reference

#include "jsversion.h"
#include "jsprvtd.h"
#include "jspubtd.h"
#include "jsatom.h"
#include "jsscan.h"
Include dependency graph for jsparse.h:
This graph shows which files directly or indirectly include this file:

Classes

struct  JSParseNode
struct  JSDefinition
struct  JSObjectBox
struct  JSFunctionBox
struct  JSFunctionBoxQueue
struct  JSCompiler

Defines

#define PN_OP(pn)   ((JSOp)(pn)->pn_op)
#define PN_TYPE(pn)   ((JSTokenType)(pn)->pn_type)
#define pn_funbox   pn_u.name.funbox
#define pn_body   pn_u.name.expr
#define pn_cookie   pn_u.name.cookie
#define pn_dflags   pn_u.name.dflags
#define pn_blockid   pn_u.name.blockid
#define pn_index   pn_u.name.blockid
#define pn_head   pn_u.list.head
#define pn_tail   pn_u.list.tail
#define pn_count   pn_u.list.count
#define pn_xflags   pn_u.list.xflags
#define pn_kid1   pn_u.ternary.kid1
#define pn_kid2   pn_u.ternary.kid2
#define pn_kid3   pn_u.ternary.kid3
#define pn_left   pn_u.binary.left
#define pn_right   pn_u.binary.right
#define pn_val   pn_u.binary.val
#define pn_iflags   pn_u.binary.iflags
#define pn_kid   pn_u.unary.kid
#define pn_num   pn_u.unary.num
#define pn_hidden   pn_u.unary.hidden
#define pn_atom   pn_u.name.atom
#define pn_objbox   pn_u.name.objbox
#define pn_expr   pn_u.name.expr
#define pn_lexdef   pn_u.name.lexdef
#define pn_names   pn_u.nameset.names
#define pn_tree   pn_u.nameset.tree
#define pn_dval   pn_u.dval
#define pn_atom2   pn_u.apair.atom2
#define PND_LET   0x01
#define PND_CONST   0x02
#define PND_INITIALIZED   0x04
#define PND_ASSIGNED   0x08
#define PND_TOPLEVEL   0x10
#define PND_BLOCKCHILD   0x20
#define PND_GVAR   0x40
#define PND_PLACEHOLDER   0x80
#define PND_FUNARG   0x100
#define PND_BOUND   0x200
#define PND_USE2DEF_FLAGS   (PND_ASSIGNED | PND_FUNARG)
#define PNX_STRCAT   0x01
#define PNX_CANTFOLD   0x02
#define PNX_POPVAR   0x04
#define PNX_FORINVAR   0x08
#define PNX_ENDCOMMA   0x10
#define PNX_XMLROOT   0x20
#define PNX_GROUPINIT   0x40
#define PNX_NEEDBRACES   0x80
#define PNX_FUNCDEFS   0x100
#define PNX_DESTRUCT   0x200
#define PNX_HOLEY   0x400
#define dn_uses   pn_link
#define JSFB_LEVEL_BITS   14
#define NUM_TEMP_FREELISTS   6U
#define TS(jsc)   (&(jsc)->tokenStream)

Typedefs

typedef enum JSParseNodeArity JSParseNodeArity

Enumerations

enum  JSParseNodeArity {
  PN_NULLARY, PN_UNARY, PN_BINARY, PN_TERNARY,
  PN_FUNC, PN_LIST, PN_NAME, PN_NAMESET
}

Functions

JSBool js_FoldConstants (JSContext *cx, JSParseNode *pn, JSTreeContext *tc, bool inCond=false)

Define Documentation

#define dn_uses   pn_link
#define JSFB_LEVEL_BITS   14
#define NUM_TEMP_FREELISTS   6U
#define pn_atom   pn_u.name.atom
#define pn_atom2   pn_u.apair.atom2
#define pn_blockid   pn_u.name.blockid
#define pn_body   pn_u.name.expr
#define pn_cookie   pn_u.name.cookie
#define pn_count   pn_u.list.count
#define pn_dflags   pn_u.name.dflags
#define pn_dval   pn_u.dval
#define pn_expr   pn_u.name.expr
#define pn_funbox   pn_u.name.funbox
#define pn_head   pn_u.list.head
#define pn_hidden   pn_u.unary.hidden
#define pn_iflags   pn_u.binary.iflags
#define pn_index   pn_u.name.blockid
#define pn_kid   pn_u.unary.kid
#define pn_kid1   pn_u.ternary.kid1
#define pn_kid2   pn_u.ternary.kid2
#define pn_kid3   pn_u.ternary.kid3
#define pn_left   pn_u.binary.left
#define pn_lexdef   pn_u.name.lexdef
#define pn_names   pn_u.nameset.names
#define pn_num   pn_u.unary.num
#define pn_objbox   pn_u.name.objbox
#define PN_OP (   pn  )     ((JSOp)(pn)->pn_op)
#define pn_right   pn_u.binary.right
#define pn_tail   pn_u.list.tail
#define pn_tree   pn_u.nameset.tree
#define PN_TYPE (   pn  )     ((JSTokenType)(pn)->pn_type)
#define pn_val   pn_u.binary.val
#define pn_xflags   pn_u.list.xflags
#define PND_ASSIGNED   0x08
#define PND_BLOCKCHILD   0x20
#define PND_BOUND   0x200
#define PND_CONST   0x02
#define PND_FUNARG   0x100
#define PND_GVAR   0x40
#define PND_INITIALIZED   0x04
#define PND_LET   0x01
#define PND_PLACEHOLDER   0x80
#define PND_TOPLEVEL   0x10
#define PND_USE2DEF_FLAGS   (PND_ASSIGNED | PND_FUNARG)
#define PNX_CANTFOLD   0x02
#define PNX_DESTRUCT   0x200
#define PNX_ENDCOMMA   0x10
#define PNX_FORINVAR   0x08
#define PNX_FUNCDEFS   0x100
#define PNX_GROUPINIT   0x40
#define PNX_HOLEY   0x400
#define PNX_NEEDBRACES   0x80
#define PNX_POPVAR   0x04
#define PNX_STRCAT   0x01
#define PNX_XMLROOT   0x20
#define TS (   jsc  )     (&(jsc)->tokenStream)

Typedef Documentation


Enumeration Type Documentation

Enumerator:
PN_NULLARY 
PN_UNARY 
PN_BINARY 
PN_TERNARY 
PN_FUNC 
PN_LIST 
PN_NAME 
PN_NAMESET 

Function Documentation

JSBool js_FoldConstants ( JSContext cx,
JSParseNode pn,
JSTreeContext tc,
bool  inCond = false 
)