Sourceforge.net - The VCF's Project Host
   The VCF Website Home   |   Online Discussion Forums   |   Sourceforge.net Project Page   

vcf/JavaScriptKit/js-impl/jsparse.h File Reference


Classes

struct  JSParseNode

Defines

#define pn_funAtom   pn_u.func.funAtom
#define pn_body   pn_u.func.body
#define pn_flags   pn_u.func.flags
#define pn_tryCount   pn_u.func.tryCount
#define pn_head   pn_u.list.head
#define pn_tail   pn_u.list.tail
#define pn_count   pn_u.list.count
#define pn_extra   pn_u.list.extra
#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_kid   pn_u.unary.kid
#define pn_num   pn_u.unary.num
#define pn_atom   pn_u.name.atom
#define pn_expr   pn_u.name.expr
#define pn_slot   pn_u.name.slot
#define pn_attrs   pn_u.name.attrs
#define pn_dval   pn_u.dval
#define pn_atom2   pn_u.apair.atom2
#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 PN_MOVE_NODE(pn, pn2)
#define PN_CLEAR_NODE(pn)
#define PN_IS_CONSTANT(pn)
#define PN_LAST(list)   ((JSParseNode *)((char *)(list)->pn_tail - offsetof(JSParseNode, pn_next)))
#define PN_INIT_LIST(list)
#define PN_INIT_LIST_1(list, pn)
#define PN_APPEND(list, pn)

Enumerations

enum  JSParseNodeArity {
  PN_FUNC = -3, PN_LIST = -2, PN_TERNARY = 3, PN_BINARY = 2,
  PN_UNARY = 1, PN_NAME = -1, PN_NULLARY = 0
}

Functions

 JS_FRIEND_API (JSParseNode *) js_ParseTokenStream(JSContext *cx
 JS_FRIEND_API (JSBool) js_CompileTokenStream(JSContext *cx
JSBool js_CompileFunctionBody (JSContext *cx, JSTokenStream *ts, JSFunction *fun)
JSBool js_FoldConstants (JSContext *cx, JSParseNode *pn, JSTreeContext *tc)

Variables

JSObjectchain
JSObject JSTokenStreamts
JSObjectchain
JSObject JSTokenStreamts
JSObject JSTokenStream JSCodeGeneratorcg

Define Documentation

#define PN_APPEND list,
pn   ) 
 

Value:

JS_BEGIN_MACRO                                                            \
        *(list)->pn_tail = (pn);                                              \
        (list)->pn_tail = &(pn)->pn_next;                                     \
        (list)->pn_count++;                                                   \
    JS_END_MACRO

#define pn_atom   pn_u.name.atom
 

#define pn_atom2   pn_u.apair.atom2
 

#define pn_attrs   pn_u.name.attrs
 

#define pn_body   pn_u.func.body
 

#define PN_CLEAR_NODE pn   ) 
 

Value:

JS_BEGIN_MACRO                                                            \
        (pn)->pn_type = TOK_EOF;                                              \
        (pn)->pn_op = JSOP_NOP;                                               \
        (pn)->pn_arity = PN_NULLARY;                                          \
    JS_END_MACRO

#define pn_count   pn_u.list.count
 

#define pn_dval   pn_u.dval
 

#define pn_expr   pn_u.name.expr
 

#define pn_extra   pn_u.list.extra
 

#define pn_flags   pn_u.func.flags
 

#define pn_funAtom   pn_u.func.funAtom
 

#define pn_head   pn_u.list.head
 

#define PN_INIT_LIST list   ) 
 

Value:

JS_BEGIN_MACRO                                                            \
        (list)->pn_head = NULL;                                               \
        (list)->pn_tail = &(list)->pn_head;                                   \
        (list)->pn_count = (list)->pn_extra = 0;                              \
    JS_END_MACRO

#define PN_INIT_LIST_1 list,
pn   ) 
 

Value:

JS_BEGIN_MACRO                                                            \
        (list)->pn_head = (pn);                                               \
        (list)->pn_tail = &(pn)->pn_next;                                     \
        (list)->pn_count = 1;                                                 \
        (list)->pn_extra = 0;                                                 \
    JS_END_MACRO

#define PN_IS_CONSTANT pn   ) 
 

Value:

((pn)->pn_type == TOK_NUMBER ||                                           \
     (pn)->pn_type == TOK_STRING ||                                           \
     ((pn)->pn_type == TOK_PRIMARY && (pn)->pn_op != JSOP_THIS))

#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_LAST list   )     ((JSParseNode *)((char *)(list)->pn_tail - offsetof(JSParseNode, pn_next)))
 

#define pn_left   pn_u.binary.left
 

#define PN_MOVE_NODE pn,
pn2   ) 
 

Value:

JS_BEGIN_MACRO                                                            \
        (pn)->pn_type = (pn2)->pn_type;                                       \
        (pn)->pn_op = (pn2)->pn_op;                                           \
        (pn)->pn_arity = (pn2)->pn_arity;                                     \
        (pn)->pn_u = (pn2)->pn_u;                                             \
        PN_CLEAR_NODE(pn2);                                                   \
    JS_END_MACRO

#define pn_num   pn_u.unary.num
 

#define pn_right   pn_u.binary.right
 

#define pn_slot   pn_u.name.slot
 

#define pn_tail   pn_u.list.tail
 

#define pn_tryCount   pn_u.func.tryCount
 

#define pn_val   pn_u.binary.val
 

#define PNX_CANTFOLD   0x02
 

#define PNX_ENDCOMMA   0x10
 

#define PNX_FORINVAR   0x08
 

#define PNX_GROUPINIT   0x40
 

#define PNX_NEEDBRACES   0x80
 

#define PNX_POPVAR   0x04
 

#define PNX_STRCAT   0x01
 

#define PNX_XMLROOT   0x20
 


Enumeration Type Documentation

enum JSParseNodeArity
 

Enumerator:
PN_FUNC 
PN_LIST 
PN_TERNARY 
PN_BINARY 
PN_UNARY 
PN_NAME 
PN_NULLARY 


Function Documentation

JSBool js_CompileFunctionBody JSContext cx,
JSTokenStream ts,
JSFunction fun
 

JSBool js_FoldConstants JSContext cx,
JSParseNode pn,
JSTreeContext tc
 

JS_FRIEND_API JSBool   ) 
 

JS_FRIEND_API JSParseNode  ) 
 


Variable Documentation

JSObject JSTokenStream JSCodeGenerator* cg
 

JSObject* chain
 

JSObject* chain
 

JSObject JSTokenStream* ts
 

JSObject JSTokenStream* ts
 

   Comments or Suggestions?    License Information