public void TestClicks() { Cursor.Vector = new System.Windows.Vector(0, 0); Click click = new Click( new IntTuple(546, 22), new IntTuple(234, 4), ButtonType.MIDDLE, MovementType.SPRING, new IntTuple(789, 43), new IntTuple(34, 342), new DoubleTuple(4.2, 3.9), true, true, true); AutoClickerParser parser = SetUp(click.ToString()); AutoClickerParser.InstructionsContext context = parser.instructions(); AutoClickerVisitor visitor = new AutoClickerVisitor(); Click parsed = (Click)((List <AutoClicker.Instructions.Instruction>)visitor.Visit(context))[0]; Assert.Equal(click, parsed); }
public void ParseTest() { string input = testClick.ToString() + "\n"; input += testHover.ToString() + "\n"; input += testDrag.ToString() + "\n"; input += testKeystroke.ToString() + "\n"; AutoClickerParser parser = SetUp(input.ToString()); AutoClickerParser.InstructionsContext context = parser.instructions(); AutoClickerVisitor visitor = new AutoClickerVisitor(); List <Instructions.Instruction> instructions = (List <Instructions.Instruction>)visitor.Visit(context); Assert.IsTrue(instructions.Contains(testClick)); Assert.IsTrue(instructions.Contains(testHover)); Assert.IsTrue(instructions.Contains(testDrag)); Assert.IsTrue(instructions.Contains(testKeystroke)); }
/// <summary> /// Visit a parse tree produced by <see cref="M:AutoClicker.AutoClickerParser.instructions" />. /// <para> /// The default implementation returns the result of calling <see cref="M:Antlr4.Runtime.Tree.AbstractParseTreeVisitor`1.VisitChildren(Antlr4.Runtime.Tree.IRuleNode)" /> /// on <paramref name="context" />. /// </para> /// </summary> /// <param name="context">The parse tree.</param> /// <returns></returns> /// <return>The visitor result.</return> public override List <Instructions.Instruction> VisitInstructions([NotNull] AutoClickerParser.InstructionsContext context) { AutoClickerInstructionVisitor instructionVisitor = new AutoClickerInstructionVisitor(); List <Instruction> instructions = new List <Instruction>(); foreach (var instruction in context.instruction()) { try { instructions.Add(instructionVisitor.Visit(instruction)); } catch (Exception e) { Console.WriteLine(e.Message); } } return(instructions); }
/// <summary> /// Parses the specified input. /// </summary> /// <param name="input">The input.</param> /// <returns></returns> public static List <Instruction> Parse(string input, GlobalData globalData = null) { AntlrInputStream inputStream = new AntlrInputStream(input); AutoClickerLexer lexer = new AutoClickerLexer(inputStream); CommonTokenStream commonTokenStream = new CommonTokenStream(lexer); AutoClickerParser parser = new AutoClickerParser(commonTokenStream); AutoClickerParser.InstructionsContext context = parser.instructions(); AutoClickerInstructionsVisitor visitor = new AutoClickerInstructionsVisitor(); List <Instruction> instructions = visitor.Visit(context); if (globalData != null) { foreach (var instruction in instructions) { instruction.GlobalData = globalData; } } return(instructions); }