28#ifdef LIBYSCRIPT_EXPORTS
29#define YSCRIPT_API __declspec(dllexport)
31#ifndef LIBYSCRIPT_STATIC
32#define YSCRIPT_API __declspec(dllimport)
133 const char* fileName = 0,
const char* seps = 0)
152 inline operator const char*&()
238 friend class ParsePoint;
369 {
return evaluate(&results,context); }
468 {
return m_extender; }
547 {
return (makeLower && (
'A' <= chr) && (chr <=
'Z')) ? (chr + (
'a' -
'A')) : chr; }
593 bool gotError(
const char* error = 0,
const char* text = 0,
unsigned int line = 0)
const;
602 bool gotError(
const char* error = 0,
const char* text = 0,
unsigned int line = 0);
610 inline bool gotError(
const char* error,
unsigned int line)
const
611 {
return gotError(error, 0, line); }
619 inline bool gotError(
const char* error,
unsigned int line)
620 {
return gotError(error, 0, line); }
730 virtual bool getOperand(ParsePoint& expr,
bool endOk =
true,
int precedence = 0);
738 virtual bool getSimple(ParsePoint& expr,
bool constOnly =
false);
841 bool barrier =
false,
unsigned int line = 0);
949 bool getOperandInternal(ParsePoint& expr,
bool endOk,
int precedence);
959 friend class ExpEvaluator;
967 {
return LLONG_MIN; }
987 m_opcode(copyType ? original.
opcode() : ExpEvaluator::OpcPush),
1000 m_opcode(ExpEvaluator::OpcPush),
1003 m_isNumber(autoNum && (value == YSTRING(
"NaN") || m_number !=
nonInteger())),
1004 m_lineNo(0), m_barrier(false)
1005 {
if (m_bool) { m_number = value.
toBoolean() ? 1 : 0; m_isNumber =
true;} }
1014 m_opcode(ExpEvaluator::OpcPush), m_number(
nonInteger()), m_bool(false),
1015 m_isNumber(false), m_lineNo(0), m_barrier(false)
1025 m_opcode(ExpEvaluator::OpcPush),
1026 m_number(value), m_bool(false), m_isNumber(true), m_lineNo(0), m_barrier(false)
1027 {
if (value !=
nonInteger()) String::operator=(value); }
1036 m_opcode(ExpEvaluator::OpcPush),
1037 m_number(value ? 1 : 0), m_bool(true), m_isNumber(true),
1038 m_lineNo(0), m_barrier(false)
1050 m_opcode(oper), m_number(value), m_bool(false), m_isNumber(false),
1051 m_lineNo(0), m_barrier(
barrier)
1063 m_opcode(oper), m_number(
nonInteger()), m_bool(false), m_isNumber(false),
1064 m_lineNo(0), m_barrier(
barrier)
1077 m_opcode(oper), m_number(
number), m_bool(false), m_isNumber(true),
1078 m_lineNo(0), m_barrier(
barrier)
1086 {
return m_opcode; }
1100 {
return m_number; }
1114 {
return m_isNumber; }
1121 {
return m_barrier; }
1128 {
return m_lineNo; }
1135 { m_lineNo = line; }
1198 unsigned int m_lineNo;
1218 {
if (
name) (*
this) <<
"[function " <<
name <<
"()]"; }
1270 { TelEngine::destruct(m_object); }
1311 {
return m_object; }
1380 unsigned int m_limitVal;
1419 {
return m_objTrack; }
1446 {
return m_params; }
1453 {
return m_params; }
1467 {
return m_params; }
1653 virtual void getFileLine(
unsigned int line,
String& fileName,
unsigned int& fileLine,
bool wholePath =
true)
1679 {
return m_runner; }
1712 {
return m_runner; }
1730 friend class ScriptCode;
1769 {
return m_context; }
1890 {
return m_traceId; }
1897 { m_traceId = tid; }
1908 {
if (m_context) m_context->createdObj(obj); };
1910 {
if (m_context) m_context->deletedObj(obj); };
1949 virtual bool parse(
const char* text,
bool fragment =
false,
const char* file = 0,
int len = -1) = 0;
1957 virtual bool parseFile(
const char* name,
bool fragment =
false);
1977 { m_maxFileLen = len; }
1984 {
return m_maxFileLen; }
2022 : m_code(0), m_maxFileLen(500000)
2033 unsigned int m_maxFileLen;
2044 friend class JsFunction;
2053 DumpRecursive = 0x10,
2056 DumpPropObjType = 0x80,
2058 DumpFuncOnly = DumpRecursive | DumpProto | DumpFunc,
2059 DumpPropOnly = DumpRecursive | DumpPropObjType | DumpProp,
2219 {
params().clearParam(name); }
2315 {
return m_frozen; }
2321 { m_frozen =
true; }
2328 { m_lineNo = line; }
2335 {
return m_lineNo; }
2374 {
return extractArgs(
this,stack,oper,context,arguments); }
2403 {
return s_protoName; }
2469 { internalToJSON(ns,
true,buf,spaces,indent); }
2479 static void internalToJSON(
const GenObject* obj,
bool isStr,
String& buf,
int spaces,
int indent = 0);
2480 static const String s_protoName;
2483 unsigned int m_lineNo;
2541 {
if (m_func.name().null())
const_cast<String&
>(m_func.name()) = name; }
2549 {
return static_cast<const String*
>(m_formal[index]); }
2565 {
return copy(mtx,0,oper); }
2609 friend class JsObject;
2629 : JsObject(mtx,name,line,
frozen), m_length(0)
2637 {
return m_length; }
2753 JsRegExp(
ScriptMutex* mtx,
const char* name,
unsigned int line,
const char* rexp = 0,
bool insensitive =
false,
2754 bool extended =
true,
bool frozen =
false);
2770 {
return m_regexp; }
2777 {
return m_regexp; }
2814 m_regexp.isCaseInsensitive(),m_regexp.isExtended()); }
2843 inline JsParser(
bool allowLink =
true,
bool allowTrace =
false)
2844 : m_allowLink(allowLink), m_allowTrace(allowTrace)
2855 virtual bool parse(
const char* text,
bool fragment =
false,
const char* file = 0,
int len = -1);
2900 {
return m_basePath; }
2907 {
return m_includePath; }
2914 inline void basePath(
const char* path,
const char* incPath = 0)
2915 { m_basePath = path; m_includePath = incPath; }
2922 {
return m_parsedFile; }
2939 {
return (path != m_basePath) || (incPath != m_includePath) ||
scriptChanged(file); }
2945 inline void link(
bool allowed =
true)
2946 { m_allowLink = allowed; }
2953 { m_allowTrace = allowed; }
3040 {
return TelEngine::null(oper) ||
isMissing(*oper); }
A list based Array.
Definition yateclass.h:1846
DebugEnabler(int level=TelEngine::debugLevel(), bool enabled=true)
Definition yateclass.h:319
An expression parser and evaluator.
Definition yatescript.h:237
virtual bool getString(const char *&expr, String &str)
virtual bool null() const
static ExpOperation * popAny(ObjList &stack)
const TokenDict * unaryOps() const
Definition yatescript.h:460
Parser
Definition yatescript.h:243
virtual bool runEvaluate(const ObjList &opcodes, ObjList &stack, GenObject *context=0) const
String dump(const ObjList &codes, bool lineNo=false) const
Definition yatescript.h:438
virtual bool runEvaluate(const ObjVector &opcodes, ObjList &stack, GenObject *context=0, unsigned int index=0) const
bool evaluate(ObjList *results, GenObject *context=0) const
virtual bool getString(ParsePoint &expr)
virtual bool keywordDigit(char c) const
Opcode
Definition yatescript.h:251
virtual bool runAllFields(ObjList &stack, GenObject *context=0) const
virtual const char * getOperator(Opcode oper) const
virtual bool keywordChar(char c) const
ExpOperation * popOpcode()
ExpEvaluator(const TokenDict *operators=0, const TokenDict *unaryOps=0)
virtual bool getEscape(const char *&expr, String &str, char sep)
virtual bool getField(ParsePoint &expr)
bool gotError(const char *error=0, const char *text=0, unsigned int line=0) const
unsigned int lineNumber() const
Definition yatescript.h:408
ExpOperation * addOpcode(const String &value)
virtual bool runField(ObjList &stack, const ExpOperation &oper, GenObject *context=0) const
ExpEvaluator(Parser style)
virtual char skipWhites(ParsePoint &expr)
static unsigned int getLineOf(ExpOperation *op1, ExpOperation *op2=0, ExpOperation *op3=0)
virtual bool getNumber(ParsePoint &expr)
virtual bool getOperand(ParsePoint &expr, bool endOk=true, int precedence=0)
static char condLower(char chr, bool makeLower)
Definition yatescript.h:546
virtual bool getInstruction(ParsePoint &expr, char stop=0, GenObject *nested=0)
bool m_inError
Definition yatescript.h:941
virtual bool runCompile(ParsePoint &expr, const char *stop=0, GenObject *nested=0)
unsigned int m_lineNo
Definition yatescript.h:946
bool simplify()
Definition yatescript.h:394
virtual Opcode getPostfixOperator(ParsePoint &expr, int precedence=0)
int evaluate(Array &results, unsigned int index, GenObject *context=0) const
static void pushOne(ObjList &stack, ExpOperation *oper)
virtual bool keywordLetter(char c) const
virtual bool getSeparator(ParsePoint &expr, bool remove)
ExpOperation * addOpcode(Opcode oper, bool barrier=false, unsigned int line=0)
virtual bool runAssign(ObjList &stack, const ExpOperation &oper, GenObject *context=0) const
virtual Opcode getUnaryOperator(ParsePoint &expr)
void addOpcode(ExpOperation *oper, unsigned int line=0)
virtual int getPrecedence(Opcode oper) const
ExpExtender * extender() const
Definition yatescript.h:467
bool gotError(const char *error, unsigned int line) const
Definition yatescript.h:610
ExpOperation * addOpcode(int64_t value)
int compile(ParsePoint &expr, GenObject *context=0)
virtual void dump(const ExpOperation &oper, String &res, bool lineNo=false) const
ExpOperation * addOpcode(Opcode oper, int64_t value, bool barrier=false)
virtual bool runOperation(ObjList &stack, const ExpOperation &oper, GenObject *context=0) const
bool evaluate(ObjList &results, GenObject *context=0) const
Definition yatescript.h:368
virtual int getKeyword(const char *str) const
virtual int preProcess(ParsePoint &expr, GenObject *context=0)
virtual Opcode getOperator(ParsePoint &expr)
ObjList m_opcodes
Definition yatescript.h:931
virtual ExpOperation * popValue(ObjList &stack, GenObject *context=0) const
const TokenDict * m_unaryOps
Definition yatescript.h:926
ObjList * m_lastOpcode
Definition yatescript.h:936
virtual bool getRightAssoc(Opcode oper) const
const TokenDict * m_operators
Definition yatescript.h:921
bool gotError(const char *error=0, const char *text=0, unsigned int line=0)
ExpOperation * addOpcode(Opcode oper, const String &name, int64_t value=0, bool barrier=false, unsigned int line=0)
Opcode getOperator(const char *&expr, const TokenDict *operators, bool caseInsensitive=false) const
void extender(ExpExtender *ext)
virtual bool runFunction(ObjList &stack, const ExpOperation &oper, GenObject *context=0) const
virtual void dump(String &res, bool lineNo=false) const
ExpOperation * addOpcode(bool value)
int evaluate(NamedList &results, unsigned int index=0, const char *prefix=0, GenObject *context=0) const
void dump(const ObjList &codes, String &res, bool lineNo=false) const
virtual void formatLineNo(String &buf, unsigned int line) const
virtual bool runEvaluate(ObjList &stack, GenObject *context=0) const
bool inError() const
Definition yatescript.h:401
static ExpOperation * popOne(ObjList &stack)
virtual bool trySimplify()
virtual char skipComments(ParsePoint &expr, GenObject *context=0)
virtual bool getSimple(ParsePoint &expr, bool constOnly=false)
bool runCompile(ParsePoint &expr, char stop, GenObject *nested=0)
ExpEvaluator(const ExpEvaluator &original)
const TokenDict * operators() const
Definition yatescript.h:453
virtual bool getFunction(ParsePoint &expr)
String dump(bool lineNo=false) const
Definition yatescript.h:446
bool gotError(const char *error, unsigned int line)
Definition yatescript.h:619
ExpEvaluator extending interface.
Definition yatescript.h:56
virtual NamedString * getField(ObjList &stack, const String &name, GenObject *context) const
virtual bool runAssign(ObjList &stack, const ExpOperation &oper, GenObject *context)
virtual RefObject * refObj()
virtual bool hasField(ObjList &stack, const String &name, GenObject *context) const
virtual bool runFunction(ObjList &stack, const ExpOperation &oper, GenObject *context)
virtual bool runField(ObjList &stack, const ExpOperation &oper, GenObject *context)
virtual ~ExpExtender()
Definition yatescript.h:61
Helper class to declare a native function.
Definition yatescript.h:1207
ExpFunction(const char *name, long int argc=0, bool barrier=false)
Definition yatescript.h:1216
virtual bool valBoolean(bool defVal=false) const
Definition yatescript.h:1225
virtual ExpOperation * clone(const char *name) const
A single operation in an expression.
Definition yatescript.h:958
ExpOperation(const String &value, const char *name=0, bool autoNum=false)
Definition yatescript.h:998
ExpOperation(const ExpOperation &original, const char *name, bool copyType=true)
Definition yatescript.h:985
bool isNumber() const
Definition yatescript.h:1113
bool barrier() const
Definition yatescript.h:1120
ExpOperation(ExpEvaluator::Opcode oper, const char *name, const char *value, bool barrier=false)
Definition yatescript.h:1061
ExpOperation * clone() const
Definition yatescript.h:1182
unsigned int lineNumber() const
Definition yatescript.h:1127
virtual const char * typeOf() const
ExpOperation(ExpEvaluator::Opcode oper, const char *name=0, int64_t value=nonInteger(), bool barrier=false)
Definition yatescript.h:1048
virtual int64_t toNumber() const
int64_t number() const
Definition yatescript.h:1099
virtual bool valBoolean(bool defVal=false) const
bool isInteger() const
Definition yatescript.h:1092
void lineNumber(unsigned int line)
Definition yatescript.h:1134
ExpEvaluator::Opcode opcode() const
Definition yatescript.h:1085
ExpOperation(const char *value, const char *name=0)
Definition yatescript.h:1012
ExpOperation(bool value, const char *name=0)
Definition yatescript.h:1034
virtual int64_t valInteger(int64_t defVal=0) const
static int64_t nonInteger()
Definition yatescript.h:966
int64_t operator=(int64_t num)
Definition yatescript.h:1142
virtual ExpOperation * copy(ScriptMutex *mtx) const
Definition yatescript.h:1190
ExpOperation(const ExpOperation &original)
Definition yatescript.h:973
ExpOperation(int64_t value, const char *name=0)
Definition yatescript.h:1023
ExpOperation(ExpEvaluator::Opcode oper, const char *name, const char *value, int64_t number, bool barrier)
Definition yatescript.h:1075
virtual ExpOperation * clone(const char *name) const
bool isBoolean() const
Definition yatescript.h:1106
Object wrapper for evaluation.
Definition yatescript.h:1241
virtual void * getObject(const String &name) const
ExpWrapper(GenObject *object, const char *name=0, bool barrier=false)
Definition yatescript.h:1249
GenObject * object() const
Definition yatescript.h:1310
virtual const char * typeOf() const
virtual bool valBoolean(bool defVal=false) const
ExpWrapper(ExpEvaluator::Opcode opcode, GenObject *object, const char *name=0)
Definition yatescript.h:1261
virtual ~ExpWrapper()
Definition yatescript.h:1269
virtual ExpOperation * copy(ScriptMutex *mtx) const
virtual ExpOperation * clone(const char *name) const
Definition yateclass.h:1049
A hashed object list class.
Definition yateclass.h:3658
virtual JsObject * runConstructor(ObjList &stack, const ExpOperation &oper, GenObject *context)
virtual JsObject * copy(ScriptMutex *mtx, const ExpOperation &oper) const
virtual bool runAssign(ObjList &stack, const ExpOperation &oper, GenObject *context)
JsArray(ScriptMutex *mtx, const char *name, unsigned int line, bool frozen=false)
Definition yatescript.h:2628
bool runNative(ObjList &stack, const ExpOperation &oper, GenObject *context)
virtual JsObject * clone(const char *name, const ExpOperation &oper) const
Definition yatescript.h:2702
virtual void initConstructor(JsFunction *construct)
int32_t length() const
Definition yatescript.h:2636
void push(ExpOperation *item)
virtual bool runField(ObjList &stack, const ExpOperation &oper, GenObject *context)
void setLength(int32_t len)
Definition yatescript.h:2643
JsArray(GenObject *context, unsigned int line, ScriptMutex *mtx=0)
Javascript Function.
Definition yatescript.h:2491
JsFunction(ScriptMutex *mtx, const char *name, unsigned int line, ObjList *args=0, long int lbl=0, ScriptCode *code=0)
const String * formalName(unsigned int index) const
Definition yatescript.h:2548
long int label() const
Definition yatescript.h:2555
JsObject * copy(ScriptMutex *mtx, const ExpOperation &oper) const
Definition yatescript.h:2564
virtual JsObject * copy(ScriptMutex *mtx, const char *name, const ExpOperation &oper) const
const ExpFunction * getFunc() const
Definition yatescript.h:2533
virtual void initConstructor(JsFunction *construct)
virtual bool runDefined(ObjList &stack, const ExpOperation &oper, GenObject *context, JsObject *thisObj=0)
virtual bool runNative(ObjList &stack, const ExpOperation &oper, GenObject *context)
virtual JsFunction * cloneFunction(const ExpOperation &oper, ScriptMutex *mtx=0)
JsFunction(ScriptMutex *mtx=0)
void firstName(const char *name)
Definition yatescript.h:2540
Javascript Object.
Definition yatescript.h:2043
virtual NamedString * getField(ObjList &stack, const String &name, GenObject *context) const
virtual void fillFieldNames(ObjList &names)
static ExpOperation * toJSON(const ExpOperation *oper, int spaces)
virtual JsObject * runConstructor(ObjList &stack, const ExpOperation &oper, GenObject *context)
bool getIntField(const String &name, int64_t &val)
virtual JsObject * copy(ScriptMutex *mtx, const ExpOperation &oper) const
virtual bool runAssign(ObjList &stack, const ExpOperation &oper, GenObject *context)
static void toJSON(const NamedString *ns, String &buf, int spaces, int indent=0)
Definition yatescript.h:2468
virtual JsObject * clone(const char *name, const ExpOperation &oper) const
Definition yatescript.h:2106
unsigned int lineNo() const
Definition yatescript.h:2334
static int extractArgs(JsObject *obj, ObjList &stack, const ExpOperation &oper, GenObject *context, ObjList &arguments)
static void dumpRecursive(const GenObject *obj, String &buf, unsigned int flags=0xffffffff)
bool getStringField(const String &name, String &val)
static String strEscape(const char *str)
DumpFlags
Definition yatescript.h:2050
static void initialize(ScriptContext *context)
bool frozen() const
Definition yatescript.h:2314
virtual bool hasField(ObjList &stack, const String &name, GenObject *context) const
JsObject(const char *name="Object", ScriptMutex *mtx=0, bool frozen=false)
static JsObject * buildCallContext(ScriptMutex *mtx, JsObject *thisObj=0)
bool setStringField(const char *name, const char *val)
Definition yatescript.h:2256
virtual void initConstructor(JsFunction *construct)
Definition yatescript.h:2166
static const String & protoName()
Definition yatescript.h:2402
bool setObjField(const char *name, JsObject *obj)
Definition yatescript.h:2270
virtual bool runFunction(ObjList &stack, const ExpOperation &oper, GenObject *context)
static void addConstructor(NamedList ¶ms, const char *name, JsObject *obj)
static void setLineForObj(JsObject *obj, unsigned int lineNo, bool recursive)
void setPrototype(GenObject *context, const String &objName)
virtual bool runField(ObjList &stack, const ExpOperation &oper, GenObject *context)
virtual const HashList * getHashListParams() const
void setMutex(ScriptMutex *mtx)
Definition yatescript.h:2458
void lineNo(unsigned int line)
Definition yatescript.h:2327
static void deepCopyParams(NamedList &dst, const NamedList &src, ScriptMutex *mtx)
bool setBoolField(const char *name, bool val)
Definition yatescript.h:2241
void freeze()
Definition yatescript.h:2320
static void addObject(NamedList ¶ms, const char *name, JsObject *obj)
virtual void clearField(const String &name)
Definition yatescript.h:2218
int extractArgs(ObjList &stack, const ExpOperation &oper, GenObject *context, ObjList &arguments)
Definition yatescript.h:2373
bool getObjField(const String &name, JsObject *&obj)
static void printRecursive(const GenObject *obj, unsigned int flags=0xffffffff)
virtual bool runNative(ObjList &stack, const ExpOperation &oper, GenObject *context)
ScriptMutex * mutex() const
Definition yatescript.h:2451
bool getBoolField(const String &name, bool &val)
virtual ScriptMutex * mutex()
Definition yatescript.h:2097
JsObject(GenObject *context, unsigned int line, ScriptMutex *mtx=0, bool frozen=false)
virtual ExpOperation * popValue(ObjList &stack, GenObject *context=0)
bool setIntField(const char *name, int64_t val)
Definition yatescript.h:2227
JsObject * clone(const ExpOperation &oper) const
Definition yatescript.h:2114
JsObject(ScriptMutex *mtx, const char *name, unsigned int line, bool frozen=0)
const String & includePath() const
Definition yatescript.h:2906
static ExpOperation * parseJSON(const char *text, ScriptMutex *mtx=0, ObjList *stack=0, GenObject *context=0, const ExpOperation *op=0)
static bool isEmpty(const ExpOperation *oper)
Definition yatescript.h:3039
static bool isFilled(const ExpOperation *oper)
Definition yatescript.h:3053
static bool isNull(const ExpOperation &oper)
const String & basePath() const
Definition yatescript.h:2899
virtual bool callable(const String &name)
static bool isMissing(const ExpOperation &oper)
static bool isEmpty(const ExpOperation &oper)
Definition yatescript.h:3032
static bool isUndefined(const ExpOperation &oper)
void trace(bool allowed=true)
Definition yatescript.h:2952
JsParser(bool allowLink=true, bool allowTrace=false)
Definition yatescript.h:2843
static bool isMissing(const ExpOperation *oper)
Definition yatescript.h:3011
void basePath(const char *path, const char *incPath=0)
Definition yatescript.h:2914
bool scriptChanged(const char *file) const
static bool isFilled(const ExpOperation &oper)
Definition yatescript.h:3046
virtual bool parse(const char *text, bool fragment=false, const char *file=0, int len=-1)
const String & parsedFile() const
Definition yatescript.h:2921
static JsObject * nullObject()
static bool isPresent(const ExpOperation *oper)
Definition yatescript.h:3025
ScriptRun * createRunner(ScriptContext *context=0, const char *title=0) const
Definition yatescript.h:2878
static bool isPresent(const ExpOperation &oper)
Definition yatescript.h:3018
virtual ScriptContext * createContext() const
static ScriptRun::Status eval(const String &text, ExpOperation **result=0, ScriptContext *context=0)
void adjustPath(String &script, bool extraInc=false) const
void link(bool allowed=true)
Definition yatescript.h:2945
static ExpOperation * nullClone(const char *name=0)
virtual ScriptRun * createRunner(ScriptCode *code, ScriptContext *context=0, const char *title=0) const
bool scriptChanged(const char *file, const String &path, const String &incPath=String::empty()) const
Definition yatescript.h:2938
virtual JsObject * runConstructor(ObjList &stack, const ExpOperation &oper, GenObject *context)
virtual JsObject * copy(ScriptMutex *mtx, const ExpOperation &oper) const
virtual bool runAssign(ObjList &stack, const ExpOperation &oper, GenObject *context)
bool runNative(ObjList &stack, const ExpOperation &oper, GenObject *context)
JsRegExp(ScriptMutex *mtx=0)
virtual JsObject * clone(const char *name, const ExpOperation &oper) const
Definition yatescript.h:2812
JsRegExp(ScriptMutex *mtx, unsigned int line, const Regexp &rexp, bool frozen=false)
const Regexp & regexp() const
Definition yatescript.h:2769
Regexp & regexp()
Definition yatescript.h:2776
JsRegExp(ScriptMutex *mtx, const char *name, unsigned int line, const char *rexp=0, bool insensitive=false, bool extended=true, bool frozen=false)
Mutex(bool recursive=false, const char *name=0)
A named string container class.
Definition yateclass.h:5016
A named string class.
Definition yateclass.h:3481
NamedString(const char *name, const char *value=0)
virtual const String & toString() const
const String & name() const
Definition yateclass.h:3495
An object list class.
Definition yateclass.h:1454
A vector holding GenObjects.
Definition yateclass.h:1692
String m_fileName
Definition yatescript.h:229
char m_foundSep
Definition yatescript.h:214
unsigned int m_count
Definition yatescript.h:209
ParsePoint & operator=(ParsePoint &parsePoint)
ParsePoint & operator++()
Definition yatescript.h:167
const char * m_searchedSeps
Definition yatescript.h:204
unsigned int m_lineNo
Definition yatescript.h:219
ParsePoint & operator=(const char *newExpr)
Definition yatescript.h:158
ParsePoint(const char *&expr, ExpEvaluator *eval=0, unsigned int lineNo=0, const char *fileName=0, const char *seps=0)
Definition yatescript.h:132
ParsePoint & operator=(unsigned int line)
ParsePoint & operator++(int unused)
Definition yatescript.h:176
unsigned lineNumber() const
Definition yatescript.h:193
const char * m_expr
Definition yatescript.h:199
char firstChar()
Definition yatescript.h:186
ExpEvaluator * m_eval
Definition yatescript.h:224
Definition yateclass.h:1174
A regexp matching class.
Definition yateclass.h:3271
Asynchronous execution support.
Definition yatescript.h:1690
virtual ~ScriptAsync()
Definition yatescript.h:1704
ScriptRun * runner()
Definition yatescript.h:1711
ScriptAsync(ScriptRun *owner)
Definition yatescript.h:1697
Script parsed code.
Definition yatescript.h:1620
virtual bool evaluate(ScriptRun &runner, ObjList &results) const =0
virtual bool initialize(ScriptContext *context) const =0
virtual ScriptRun * createRunner(ScriptContext *context, const char *title=0)
Definition yatescript.h:1643
virtual void getFileLine(unsigned int line, String &fileName, unsigned int &fileLine, bool wholePath=true)
Definition yatescript.h:1653
Script execution context.
Definition yatescript.h:1431
virtual NamedString * getField(ObjList &stack, const String &name, GenObject *context) const
virtual void fillFieldNames(ObjList &names)
virtual ScriptMutex * mutex()=0
virtual bool runAssign(ObjList &stack, const ExpOperation &oper, GenObject *context)
virtual void * getObject(const String &name) const
virtual void deletedObj(GenObject *obj)
Definition yatescript.h:1594
virtual void addFields(const NamedList &list, const char *skipPrefix="__")
virtual RefObject * refObj()
Definition yatescript.h:1480
virtual void trackObjs(unsigned int track=0)
Definition yatescript.h:1601
virtual bool hasField(ObjList &stack, const String &name, GenObject *context) const
bool runMatchingField(ObjList &stack, const ExpOperation &oper, GenObject *context)
virtual ObjList * countAllocations()
Definition yatescript.h:1608
virtual void createdObj(GenObject *obj)
Definition yatescript.h:1586
virtual bool copyFields(ObjList &stack, const ScriptContext &original, GenObject *context)
virtual bool runFunction(ObjList &stack, const ExpOperation &oper, GenObject *context)
virtual const String & toString() const
Definition yatescript.h:1466
static void fillFieldNames(ObjList &names, const HashList &list)
virtual bool runField(ObjList &stack, const ExpOperation &oper, GenObject *context)
ScriptContext(const char *name=0)
Definition yatescript.h:1437
const NamedList & params() const
Definition yatescript.h:1452
virtual NamedList * nativeParams() const
Definition yatescript.h:1459
NamedList & params()
Definition yatescript.h:1445
static void fillFieldNames(ObjList &names, const NamedList &list, bool checkDupl=true, const char *skip=0)
Script context serialization mutex.
Definition yatescript.h:1390
virtual void objDeleted(GenObject *obj)=0
bool objTrack() const
Definition yatescript.h:1418
ScriptMutex(bool recursive, const char *name)
Definition yatescript.h:1398
virtual void objCreated(GenObject *obj)=0
void setCode(ScriptCode *code)
virtual bool callable(const String &name)
ScriptParser()
Definition yatescript.h:2021
virtual bool parseFile(const char *name, bool fragment=false)
virtual bool parse(const char *text, bool fragment=false, const char *file=0, int len=-1)=0
unsigned int maxFileLen() const
Definition yatescript.h:1983
ScriptRun * createRunner(ScriptContext *context=0, const char *title=0) const
Definition yatescript.h:2007
virtual ScriptContext * createContext() const
void clear()
Definition yatescript.h:1962
void setMaxFileLen(unsigned int len)
Definition yatescript.h:1976
virtual ScriptRun * createRunner(ScriptCode *code, ScriptContext *context=0, const char *title=0) const
ScriptCode * code() const
Definition yatescript.h:1969
Script runtime execution.
Definition yatescript.h:1729
const char * textState() const
Definition yatescript.h:1788
virtual Status run(bool init=true)
virtual Status call(const String &name, ObjList &args, ExpOperation *thisObj=0, ExpOperation *scopeObj=0)
ObjList & stack()
Definition yatescript.h:1795
ScriptRun * clone() const
Definition yatescript.h:1809
Status state() const
Definition yatescript.h:1774
virtual bool callable(const String &name)
void objCreated(GenObject *obj)
Definition yatescript.h:1907
virtual const String & currentFileName(bool wholePath=false) const
Definition yatescript.h:1882
Status
Definition yatescript.h:1737
ScriptRun(ScriptCode *code, ScriptContext *context=0)
bool runAssign(const ExpOperation &oper, GenObject *context=0)
static const char * textState(Status state)
virtual unsigned int currentLineNo() const
Definition yatescript.h:1874
virtual const String & traceId() const
Definition yatescript.h:1889
void objDeleted(GenObject *obj)
Definition yatescript.h:1909
const ObjList & stack() const
Definition yatescript.h:1802
virtual bool appendAsync(ScriptAsync *oper)
virtual bool insertAsync(ScriptAsync *oper)
virtual void setTraceId(const String &tid)
Definition yatescript.h:1896
ScriptContext * context() const
Definition yatescript.h:1768
ScriptCode * code() const
Definition yatescript.h:1761
virtual Status reset(bool init=false)
ScriptRun * runner()
Definition yatescript.h:1678
ScriptStack(ScriptRun *owner)
Definition yatescript.h:1670
A C-style string handling class.
Definition yateclass.h:2131
const char * c_str() const
Definition yateclass.h:2236
int64_t toInt64(int64_t defvalue=0, int base=0, int64_t minvalue=LLONG_MIN, int64_t maxvalue=LLONG_MAX, bool clamp=true) const
bool null() const
Definition yateclass.h:2265
static const char * boolText(bool value)
Definition yateclass.h:2229
bool toBoolean(bool defvalue=false) const
String & operator=(const String &value)
Definition yateclass.h:2567
static const String & empty()
virtual bool evalWhere(GenObject *context=0)
virtual ~TableEvaluator()
virtual unsigned int evalLimit(GenObject *context=0)
TableEvaluator(ExpEvaluator::Parser style)
TableEvaluator(const TableEvaluator &original)
TableEvaluator(const TokenDict *operators, const TokenDict *unaryOps)
void extender(ExpExtender *ext)
virtual bool evalSelect(ObjList &results, GenObject *context=0)
Definition yateclass.h:848