public static ICQ_Expression Compiler_Expression_DefineAndSet(IList <Token> tlist, int pos, int posend) { int expbegin = pos + 3; int bdep; int expend = FindCodeAny(tlist, ref expbegin, out bdep); if (expend != posend) { expend = posend; } ICQ_Expression v; bool succ = Compiler_Expression(tlist, expbegin, expend, out v); if (succ && v != null) { CQ_Expression_Define define = new CQ_Expression_Define(pos, posend, tlist[pos].line, tlist[posend].line); if (tlist[pos].text == "bool") { define.value_type = typeof(bool); } else { IType type = CQuark.AppDomain.GetTypeByKeyword(tlist[pos].text); define.value_type = type.typeBridge; } define.value_name = tlist[pos + 1].text; define._expressions.Add(v); return(define); } DebugUtil.LogError(tlist, "不正确的定义表达式:", pos, posend); return(null); }
public static ICQ_Expression Compiler_Expression_DefineArray(IList <Token> tlist, int pos, int posend) { CQ_Expression_Define define = new CQ_Expression_Define(pos, posend, tlist[pos].line, tlist[posend].line); { IType type = CQuark.AppDomain.GetTypeByKeyword(tlist[pos].text + "[]"); define.value_type = type.typeBridge; } define.value_name = tlist[pos + 3].text; return(define); }
public static ICQ_Expression Compiler_Expression_Define(IList <Token> tlist, int pos, int posend) { CQ_Expression_Define define = new CQ_Expression_Define(pos, posend, tlist[pos].line, tlist[posend].line); if (tlist[pos].text == "bool") { define.value_type = typeof(bool); } else { IType type = CQuark.AppDomain.GetTypeByKeyword(tlist[pos].text); define.value_type = type.typeBridge; } define.value_name = tlist[pos + 1].text; return(define); }