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 + -
显示快捷键?