public override void Parse(ClsContext clContext) { var clToken = clContext.CurrentToken; ClsNode clNode1 = new ClsNodeEqual(); clNode1.Parse(clContext); clToken = clContext.CurrentToken; while (clToken == "&" || clToken == "|") { clContext.NextToken(); ClsNode clNode2 = new ClsNodeEqual(); clNode2.Parse(clContext); clContext.Notation.Add(clToken); clToken = clContext.CurrentToken; } }
public override void Parse(ClsContext clContext) { var clToken = clContext.CurrentToken; Match clMatch = Regex.Match(clToken, ClsSuim.REGEX_CNG_NAME); if (!clMatch.Success) { int inSign = 1; string clSign = ""; // IEnumerable<char> nstr = clToken; if (IsSign(clToken[0])) { inSign = GetSign(clToken); clSign = clToken; clToken = clContext.NextToken(); } clMatch = Regex.Match(clToken, ClsSuim.REGEX_CNG_NAME); if (clMatch.Success) { clToken = clSign + clToken; } else { clToken = string.Format("{0}", inSign * Convert.ToDecimal(clToken)); } } clContext.Notation.Add(clToken); clContext.NextToken(); }
public override void Parse(ClsContext clContext) { ClsNode clNode1 = new ClsNodeFactor(); clNode1.Parse(clContext); string clToken = clContext.CurrentToken; while (clToken == "*" || clToken == "/" || clToken == "%") { clContext.NextToken(); ClsNode clNode2 = new ClsNodeFactor(); clNode2.Parse(clContext); clContext.Notation.Add(clToken); clToken = clContext.CurrentToken; } }