Esempio n. 1
0
            override public void NewCommand(string command)
            {
                if (string.IsNullOrEmpty(command))
                {
                    return;
                }

                Console.WriteLine("");
                Console.WriteLine("========== VOICE COMMAND START ===========");
                Console.WriteLine("Received new voice command {0}", command);
                Instruction    instruction = new Instruction(command.Trim(), GetApplianceNames());
                MainExpression expression  = new MainExpression();
                bool           matchFound  = expression.Interpret(instruction);

                Console.WriteLine(this.GetType().Name + (matchFound ? "-Match found." : "-Match not found."), command);

                if (matchFound)
                {
                    var applianceResult = appliances.Single(item =>
                                                            item.GetApplianceNickName().ToLower() == instruction.GetApplianceNickName().ToLower());

                    Appliance appliance = applianceResult as Appliance;
                    appliance.Perform(instruction.GetAction(), instruction.GetActionParams());
                }
                Console.WriteLine("========== VOICE COMMAND END ===========");
            }
Esempio n. 2
0
        // List<LiftedFunctionExpression> Functions;
        // Expression MainExpression;

        public Trac42Program Compile()
        {
            var state   = new GeneratorState();
            var program = new Trac42Program();

            Functions.ForEach(function => function.Compile(state, program));
            program.Emit(new Instruction(Instruction.OPCODE.LABEL, "main"));

            MainExpression.Compile(state, program);
            program.Emit(new Instruction(Instruction.OPCODE.END));
            return(program);
        }
        // List<LiftedFunctionExpression> Functions;
        // Expression MainExpression;

        public override string ToString()
        {
            var builder = new PrettyBuilder();

            Functions.ForEach(
                function => {
                function.Pretty(builder);
                builder.NewLine();
            });
            MainExpression.Pretty(builder);
            return(builder.ToString());
        }