nodes.h

来自「konqueror3 embedded版本, KDE环境下的当家浏览器的嵌入式版」· C头文件 代码 · 共 1,082 行 · 第 1/3 页

H
1,082
字号
  class ArgumentsNode : public Node {  public:    ArgumentsNode() : list(0) {}    ArgumentsNode(ArgumentListNode *l) : list(l->list) { l->list = 0; }    virtual void ref();    virtual bool deref();    virtual Value evaluate(ExecState *exec) const;    List evaluateList(ExecState *exec) const;    virtual void streamTo(SourceStream &s) const;  private:    ArgumentListNode *list;  };  class NewExprNode : public Node {  public:    NewExprNode(Node *e) : expr(e), args(0L) {}    NewExprNode(Node *e, ArgumentsNode *a) : expr(e), args(a) {}    virtual void ref();    virtual bool deref();    virtual Value evaluate(ExecState *exec) const;    virtual void streamTo(SourceStream &s) const;  private:    Node *expr;    ArgumentsNode *args;  };  class FunctionCallNode : public Node {  public:    FunctionCallNode(Node *e, ArgumentsNode *a) : expr(e), args(a) {}    virtual void ref();    virtual bool deref();    virtual Value evaluate(ExecState *exec) const;    virtual void streamTo(SourceStream &s) const;  private:    Node *expr;    ArgumentsNode *args;  };  class PostfixNode : public Node {  public:    PostfixNode(Node *e, Operator o) : expr(e), oper(o) {}    virtual void ref();    virtual bool deref();    virtual Value evaluate(ExecState *exec) const;    virtual void streamTo(SourceStream &s) const;  private:    Node *expr;    Operator oper;  };  class DeleteNode : public Node {  public:    DeleteNode(Node *e) : expr(e) {}    virtual void ref();    virtual bool deref();    virtual Value evaluate(ExecState *exec) const;    virtual void streamTo(SourceStream &s) const;  private:    Node *expr;  };  class VoidNode : public Node {  public:    VoidNode(Node *e) : expr(e) {}    virtual void ref();    virtual bool deref();    virtual Value evaluate(ExecState *exec) const;    virtual void streamTo(SourceStream &s) const;  private:    Node *expr;  };  class TypeOfNode : public Node {  public:    TypeOfNode(Node *e) : expr(e) {}    virtual void ref();    virtual bool deref();    virtual Value evaluate(ExecState *exec) const;    virtual void streamTo(SourceStream &s) const;  private:    Node *expr;  };  class PrefixNode : public Node {  public:    PrefixNode(Operator o, Node *e) : oper(o), expr(e) {}    virtual void ref();    virtual bool deref();    virtual Value evaluate(ExecState *exec) const;    virtual void streamTo(SourceStream &s) const;  private:    Operator oper;    Node *expr;  };  class UnaryPlusNode : public Node {  public:    UnaryPlusNode(Node *e) : expr(e) {}    virtual void ref();    virtual bool deref();    virtual Value evaluate(ExecState *exec) const;    virtual double toNumber(ExecState *exec) const;    virtual void streamTo(SourceStream &s) const;  private:    Node *expr;  };  class NegateNode : public Node {  public:    NegateNode(Node *e) : expr(e) {}    virtual void ref();    virtual bool deref();    virtual Value evaluate(ExecState *exec) const;    virtual double toNumber(ExecState *exec) const;    virtual void streamTo(SourceStream &s) const;  private:    Node *expr;  };  class BitwiseNotNode : public Node {  public:    BitwiseNotNode(Node *e) : expr(e) {}    virtual void ref();    virtual bool deref();    virtual Value evaluate(ExecState *exec) const;    virtual void streamTo(SourceStream &s) const;  private:    Node *expr;  };  class LogicalNotNode : public Node {  public:    LogicalNotNode(Node *e) : expr(e) {}    virtual void ref();    virtual bool deref();    virtual Value evaluate(ExecState *exec) const;    virtual bool toBoolean(ExecState *exec) const;    virtual void streamTo(SourceStream &s) const;  private:    Node *expr;  };  class MultNode : public Node {  public:    MultNode(Node *t1, Node *t2, char op) : term1(t1), term2(t2), oper(op) {}    virtual void ref();    virtual bool deref();    virtual Value evaluate(ExecState *exec) const;    virtual void streamTo(SourceStream &s) const;  private:    Node *term1, *term2;    char oper;  };  class AddNode : public Node {  public:    AddNode(Node *t1, Node *t2, char op) : term1(t1), term2(t2), oper(op) {}    static Node* create(Node *t1, Node *t2, char op);    virtual void ref();    virtual bool deref();    virtual Value evaluate(ExecState *exec) const;    virtual void streamTo(SourceStream &s) const;  private:    Node *term1, *term2;    char oper;  };  class AppendStringNode : public Node {  public:    AppendStringNode(Node *t, const UString &s) : term(t), str(s) { }    virtual void ref();    virtual bool deref();    virtual Value evaluate(ExecState *exec) const;    virtual void streamTo(SourceStream &s) const;  private:    Node *term;    UString str;  };  class ShiftNode : public Node {  public:    ShiftNode(Node *t1, Operator o, Node *t2)      : term1(t1), term2(t2), oper(o) {}    virtual void ref();    virtual bool deref();    virtual Value evaluate(ExecState *exec) const;    virtual void streamTo(SourceStream &s) const;  private:    Node *term1, *term2;    Operator oper;  };  class RelationalNode : public Node {  public:    RelationalNode(Node *e1, Operator o, Node *e2) :      expr1(e1), expr2(e2), oper(o) {}    virtual void ref();    virtual bool deref();    virtual Value evaluate(ExecState *exec) const;    virtual void streamTo(SourceStream &s) const;  private:    Node *expr1, *expr2;    Operator oper;  };  class EqualNode : public Node {  public:    EqualNode(Node *e1, Operator o, Node *e2)      : expr1(e1), expr2(e2), oper(o) {}    virtual void ref();    virtual bool deref();    virtual Value evaluate(ExecState *exec) const;    virtual void streamTo(SourceStream &s) const;  private:    Node *expr1, *expr2;    Operator oper;  };  class BitOperNode : public Node {  public:    BitOperNode(Node *e1, Operator o, Node *e2) :      expr1(e1), expr2(e2), oper(o) {}    virtual void ref();    virtual bool deref();    virtual Value evaluate(ExecState *exec) const;    virtual void streamTo(SourceStream &s) const;  private:    Node *expr1, *expr2;    Operator oper;  };  /**   * expr1 && expr2, expr1 || expr2   */  class BinaryLogicalNode : public Node {  public:    BinaryLogicalNode(Node *e1, Operator o, Node *e2) :      expr1(e1), expr2(e2), oper(o) {}    virtual void ref();    virtual bool deref();    virtual Value evaluate(ExecState *exec) const;    virtual void streamTo(SourceStream &s) const;  private:    Node *expr1, *expr2;    Operator oper;  };  /**   * The ternary operator, "logical ? expr1 : expr2"   */  class ConditionalNode : public Node {  public:    ConditionalNode(Node *l, Node *e1, Node *e2) :      logical(l), expr1(e1), expr2(e2) {}    virtual void ref();    virtual bool deref();    virtual Value evaluate(ExecState *exec) const;    virtual void streamTo(SourceStream &s) const;  private:    Node *logical, *expr1, *expr2;  };  class AssignNode : public Node {  public:    AssignNode(Node *l, Operator o, Node *e) : left(l), oper(o), expr(e) {}    virtual void ref();    virtual bool deref();    virtual Value evaluate(ExecState *exec) const;    virtual void streamTo(SourceStream &s) const;  private:    Node *left;    Operator oper;    Node *expr;  };  class CommaNode : public Node {  public:    CommaNode(Node *e1, Node *e2) : expr1(e1), expr2(e2) {}    virtual void ref();    virtual bool deref();    virtual Value evaluate(ExecState *exec) const;    virtual void streamTo(SourceStream &s) const;  private:    Node *expr1, *expr2;  };  class StatListNode : public StatementNode {  public:    // list is circular during construction. cracked in CaseClauseNode ctor    StatListNode(StatementNode *s);    StatListNode(StatListNode *l, StatementNode *s);    virtual void ref();    virtual bool deref();    virtual Completion execute(ExecState *exec);    virtual void processVarDecls(ExecState *exec);    virtual void streamTo(SourceStream &s) const;  private:    friend class CaseClauseNode;    StatementNode *statement;    StatListNode *list;  };  class AssignExprNode : public Node {  public:    AssignExprNode(Node *e) : expr(e) {}    virtual void ref();    virtual bool deref();    virtual Value evaluate(ExecState *exec) const;    virtual void streamTo(SourceStream &s) const;  private:    Node *expr;  };  class VarDeclNode : public Node {  public:    enum Type { Variable, Constant };    VarDeclNode(const Identifier &id, AssignExprNode *in, Type t);    virtual void ref();    virtual bool deref();    virtual Value evaluate(ExecState *exec) const;    virtual void processVarDecls(ExecState *exec);    virtual void streamTo(SourceStream &s) const;  private:    Type varType;    Identifier ident;    AssignExprNode *init;  };  class VarDeclListNode : public Node {  public:    // list pointer is tail of a circular list, cracked in the ForNode/VarStatementNode ctor    VarDeclListNode(VarDeclNode *v) : list(this), var(v) {}    VarDeclListNode(VarDeclListNode *l, VarDeclNode *v)      : list(l->list), var(v) { l->list = this; }    virtual void ref();    virtual bool deref();    virtual Value evaluate(ExecState *exec) const;    virtual void processVarDecls(ExecState *exec);    virtual void streamTo(SourceStream &s) const;  private:    friend class ForNode;    friend class VarStatementNode;    VarDeclListNode *list;    VarDeclNode *var;  };  class VarStatementNode : public StatementNode {  public:    VarStatementNode(VarDeclListNode *l) : list(l->list) { l->list = 0; }    virtual void ref();    virtual bool deref();    virtual Completion execute(ExecState *exec);    virtual void processVarDecls(ExecState *exec);    virtual void streamTo(SourceStream &s) const;  private:    VarDeclListNode *list;  };

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?