Пример #1
0
    public virtual Differences VisitStatementSnippet(StatementSnippet snippet1, StatementSnippet snippet2){
      Differences differences = new Differences(snippet1, snippet2);
      if (snippet1 == null || snippet2 == null){
        if (snippet1 != snippet2) differences.NumberOfDifferences++; else differences.NumberOfSimilarities++;
        return differences;
      }
      StatementSnippet changes = (StatementSnippet)snippet2.Clone();
      StatementSnippet deletions = (StatementSnippet)snippet2.Clone();
      StatementSnippet insertions = (StatementSnippet)snippet2.Clone();

      if (snippet1.SourceContext.Document == null || snippet2.SourceContext.Document == null){
        if (snippet1.SourceContext.Document == snippet2.SourceContext.Document) differences.NumberOfSimilarities++; else differences.NumberOfDifferences++;
      }else if (snippet1.SourceContext.Document.Name == snippet2.SourceContext.Document.Name) 
        differences.NumberOfSimilarities++; else differences.NumberOfDifferences++;

      if (differences.NumberOfDifferences == 0){
        differences.Changes = null;
        differences.Deletions = null;
        differences.Insertions = null;
      }else{
        differences.Changes = changes;
        differences.Deletions = deletions;
        differences.Insertions = insertions;
      }
      return differences;
    }
Пример #2
0
 public virtual StatementSnippet VisitStatementSnippet(StatementSnippet snippet, StatementSnippet changes, StatementSnippet deletions, StatementSnippet insertions){
   this.UpdateSourceContext(snippet, changes);
   if (snippet == null) return changes;
   if (changes != null){
     if (deletions == null || insertions == null)
       Debug.Assert(false);
     else{
     }
   }else if (deletions != null)
     return null;
   return snippet;
 }
Пример #3
0
 public virtual StatementSnippet VisitStatementSnippet(StatementSnippet snippet){
   return snippet;
 }
Пример #4
0
 public override StatementSnippet VisitStatementSnippet(StatementSnippet snippet){
   if (snippet == null) return null;
   Document doc = snippet.SourceContext.Document;
   if (doc == null) return null;
   string fileName = doc.Name;
   int lineNumber = doc.LineNumber;
   DocumentText sourceText = doc.Text;
   IParserFactory pf = snippet.ParserFactory;
   IParser p;
   if (pf == null)
     p = this.DefaultParserFactory.CreateParser(fileName, lineNumber, sourceText, this.SymbolTable, this.ErrorNodes, this.Options);
   else
     p = pf.CreateParser(fileName, lineNumber, sourceText, this.SymbolTable, this.ErrorNodes, this.Options);
   if (p == null) return null;
   p.ParseStatements(this.CurrentStatementList);
   return null;
 }
 public override StatementSnippet VisitStatementSnippet(StatementSnippet snippet)
 {
   throw new ApplicationException("unimplemented");
 }
Пример #6
0
 public virtual void VisitStatementSnippet(StatementSnippet snippet)
 {
 }
Пример #7
0
 public override StatementSnippet VisitStatementSnippet(StatementSnippet snippet)
 {
     if (snippet == null) return null;
     return base.VisitStatementSnippet((StatementSnippet)snippet.Clone());
 }
Пример #8
0
 public virtual StatementSnippet VisitStatementSnippet(StatementSnippet snippet1, StatementSnippet snippet2)
 {
     return snippet1;
 }
Пример #9
0
 private Statement Translate(CodeSnippetStatement statement){
   if (statement == null) return null;
   StatementSnippet snippet = new StatementSnippet();
   Document doc = null;
   if (statement.LinePragma == null)
     doc = this.compiler.CreateDocument(null, 1, statement.Value);
   else
     doc = this.compiler.CreateDocument(statement.LinePragma.FileName, statement.LinePragma.LineNumber, statement.Value);
   snippet.SourceContext = new SourceContext(doc, 0, doc.Text.Length);
   return snippet;
 }
Пример #10
0
 public override StatementSnippet VisitStatementSnippet(StatementSnippet snippet)
 {
     System.Compiler.Parser p = this.DefaultCompiler.CreateParser(snippet.SourceContext.Document, this.ErrorNodes);
     p.ParseStatements(this.CurrentStatementList);
     return(null);
 }
Пример #11
0
 public override StatementSnippet VisitStatementSnippet(StatementSnippet snippet)
 {
     throw new ApplicationException("unimplemented");
 }