示例#1
0
        public override bool test(ITokenCollection semi)
        {
            Display.displayRules(actionDelegate, "rule   DetectUsing");
            int index;

            semi.find("using", out index);
            if (index != -1 && semi.size() > index + 1)
            {
                ITokenCollection local = Factory.create();
                // create local semiExp with tokens for type and name
                if (!semi.ToString().Contains("System") && !semi.ToString().Contains("="))
                {
                    local.add(semi[index]).add(semi[index + 1]);

                    doActions(local);
                    return(true);
                }
            }
            return(false);
        }
        public void displaysemi(List <string> arguments, string displaytokenfile)
        {
            ITokenCollection  semi    = Factory.create();
            BuildTypeAnalyzer builder = new BuildTypeAnalyzer(semi);
            Parser            parser  = builder.build();
            Repository        repo    = Repository.getInstance();

            foreach (string file in arguments)
            {
                List <string> Semicollection = new List <string>();
                if (file.Contains("TemporaryGeneratedFile"))
                {
                    continue;
                }
                if (!semi.open(file as string))
                {
                    //Console.Write("\n  Can't open {0}\n\n", args[0]);
                    continue;
                }

                repo.currentFile = file;
                repo.locations.Clear();

                try
                {
                    while (semi.get().Count > 0)
                    {
                        Console.WriteLine(semi.ToString());
                        Semicollection.Add(semi.ToString());
                    }
                    parser.parse(semi);
                }
                catch (Exception ex)
                {
                    Console.Write("\n\n  {0}\n", ex.Message);
                }
                WriteFile(displaytokenfile, Semicollection);
            }
        }
示例#3
0
        public void parse(ITokenCollection semi)
        {
            // Note: rule returns true to tell parser to stop
            //       processing the current semiExp

            Display.displaySemiString(semi.ToString());

            foreach (var rule in Rules)
            {
                if (rule.test(semi))
                {
                    break;
                }
            }
        }