예제 #1
0
 private void RemoveNamespace(List <string> lines, ScriptAnalyzerResult analyzerResult)
 {
     if (analyzerResult.NamespaceIndex.HasValue)
     {
         lines.RemoveAt(analyzerResult.NamespaceIndex.Value);
         lines.RemoveAt(analyzerResult.NamespaceIndex.Value);
         var indexOfLastClosingCurlyBracket = lines.LastIndexOf("}");
         lines.RemoveAt(indexOfLastClosingCurlyBracket);
     }
 }
예제 #2
0
        public ScriptAnalyzerResult Analyze(List <string> lines)
        {
            ScriptAnalyzerResult analyzerResult = new ScriptAnalyzerResult();
            int i = 0;

            while (true)
            {
                if (i >= lines.Count)
                {
                    break;
                }

                string line = lines[i].TrimStart();

                foreach (var processor in _processors)
                {
                    bool ret = processor.Process(analyzerResult, line, i);

                    if (!string.IsNullOrEmpty(analyzerResult.ClassName))
                    {
                        RemoveNamespace(lines, analyzerResult);
                        return(analyzerResult);
                    }

                    if (ret)
                    {
                        lines.RemoveAt(i);
                        i--;
                        break;
                    }
                }

                i++;
            }

            return(analyzerResult);
        }