Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Static Protected Member Functions

JSParseNode Struct Reference

#include <jsparse.h>

Inheritance diagram for JSParseNode:
Collaboration diagram for JSParseNode:

List of all members.

Public Member Functions

JSParseNodeexpr () const
JSDefinitionlexdef () const
JSParseNodemaybeExpr ()
JSDefinitionmaybeLexDef ()
uintN frameLevel () const
uintN frameSlot () const
bool test (uintN flag) const
bool isLet () const
bool isConst () const
bool isInitialized () const
bool isBlockChild () const
bool isPlaceholder () const
bool isDeoptimized () const
bool isAssigned () const
bool isFunArg () const
bool isClosed () const
bool isTopLevel () const
void setFunArg ()
void become (JSParseNode *pn2)
void clear ()
bool isLiteral () const
bool isStringExprStatement () const
bool isEscapeFreeStringLiteral () const
bool isDirectivePrologueMember () const
bool isGeneratorExpr () const
JSParseNodegeneratorExpr () const
JSParseNodelast () const
void makeEmpty ()
void initList (JSParseNode *pn)
void append (JSParseNode *pn)
bool getConstantValue (JSContext *cx, bool strictChecks, js::Value *vp)
bool isConstant ()

Static Public Member Functions

static JSParseNodenewBinaryOrAppend (js::TokenKind tt, JSOp op, JSParseNode *left, JSParseNode *right, JSTreeContext *tc)

Public Attributes

uint32 pn_type:16
uint32 pn_op:8
uint32 pn_arity:5
uint32 pn_parens:1
uint32 pn_used:1
uint32 pn_defn:1
js::TokenPos pn_pos
int32 pn_offset
JSParseNodepn_next
JSParseNodepn_link
union {
   struct {
      JSParseNode *   head
      JSParseNode **   tail
      uint32   count
      uint32   xflags:12
      uint32   blockid:20
   }   list
   struct {
      JSParseNode *   kid1
      JSParseNode *   kid2
      JSParseNode *   kid3
   }   ternary
   struct {
      JSParseNode *   left
      JSParseNode *   right
      js::Value *   pval
      uintN   iflags
   }   binary
   struct {
      JSParseNode *   kid
      jsint   num
      JSBool   hidden
   }   unary
   struct {
      union {
         JSAtom *   atom
         JSFunctionBox *   funbox
         JSObjectBox *   objbox
      } 
      union {
         JSParseNode *   expr
         JSDefinition *   lexdef
      } 
      js::UpvarCookie   cookie
      uint32   dflags:12
      uint32   blockid:20
   }   name
   struct {
      JSAtomSet   names
      JSParseNode *   tree
   }   nameset
   struct {
      JSAtom *   atom
      JSAtom *   atom2
   }   apair
   jsdouble   dval
pn_u

Protected Member Functions

void init (js::TokenKind type, JSOp op, JSParseNodeArity arity)

Static Protected Member Functions

static JSParseNodecreate (JSParseNodeArity arity, JSTreeContext *tc)

Member Function Documentation

void JSParseNode::append ( JSParseNode pn  )  [inline]
void JSParseNode::become ( JSParseNode pn2  ) 
void JSParseNode::clear (  ) 
static JSParseNode* JSParseNode::create ( JSParseNodeArity  arity,
JSTreeContext tc 
) [static, protected]
JSParseNode* JSParseNode::expr (  )  const [inline]
uintN JSParseNode::frameLevel (  )  const [inline]
uintN JSParseNode::frameSlot (  )  const [inline]
JSParseNode* JSParseNode::generatorExpr (  )  const [inline]
bool JSParseNode::getConstantValue ( JSContext cx,
bool  strictChecks,
js::Value vp 
)
void JSParseNode::init ( js::TokenKind  type,
JSOp  op,
JSParseNodeArity  arity 
) [inline, protected]
void JSParseNode::initList ( JSParseNode pn  )  [inline]
bool JSParseNode::isAssigned (  )  const [inline]
bool JSParseNode::isBlockChild (  )  const [inline]
bool JSParseNode::isClosed (  )  const [inline]
bool JSParseNode::isConst (  )  const [inline]
bool JSParseNode::isConstant (  )  [inline]
bool JSParseNode::isDeoptimized (  )  const [inline]
bool JSParseNode::isDirectivePrologueMember (  )  const [inline]
bool JSParseNode::isEscapeFreeStringLiteral (  )  const [inline]
bool JSParseNode::isFunArg (  )  const [inline]
bool JSParseNode::isGeneratorExpr (  )  const [inline]
bool JSParseNode::isInitialized (  )  const [inline]
bool JSParseNode::isLet (  )  const [inline]
bool JSParseNode::isLiteral (  )  const [inline]
bool JSParseNode::isPlaceholder (  )  const [inline]
bool JSParseNode::isStringExprStatement (  )  const [inline]
bool JSParseNode::isTopLevel (  )  const [inline]
JSParseNode* JSParseNode::last (  )  const [inline]
JSDefinition* JSParseNode::lexdef (  )  const [inline]
void JSParseNode::makeEmpty (  )  [inline]
JSParseNode* JSParseNode::maybeExpr (  )  [inline]
JSDefinition* JSParseNode::maybeLexDef (  )  [inline]
static JSParseNode* JSParseNode::newBinaryOrAppend ( js::TokenKind  tt,
JSOp  op,
JSParseNode left,
JSParseNode right,
JSTreeContext tc 
) [static]
void JSParseNode::setFunArg (  )  [inline]
bool JSParseNode::test ( uintN  flag  )  const [inline]

Member Data Documentation

struct { ... } JSParseNode::apair
struct { ... } JSParseNode::binary
struct { ... } JSParseNode::list
struct { ... } JSParseNode::name
struct { ... } JSParseNode::nameset
union { ... } JSParseNode::pn_u
struct { ... } JSParseNode::ternary
struct { ... } JSParseNode::unary

The documentation for this struct was generated from the following file: