public void TestCompletion() { questdsl.State s1 = questdsl.Parser.ParseNode("somestate", "subval1\nsubval2\nsubval3"); questdsl.State s2 = questdsl.Parser.ParseNode("sometrans", "--arg1 abc\n--arg2 def\n--arg3 xxx"); questdsl.State s3 = questdsl.Parser.ParseNode("sometrig", "//\n"); questdsl.Hinge h = new questdsl.Hinge(new List <questdsl.State>() { s1, s2, s3 }); questdsl.Parser p = new questdsl.Parser(); List <questdsl.Parser.SuggestIssue> issues = p.Suggest(h.GetStates(), h.GetTransitions(), "").ToList(); Assert.AreEqual(issues.Count, 2); p.AppendLine("$x = 4442 + 1122"); issues = p.Suggest(h.GetStates(), h.GetTransitions(), "").ToList(); Assert.AreEqual(issues.Count, 2); p.AppendLine("\n"); p.AppendLine("$x == 555"); issues = p.Suggest(h.GetStates(), h.GetTransitions(), "").ToList(); Assert.AreEqual(issues.Count, 2); }
public void TestExecExpressions() { questdsl.Parser p = new questdsl.Parser(); Assert.Throws <Exception>(() => p.AppendLine("a=$c")); p.AppendLine("$a= that is it "); Assert.AreEqual(p.context.ExecBody.Count, 1); Assert.AreEqual(p.context.ExecBody[0].ExLeftPart.TypeOfReference, questdsl.ExpressionValue.RefType.LocalVar); Assert.AreEqual(p.context.ExecBody[0].ExRightPart.TypeOfValue, questdsl.ExpressionValue.ValueType.string_text); Assert.AreEqual(p.context.ExecBody[0].ExRightPart.Left, "that is it"); Assert.Throws <Exception>(() => p.AppendLine("$a==$x")); p.AppendLine(""); Assert.DoesNotThrow(() => p.AppendLine("$a==$x")); Assert.Throws <Exception>(() => p.AppendLine("")); Assert.Throws <Exception>(() => p.AppendLine("$m+=1")); Assert.DoesNotThrow(() => p.AppendLine("----")); Assert.Throws <Exception>(() => p.AppendLine("----")); Assert.DoesNotThrow(() => p.AppendLine("$m+=1")); p = new questdsl.Parser(); Assert.Throws <Exception>(() => p.AppendLine("$v = \"xxxx ")); Assert.Throws <Exception>(() => p.AppendLine("$v = xxxx\" ")); Assert.DoesNotThrow(() => p.AppendLine("$v = xxxx\"yyy ")); Assert.DoesNotThrow(() => p.AppendLine("$v = \"xxxxyyy\" ")); p = new questdsl.Parser(); p.AppendLine("trans"); Assert.AreEqual(p.context.NodeDeclaredType, questdsl.Parser.ParserContext.NodeType.Transition); p = new questdsl.Parser(); p.AppendLine("-->move location"); Assert.AreEqual(p.context.ExecBody.Count, 1); Assert.AreEqual(p.context.ExecBody[0].InvokeTransitionName, "move"); Assert.AreEqual(p.context.ExecBody[0].FuncType, questdsl.ExpressionExecutive.ExecuteType.Invocation); Assert.AreEqual(p.context.ExecBody[0].InvokeArgs.Count, 1); Assert.AreEqual(p.context.ExecBody[0].InvokeArgs[0].TypeOfValue, questdsl.ExpressionValue.ValueType.string_text); Assert.AreEqual(p.context.ExecBody[0].InvokeArgs[0].Left, "location"); Action <string, questdsl.ExpressionExecutive.ExecuteType> checkAssignOp = (op, optype) => { p = new questdsl.Parser(); p.AppendLine("$var = $k " + op + " 1"); Assert.AreEqual(p.context.ExecBody.Count, 1); Assert.AreEqual(p.context.ExecBody[0].AssignResultVar.Left, "var"); Assert.AreEqual(p.context.ExecBody[0].AssignResultVar.TypeOfReference, questdsl.ExpressionValue.RefType.LocalVar); Assert.AreEqual(p.context.ExecBody[0].FuncType, optype); Assert.AreEqual(p.context.ExecBody[0].ExLeftPart.Left, "k"); Assert.AreEqual(p.context.ExecBody[0].ExLeftPart.TypeOfReference, questdsl.ExpressionValue.RefType.LocalVar); Assert.AreEqual(p.context.ExecBody[0].ExRightPart.Num, 1); }; checkAssignOp("+", questdsl.ExpressionExecutive.ExecuteType.AssignAdd); checkAssignOp("/", questdsl.ExpressionExecutive.ExecuteType.AssignDiv); checkAssignOp("%", questdsl.ExpressionExecutive.ExecuteType.AssignModulo); checkAssignOp("*", questdsl.ExpressionExecutive.ExecuteType.AssignMul); checkAssignOp("-", questdsl.ExpressionExecutive.ExecuteType.AssignSub); }
public void TestSubstates() { questdsl.Parser p = new questdsl.Parser(); p.AppendLine("name: text"); Assert.IsTrue(p.context.DeclaredSubstatesByName); Assert.IsFalse(p.context.DeclaredSubstatesByList); Assert.AreEqual(p.context.IsInMultivar, false); Assert.AreEqual(p.context.NodeDeclaredType, questdsl.Parser.ParserContext.NodeType.State); Assert.AreEqual(p.context.StateNodeInstance.Substates.Count, 1); Assert.AreEqual(p.context.StateNodeInstance.SubstatesBook["name"].initialValue.TypeOfValue, questdsl.ExpressionValue.ValueType.string_text); Assert.IsTrue(string.CompareOrdinal(p.context.StateNodeInstance.SubstatesBook["name"].initialValue.Left, "text") == 0); Assert.Throws <Exception>(() => p.AppendLine("sometext")); p.AppendLine("namenull: $null"); Assert.IsTrue(p.context.DeclaredSubstatesByName); Assert.IsFalse(p.context.DeclaredSubstatesByList); Assert.AreEqual(p.context.IsInMultivar, false); Assert.AreEqual(p.context.NodeDeclaredType, questdsl.Parser.ParserContext.NodeType.State); Assert.AreEqual(p.context.StateNodeInstance.Substates.Count, 2); Assert.AreEqual(p.context.StateNodeInstance.SubstatesBook["namenull"].initialValue.TypeOfReference, questdsl.ExpressionValue.RefType.Null); p = new questdsl.Parser(); p.AppendLine("someLine"); Assert.IsFalse(p.context.DeclaredSubstatesByName); Assert.IsTrue(p.context.DeclaredSubstatesByList); Assert.AreEqual(p.context.IsInMultivar, false); Assert.AreEqual(p.context.NodeDeclaredType, questdsl.Parser.ParserContext.NodeType.State); Assert.AreEqual(p.context.StateNodeInstance.Substates.Count, 1); Assert.AreEqual(p.context.StateNodeInstance.Substates[0].initialValue.TypeOfValue, questdsl.ExpressionValue.ValueType.string_text); Assert.IsTrue(string.CompareOrdinal(p.context.StateNodeInstance.Substates[0].initialValue.Left, "someLine") == 0); Assert.Throws <Exception>(() => p.AppendLine("name: sometext")); p.AppendLine("9995"); Assert.IsFalse(p.context.DeclaredSubstatesByName); Assert.IsTrue(p.context.DeclaredSubstatesByList); Assert.AreEqual(p.context.IsInMultivar, false); Assert.AreEqual(p.context.NodeDeclaredType, questdsl.Parser.ParserContext.NodeType.State); Assert.AreEqual(p.context.StateNodeInstance.Substates.Count, 2); Assert.AreEqual(p.context.StateNodeInstance.Substates[1].initialValue.TypeOfValue, questdsl.ExpressionValue.ValueType.number); Assert.IsTrue(p.context.StateNodeInstance.Substates[1].initialValue.Num == 9995); p.AppendLine("\"multilineStart"); Assert.AreEqual(p.context.IsInMultivar, true); Assert.AreEqual(p.context.StateNodeInstance.Substates.Count, 2); p.AppendLine("intermediate\"xxx"); Assert.AreEqual(p.context.IsInMultivar, true); Assert.AreEqual(p.context.StateNodeInstance.Substates.Count, 2); p.AppendLine("intermediate\""); Assert.AreEqual(p.context.IsInMultivar, false); Assert.AreEqual(p.context.StateNodeInstance.Substates.Count, 3); Assert.IsTrue(string.CompareOrdinal(p.context.StateNodeInstance.Substates[2].initialValue.Left, "multilineStart\r\nintermediate\"xxx\r\nintermediate") == 0); }
public void TestSimlink() { questdsl.Parser p = new questdsl.Parser(); p.AppendLine("--arg1 parameter"); Assert.AreEqual(p.context.symlinks.Count, 1); Assert.AreEqual(p.context.symlinks[0].VarName, "parameter"); p.AppendLine("--arg2 $parameternew "); Assert.AreEqual(p.context.symlinks.Count, 2); Assert.AreEqual(p.context.symlinks[1].VarName, "parameternew"); Assert.Throws <Exception>(() => p.AppendLine("--arg1 parameterb")); Assert.Throws <Exception>(() => p.AppendLine("--arg0 parameterb")); Assert.Throws <Exception>(() => p.AppendLine("--arg3 parameter")); }
public void TestPartTypes() { questdsl.Parser parser = new questdsl.Parser(); Assert.AreEqual(parser.EvaluatePartType("a.b"), questdsl.Parser.PartType.substate); Assert.AreEqual(parser.EvaluatePartType("a.$b"), questdsl.Parser.PartType.substate_subVar); Assert.AreEqual(parser.EvaluatePartType("$a.b"), questdsl.Parser.PartType.substate_stateVar); Assert.AreEqual(parser.EvaluatePartType("$a.$b"), questdsl.Parser.PartType.substate_allVar); Assert.AreEqual(parser.EvaluatePartType("\"string\""), questdsl.Parser.PartType.text_multiline); Assert.AreEqual(parser.EvaluatePartType("\"stri\"ng\""), questdsl.Parser.PartType.text_multiline); Assert.AreEqual(parser.EvaluatePartType("\"string xxx"), questdsl.Parser.PartType.text_multiline_start); Assert.AreEqual(parser.EvaluatePartType("3xxx string\""), questdsl.Parser.PartType.text_multiline_end); Assert.AreEqual(parser.EvaluatePartType("3xxx string\" "), questdsl.Parser.PartType.text_multiline_end); Assert.AreEqual(parser.EvaluatePartType("234235346546"), questdsl.Parser.PartType.digit); Dictionary <string, string> groups = new Dictionary <string, string>(); parser.EvaluatePartType("intermediate\"", groups); Assert.AreEqual(groups["string"], "intermediate"); groups.Clear(); parser.EvaluatePartType("\"intermediate", groups); Assert.AreEqual(groups["string"], "intermediate"); }
public void TestParserUtils() { questdsl.Parser parser = new questdsl.Parser(); List <string> parts = parser.SplitArgs("xxx xxx.yyy \"with spaces\" 333"); Assert.AreEqual(parts.Count, 4); Assert.AreEqual(parts[0], "xxx"); Assert.AreEqual(parts[1], "xxx.yyy"); Assert.AreEqual(parts[2], "with spaces"); Assert.AreEqual(parts[3], "333"); parts = parser.SplitArgs("xxx xxx.yyy \"with \\\" spaces\" 333"); Assert.AreEqual(parts.Count, 4); Assert.AreEqual(parts[0], "xxx"); Assert.AreEqual(parts[1], "xxx.yyy"); Assert.AreEqual(parts[2], "with \" spaces"); Assert.AreEqual(parts[3], "333"); parts = parser.SplitArgs(" rrrr"); Assert.AreEqual(parts[0], "rrrr"); Assert.Throws <Exception>(() => parser.SplitArgs("xxx xxx.yyy \"with \"spaces 333")); Assert.Throws <Exception>(() => parser.SplitArgs("xxx xxx.yyy \"with \"spaces\" 333")); }
public void TestValExpressions() { questdsl.Parser p = new questdsl.Parser(); questdsl.ExpressionValue val = p.ParseValue("abra"); Assert.AreEqual(val.TypeOfReference, questdsl.ExpressionValue.RefType.NotReferred); Assert.AreEqual(val.TypeOfValue, questdsl.ExpressionValue.ValueType.string_text); Assert.AreEqual(val.Left, "abra"); val = p.ParseValue("abra cadabbra"); Assert.AreEqual(val.TypeOfReference, questdsl.ExpressionValue.RefType.NotReferred); Assert.AreEqual(val.TypeOfValue, questdsl.ExpressionValue.ValueType.string_text); Assert.AreEqual(val.Left, "abra cadabbra"); val = p.ParseValue(" \"avvada ceddavra\" "); Assert.AreEqual(val.TypeOfReference, questdsl.ExpressionValue.RefType.NotReferred); Assert.AreEqual(val.TypeOfValue, questdsl.ExpressionValue.ValueType.string_text); Assert.AreEqual(val.Left, "avvada ceddavra"); val = p.ParseValue("4657"); Assert.AreEqual(val.TypeOfReference, questdsl.ExpressionValue.RefType.NotReferred); Assert.AreEqual(val.TypeOfValue, questdsl.ExpressionValue.ValueType.number); Assert.AreEqual(val.Left, null); Assert.AreEqual(val.Num, 4657); val = p.ParseValue("$variable"); Assert.AreEqual(val.TypeOfReference, questdsl.ExpressionValue.RefType.LocalVar); Assert.AreEqual(val.TypeOfValue, questdsl.ExpressionValue.ValueType.Reference); Assert.AreEqual(val.Left, "variable"); Assert.AreEqual(val.vars.Count, 1); Assert.AreEqual(val.vars[0], "variable"); Assert.Throws <Exception>(() => p.ParseValue("$variable with spaces")); val = p.ParseValue("$null"); Assert.AreEqual(val.TypeOfReference, questdsl.ExpressionValue.RefType.Null); Assert.AreEqual(val.TypeOfValue, questdsl.ExpressionValue.ValueType.Reference); Assert.AreEqual(val.Left, "null"); Assert.AreEqual(val.vars.Count, 1); Assert.AreEqual(val.vars[0], "null"); val = p.ParseValue(" null"); Assert.AreEqual(val.TypeOfReference, questdsl.ExpressionValue.RefType.Null); Assert.AreEqual(val.TypeOfValue, questdsl.ExpressionValue.ValueType.Reference); Assert.AreEqual(val.Left, "null"); Assert.AreEqual(val.vars.Count, 1); Assert.AreEqual(val.vars[0], "null"); val = p.ParseValue("$arg4"); Assert.AreEqual(val.TypeOfReference, questdsl.ExpressionValue.RefType.Arg); Assert.AreEqual(val.TypeOfValue, questdsl.ExpressionValue.ValueType.Reference); Assert.AreEqual(val.ArgOrListIndex, 3); Assert.AreEqual(val.Left, "arg4"); Assert.AreEqual(val.vars.Count, 1); Assert.AreEqual(val.vars[0], "arg4"); val = p.ParseValue("$list14"); Assert.AreEqual(val.TypeOfReference, questdsl.ExpressionValue.RefType.List); Assert.AreEqual(val.TypeOfValue, questdsl.ExpressionValue.ValueType.Reference); Assert.AreEqual(val.ArgOrListIndex, 13); Assert.AreEqual(val.Left, "list14"); Assert.AreEqual(val.vars.Count, 1); Assert.AreEqual(val.vars[0], "list14"); val = p.ParseValue("$image"); Assert.AreEqual(val.TypeOfReference, questdsl.ExpressionValue.RefType.Image); Assert.AreEqual(val.TypeOfValue, questdsl.ExpressionValue.ValueType.Reference); Assert.AreEqual(val.Left, "image"); Assert.AreEqual(val.vars.Count, 1); Assert.AreEqual(val.vars[0], "image"); val = p.ParseValue(" statename.subname "); Assert.AreEqual(val.TypeOfReference, questdsl.ExpressionValue.RefType.Substate); Assert.AreEqual(val.TypeOfValue, questdsl.ExpressionValue.ValueType.SubstateName); Assert.AreEqual(val.Left, "statename"); Assert.AreEqual(val.Right, "subname"); Assert.AreEqual(val.vars.Count, 0); val = p.ParseValue(" statename.$subname "); Assert.AreEqual(val.TypeOfReference, questdsl.ExpressionValue.RefType.Substate); Assert.AreEqual(val.TypeOfValue, questdsl.ExpressionValue.ValueType.StateName_SubstateRef); Assert.AreEqual(val.Left, "statename"); Assert.AreEqual(val.Right, "subname"); Assert.AreEqual(val.vars.Count, 1); Assert.AreEqual(val.vars[0], "subname"); val = p.ParseValue(" $statename.subname "); Assert.AreEqual(val.TypeOfReference, questdsl.ExpressionValue.RefType.Substate); Assert.AreEqual(val.TypeOfValue, questdsl.ExpressionValue.ValueType.StateRef_SubstateName); Assert.AreEqual(val.Left, "statename"); Assert.AreEqual(val.Right, "subname"); Assert.AreEqual(val.vars.Count, 1); Assert.AreEqual(val.vars[0], "statename"); val = p.ParseValue(" $statename.$subname "); Assert.AreEqual(val.TypeOfReference, questdsl.ExpressionValue.RefType.Substate); Assert.AreEqual(val.TypeOfValue, questdsl.ExpressionValue.ValueType.StateRef_SubstateRef); Assert.AreEqual(val.Left, "statename"); Assert.AreEqual(val.Right, "subname"); Assert.AreEqual(val.vars.Count, 2); Assert.AreEqual(val.vars[0], "statename"); Assert.AreEqual(val.vars[1], "subname"); }
public void TestBoolExpressions() { questdsl.Parser p = new questdsl.Parser(); p.AppendLine("a!=$c"); Assert.AreEqual(p.context.ProbesOr.Count, 1); Assert.AreEqual(p.context.ProbesOr[0].ExRightPart.TypeOfReference, questdsl.ExpressionValue.RefType.LocalVar); Assert.AreEqual(p.context.ProbesOr[0].ExLeftPart.TypeOfValue, questdsl.ExpressionValue.ValueType.string_text); p = new questdsl.Parser(); p.AppendLine("a string on left side !=$c"); Assert.AreEqual(p.context.ProbesOr.Count, 1); Assert.AreEqual(p.context.ProbesOr[0].ExRightPart.TypeOfReference, questdsl.ExpressionValue.RefType.LocalVar); Assert.AreEqual(p.context.ProbesOr[0].ExLeftPart.TypeOfValue, questdsl.ExpressionValue.ValueType.string_text); Assert.AreEqual(p.context.ProbesOr[0].ExLeftPart.Left, "a string on left side"); p = new questdsl.Parser(); p.AppendLine("\"a string on left side\" !=$c"); Assert.AreEqual(p.context.ProbesOr.Count, 1); Assert.AreEqual(p.context.ProbesOr[0].ExRightPart.TypeOfReference, questdsl.ExpressionValue.RefType.LocalVar); Assert.AreEqual(p.context.ProbesOr[0].ExLeftPart.TypeOfValue, questdsl.ExpressionValue.ValueType.string_text); Assert.AreEqual(p.context.ProbesOr[0].ExLeftPart.Left, "a string on left side"); Assert.Throws <Exception>(() => p.AppendLine("a!=c")); p = new questdsl.Parser(); p.AppendLine("$c == 41"); Assert.AreEqual(p.context.ProbesOr.Count, 1); Assert.AreEqual(p.context.ProbesOr[0].ExOperation, questdsl.ExpressionBool.Operation.eq); Assert.AreEqual(p.context.ProbesOr[0].ExLeftPart.TypeOfReference, questdsl.ExpressionValue.RefType.LocalVar); Assert.AreEqual(p.context.ProbesOr[0].ExRightPart.TypeOfValue, questdsl.ExpressionValue.ValueType.number); Assert.AreEqual(p.context.ProbesOr[0].ExRightPart.Num, 41); p = new questdsl.Parser(); p.AppendLine("$c != $param"); Assert.AreEqual(p.context.ProbesOr.Count, 1); Assert.AreEqual(p.context.ProbesOr[0].ExOperation, questdsl.ExpressionBool.Operation.neq); p = new questdsl.Parser(); p.AppendLine("$c > $param"); Assert.AreEqual(p.context.ProbesOr.Count, 1); Assert.AreEqual(p.context.ProbesOr[0].ExOperation, questdsl.ExpressionBool.Operation.bt); p = new questdsl.Parser(); p.AppendLine("$c >= $param"); Assert.AreEqual(p.context.ProbesOr.Count, 1); Assert.AreEqual(p.context.ProbesOr[0].ExOperation, questdsl.ExpressionBool.Operation.bteq); p = new questdsl.Parser(); p.AppendLine("$c < $param"); Assert.AreEqual(p.context.ProbesOr.Count, 1); Assert.AreEqual(p.context.ProbesOr[0].ExOperation, questdsl.ExpressionBool.Operation.lt); p = new questdsl.Parser(); p.AppendLine("$c <= $param"); Assert.AreEqual(p.context.ProbesOr.Count, 1); Assert.AreEqual(p.context.ProbesOr[0].ExOperation, questdsl.ExpressionBool.Operation.lteq); Assert.Throws <Exception>(() => p.AppendLine("$a=$x")); Assert.Throws <Exception>(() => p.AppendLine("")); p.AppendLine("----"); Assert.DoesNotThrow(() => p.AppendLine("$a=$x")); }
public void TestLineTypes() { questdsl.Parser parser = new questdsl.Parser(); Assert.AreEqual(parser.EvaluateLineType("\\commentary"), questdsl.Parser.LineType.comment); Assert.AreEqual(parser.EvaluateLineType("\\"), questdsl.Parser.LineType.comment); Assert.AreEqual(parser.EvaluateLineType(""), questdsl.Parser.LineType.empty); Assert.AreEqual(parser.EvaluateLineType(" "), questdsl.Parser.LineType.empty); Assert.AreEqual(parser.EvaluateLineType("----"), questdsl.Parser.LineType.section_separator); Assert.AreEqual(parser.EvaluateLineType("---"), questdsl.Parser.LineType.section_separator); Assert.AreEqual(parser.EvaluateLineType("----------"), questdsl.Parser.LineType.section_separator); Assert.AreEqual(parser.EvaluateLineType("substate: val"), questdsl.Parser.LineType.substate_declaration); Assert.AreEqual(parser.EvaluateLineType("$substate: val"), questdsl.Parser.LineType.substate_declaration); Assert.AreEqual(parser.EvaluateLineType("substate.x: val"), questdsl.Parser.LineType.substate_declaration); Assert.AreEqual(parser.EvaluateLineType("substate: $val"), questdsl.Parser.LineType.substate_declaration); Assert.AreEqual(parser.EvaluateLineType("substate.$: val"), questdsl.Parser.LineType.substate_declaration); Assert.AreEqual(parser.EvaluateLineType(">xxx hey"), questdsl.Parser.LineType.dialogue_say); Assert.AreEqual(parser.EvaluateLineType("> xxx hey"), questdsl.Parser.LineType.dialogue_say); Assert.AreEqual(parser.EvaluateLineType(" >xxx hey"), questdsl.Parser.LineType.dialogue_say); Assert.AreEqual(parser.EvaluateLineType(" > xxx hey"), questdsl.Parser.LineType.dialogue_say); Assert.AreEqual(parser.EvaluateLineType(" > xxx hey"), questdsl.Parser.LineType.dialogue_say); Assert.AreEqual(parser.EvaluateLineType(" > xxx \"hey"), questdsl.Parser.LineType.dialogue_say); Assert.AreEqual(parser.EvaluateLineType(" > xxx \"hey\""), questdsl.Parser.LineType.dialogue_say); Assert.AreEqual(parser.EvaluateLineType(" > xxx \"hxe\"cy\""), questdsl.Parser.LineType.dialogue_say); Assert.AreEqual(parser.EvaluateLineType("> ! \"hi"), questdsl.Parser.LineType.dialogue_say); Assert.AreEqual(parser.EvaluateLineType(">! \"hi"), questdsl.Parser.LineType.dialogue_say); Assert.AreEqual(parser.EvaluateLineType(">? ..."), questdsl.Parser.LineType.dialogue_say); Assert.AreEqual(parser.EvaluateLineType("--arg9 mnemo"), questdsl.Parser.LineType.symlink); Assert.AreEqual(parser.EvaluateLineType(" "), questdsl.Parser.LineType.empty); Assert.AreEqual(parser.EvaluateLineType("a>b"), questdsl.Parser.LineType.condition); Assert.AreEqual(parser.EvaluateLineType("a<b"), questdsl.Parser.LineType.condition); Assert.AreEqual(parser.EvaluateLineType("a==b"), questdsl.Parser.LineType.condition); Assert.AreEqual(parser.EvaluateLineType("a!=b"), questdsl.Parser.LineType.condition); Assert.AreEqual(parser.EvaluateLineType("a>=b"), questdsl.Parser.LineType.condition); Assert.AreEqual(parser.EvaluateLineType("a<=b"), questdsl.Parser.LineType.condition); Assert.AreEqual(parser.EvaluateLineType("a=>b"), questdsl.Parser.LineType.undetermined); Assert.AreEqual(parser.EvaluateLineType("a=<b"), questdsl.Parser.LineType.undetermined); Assert.AreEqual(parser.EvaluateLineType("<"), questdsl.Parser.LineType.undetermined); Assert.AreEqual(parser.EvaluateLineType("<<"), questdsl.Parser.LineType.undetermined); Assert.AreEqual(parser.EvaluateLineType(">"), questdsl.Parser.LineType.undetermined); Assert.AreEqual(parser.EvaluateLineType("!x"), questdsl.Parser.LineType.undetermined); Assert.AreEqual(parser.EvaluateLineType("a!b"), questdsl.Parser.LineType.undetermined); Assert.AreEqual(parser.EvaluateLineType("a=b"), questdsl.Parser.LineType.executive); Assert.AreEqual(parser.EvaluateLineType("a++"), questdsl.Parser.LineType.executive); Assert.AreEqual(parser.EvaluateLineType("a+=b"), questdsl.Parser.LineType.executive); Assert.AreEqual(parser.EvaluateLineType("a--"), questdsl.Parser.LineType.executive); Assert.AreEqual(parser.EvaluateLineType("a-=b"), questdsl.Parser.LineType.executive); Assert.AreEqual(parser.EvaluateLineType("a=b"), questdsl.Parser.LineType.executive); Assert.AreEqual(parser.EvaluateLineType("a=$b"), questdsl.Parser.LineType.executive); Assert.AreEqual(parser.EvaluateLineType("a=$b.b"), questdsl.Parser.LineType.executive); Assert.AreEqual(parser.EvaluateLineType("a=b.$b"), questdsl.Parser.LineType.executive); Assert.AreEqual(parser.EvaluateLineType("a=$b.$b"), questdsl.Parser.LineType.executive); Assert.AreEqual(parser.EvaluateLineType("$a =string value"), questdsl.Parser.LineType.executive); Assert.AreEqual(parser.EvaluateLineType("a=b+c"), questdsl.Parser.LineType.executive_assign_op); Assert.AreEqual(parser.EvaluateLineType("a=b-c"), questdsl.Parser.LineType.executive_assign_op); Assert.AreEqual(parser.EvaluateLineType("a=b*c"), questdsl.Parser.LineType.executive_assign_op); Assert.AreEqual(parser.EvaluateLineType("a=b/c"), questdsl.Parser.LineType.executive_assign_op); Assert.AreEqual(parser.EvaluateLineType("a=b%c"), questdsl.Parser.LineType.executive_assign_op); Assert.AreEqual(parser.EvaluateLineType("-->a"), questdsl.Parser.LineType.executive_invocation); Assert.AreEqual(parser.EvaluateLineType(" -->ToList somestate "), questdsl.Parser.LineType.executive_invocation); Assert.AreEqual(parser.EvaluateLineType("-->a c d e"), questdsl.Parser.LineType.executive_invocation); Assert.AreEqual(parser.EvaluateLineType("-->a c d $e"), questdsl.Parser.LineType.executive_invocation); Assert.AreEqual(parser.EvaluateLineType("-->a c d $e.e"), questdsl.Parser.LineType.executive_invocation); Assert.AreEqual(parser.EvaluateLineType("-->a c d $e.$e"), questdsl.Parser.LineType.executive_invocation); Assert.AreEqual(parser.EvaluateLineType("-->a c d e.$e"), questdsl.Parser.LineType.executive_invocation); Assert.AreEqual(parser.EvaluateLineType("="), questdsl.Parser.LineType.undetermined); Assert.AreEqual(parser.EvaluateLineType("a="), questdsl.Parser.LineType.undetermined); Assert.AreEqual(parser.EvaluateLineType("=a"), questdsl.Parser.LineType.undetermined); Assert.AreEqual(parser.EvaluateLineType("a===a"), questdsl.Parser.LineType.undetermined); Assert.AreEqual(parser.EvaluateLineType("===a"), questdsl.Parser.LineType.undetermined); Assert.AreEqual(parser.EvaluateLineType("a==="), questdsl.Parser.LineType.undetermined); }