private void buildOperator() { int type; string name = pop(out type); StatementData arg = popStatement(); ISyntaxComponent argComp = simplifyStatement(arg); StatementData _statement = newStatementWithOneFunction(); FunctionData first = _statement.First; first.Name.SetLine(getLastLineNumber()); _statement.CopyFirstComments(argComp); argComp.FirstComments.Clear(); mStatementSemanticStack.Push(_statement); StatementData statement = getCurStatement(); FunctionData func = getLastFunction(); if (!func.IsValid()) { if (name.Length > 0 && name[0] == '`') { func.SetParamClass((int)(FunctionData.ParamClassEnum.PARAM_CLASS_WRAP_INFIX_CALL_MASK | FunctionData.ParamClassEnum.PARAM_CLASS_OPERATOR)); func.Name.SetId(name.Substring(1)); func.Name.SetType(type); } else { func.SetParamClass((int)FunctionData.ParamClassEnum.PARAM_CLASS_OPERATOR); func.Name.SetId(name); func.Name.SetType(type); } if (argComp.IsValid()) { func.AddParam(argComp); } } }
internal void markStatement() { FunctionData func = getLastFunction(); bool commentOnNewLine; IList <string> cmts = GetComments(out commentOnNewLine); if (cmts.Count > 0) { if (func.IsHighOrder) { func.LowerOrderFunction.Comments.AddRange(cmts); } else { func.Comments.AddRange(cmts); } } func.SetParamClass((int)FunctionData.ParamClassEnum.PARAM_CLASS_STATEMENT); }
private void markExternScript() { FunctionData func = getLastFunction(); bool commentOnNewLine; IList <string> cmts = GetComments(out commentOnNewLine); if (cmts.Count > 0) { if (func.IsHighOrder) { func.LowerOrderFunction.Comments.AddRange(cmts); } else { func.Comments.AddRange(cmts); } } func.SetParamClass((int)FunctionData.ParamClassEnum.PARAM_CLASS_EXTERN_SCRIPT); }
private void buildSecondTernaryOperator() { int type; string name = pop(out type); StatementData statement = getCurStatement(); FunctionData newFunc = new FunctionData(); ValueData nname = new ValueData(); newFunc.Name = nname; statement.Functions.Add(newFunc); FunctionData func = getLastFunction(); if (!func.IsValid()) { func.SetParamClass((int)FunctionData.ParamClassEnum.PARAM_CLASS_TERNARY_OPERATOR); func.Name.SetId(name); func.Name.SetType(type); func.Name.SetLine(getLastLineNumber()); } }
private void buildFirstTernaryOperator() { int type; string name = pop(out type); StatementData arg = popStatement(); ISyntaxComponent argComp = simplifyStatement(arg); StatementData _statement = newStatementWithOneFunction(); FunctionData first = _statement.First; //三元运算符表示成op1(cond)(true_val)op2(false_val) first.LowerOrderFunction = new FunctionData(); first.LowerOrderFunction.Name = new ValueData(); first.LowerOrderFunction.Name.SetLine(getLastLineNumber()); _statement.CopyFirstComments(argComp); argComp.FirstComments.Clear(); mStatementSemanticStack.Push(_statement); StatementData statement = getCurStatement(); FunctionData func = getLastFunction(); if (!func.IsValid()) { func.LowerOrderFunction.SetParamClass((int)FunctionData.ParamClassEnum.PARAM_CLASS_PARENTHESIS); func.LowerOrderFunction.Name.SetId(name); func.LowerOrderFunction.Name.SetType(type); if (argComp.IsValid()) { func.LowerOrderFunction.AddParam(argComp); } func.SetParamClass((int)FunctionData.ParamClassEnum.PARAM_CLASS_TERNARY_OPERATOR); } }
private void markAngleBracketPercentParam() { FunctionData func = getLastFunction(); func.SetParamClass((int)FunctionData.ParamClassEnum.PARAM_CLASS_ANGLE_BRACKET_PERCENT); }
private void markBracePercentParam() { FunctionData func = getLastFunction(); func.SetParamClass((int)FunctionData.ParamClassEnum.PARAM_CLASS_BRACE_PERCENT); }
private void markParenthesisPercentParam() { FunctionData func = getLastFunction(); func.SetParamClass((int)FunctionData.ParamClassEnum.PARAM_CLASS_PARENTHESIS_PERCENT); }
internal void markQuestionPeriodParam() { FunctionData func = getLastFunction(); func.SetParamClass((int)FunctionData.ParamClassEnum.PARAM_CLASS_QUESTION_PERIOD); }
private void markAngleBracketColonParam() { FunctionData func = getLastFunction(); func.SetParamClass((int)FunctionData.ParamClassEnum.PARAM_CLASS_ANGLE_BRACKET_COLON); }
private void markPeriodBraceParam() { FunctionData func = getLastFunction(); func.SetParamClass((int)FunctionData.ParamClassEnum.PARAM_CLASS_PERIOD_BRACE); }
private void markQuestionBraceParam() { FunctionData func = getLastFunction(); func.SetParamClass((int)FunctionData.ParamClassEnum.PARAM_CLASS_QUESTION_BRACE); }
private void markQuestionPeriodStarParam() { FunctionData func = getLastFunction(); func.SetParamClass((int)FunctionData.ParamClassEnum.PARAM_CLASS_QUESTION_PERIOD_STAR); }
internal void markPeriodBracketParam() { FunctionData func = getLastFunction(); func.SetParamClass((int)FunctionData.ParamClassEnum.PARAM_CLASS_PERIOD_BRACKET); }
private void markColonColonParenthesisParam() { FunctionData func = getLastFunction(); func.SetParamClass((int)FunctionData.ParamClassEnum.PARAM_CLASS_COLON_COLON_PARENTHESIS); }
internal void markQuestionParenthesisParam() { FunctionData func = getLastFunction(); func.SetParamClass((int)FunctionData.ParamClassEnum.PARAM_CLASS_QUESTION_PARENTHESIS); }
internal void markPeriodStarParam() { FunctionData func = getLastFunction(); func.SetParamClass((int)FunctionData.ParamClassEnum.PARAM_CLASS_PERIOD_STAR); }
internal void markPointerParam() { FunctionData func = getLastFunction(); func.SetParamClass((int)FunctionData.ParamClassEnum.PARAM_CLASS_POINTER); }
internal void markQuestionBracketParam() { FunctionData func = getLastFunction(); func.SetParamClass((int)FunctionData.ParamClassEnum.PARAM_CLASS_QUESTION_BRACKET); }
private void markColonColonBraceParam() { FunctionData func = getLastFunction(); func.SetParamClass((int)FunctionData.ParamClassEnum.PARAM_CLASS_COLON_COLON_BRACE); }
private void markBracketParam() { FunctionData func = getLastFunction(); func.SetParamClass((int)FunctionData.ParamClassEnum.PARAM_CLASS_BRACKET); }
private void markPointerStarParam() { FunctionData func = getLastFunction(); func.SetParamClass((int)FunctionData.ParamClassEnum.PARAM_CLASS_POINTER_STAR); }
internal void markPeriodParenthesisParam() { FunctionData func = getLastFunction(); func.SetParamClass((int)FunctionData.ParamClassEnum.PARAM_CLASS_PERIOD_PARENTHESIS); }