class ASTDiff::Impl

Declaration

class ASTDiff::Impl { /* full declaration omitted */ };

Declared at: clang/lib/Tooling/ASTDiff/ASTDiff.cpp:57

Member Variables

public SyntaxTree::Impl& T1
public SyntaxTree::Impl& T2
public anonymous struct / union TheMapping
private const clang::diff::ComparisonOptions& Options

Method Overview

  • public Impl(SyntaxTree::Impl & T1, SyntaxTree::Impl & T2, const clang::diff::ComparisonOptions & Options)
  • private void addOptimalMapping(clang::diff::(anonymous namespace)::Mapping & M, clang::diff::NodeId Id1, clang::diff::NodeId Id2) const
  • public void computeChangeKinds(clang::diff::(anonymous namespace)::Mapping & M)
  • public void computeMapping()
  • private clang::diff::NodeId findCandidate(const clang::diff::(anonymous namespace)::Mapping & M, clang::diff::NodeId Id1) const
  • private double getJaccardSimilarity(const clang::diff::(anonymous namespace)::Mapping & M, clang::diff::NodeId Id1, clang::diff::NodeId Id2) const
  • public clang::diff::NodeId getMapped(const std::unique_ptr<SyntaxTree::Impl> & Tree, clang::diff::NodeId Id) const
  • private bool haveSameParents(const clang::diff::(anonymous namespace)::Mapping & M, clang::diff::NodeId Id1, clang::diff::NodeId Id2) const
  • private bool identical(clang::diff::NodeId Id1, clang::diff::NodeId Id2) const
  • private bool isMatchingPossible(clang::diff::NodeId Id1, clang::diff::NodeId Id2) const
  • private void matchBottomUp(clang::diff::(anonymous namespace)::Mapping & M) const
  • private clang::diff::(anonymous namespace)::Mapping matchTopDown() const

Methods

Impl(
    SyntaxTree::Impl& T1,
    SyntaxTree::Impl& T2,
    const clang::diff::ComparisonOptions& Options)

Declared at: clang/lib/Tooling/ASTDiff/ASTDiff.cpp:62

Parameters

SyntaxTree::Impl& T1
SyntaxTree::Impl& T2
const clang::diff::ComparisonOptions& Options

void addOptimalMapping(
    clang::diff::(
        anonymous namespace)::Mapping& M,
    clang::diff::NodeId Id1,
    clang::diff::NodeId Id2) const

Declared at: clang/lib/Tooling/ASTDiff/ASTDiff.cpp:91

Parameters

clang::diff::(anonymous namespace)::Mapping& M
clang::diff::NodeId Id1
clang::diff::NodeId Id2

void computeChangeKinds(clang::diff::(
    anonymous namespace)::Mapping& M)

Declared at: clang/lib/Tooling/ASTDiff/ASTDiff.cpp:69

Parameters

clang::diff::(anonymous namespace)::Mapping& M

void computeMapping()

Description

Matches nodes one-by-one based on their similarity.

Declared at: clang/lib/Tooling/ASTDiff/ASTDiff.cpp:66

clang::diff::NodeId findCandidate(
    const clang::diff::(
        anonymous namespace)::Mapping& M,
    clang::diff::NodeId Id1) const

Declared at: clang/lib/Tooling/ASTDiff/ASTDiff.cpp:98

Parameters

const clang::diff::(anonymous namespace)::Mapping& M
clang::diff::NodeId Id1

double getJaccardSimilarity(
    const clang::diff::(
        anonymous namespace)::Mapping& M,
    clang::diff::NodeId Id1,
    clang::diff::NodeId Id2) const

Declared at: clang/lib/Tooling/ASTDiff/ASTDiff.cpp:95

Parameters

const clang::diff::(anonymous namespace)::Mapping& M
clang::diff::NodeId Id1
clang::diff::NodeId Id2

clang::diff::NodeId getMapped(
    const std::unique_ptr<SyntaxTree::Impl>& Tree,
    clang::diff::NodeId Id) const

Declared at: clang/lib/Tooling/ASTDiff/ASTDiff.cpp:71

Parameters

const std::unique_ptr<SyntaxTree::Impl>& Tree
clang::diff::NodeId Id

bool haveSameParents(
    const clang::diff::(
        anonymous namespace)::Mapping& M,
    clang::diff::NodeId Id1,
    clang::diff::NodeId Id2) const

Declared at: clang/lib/Tooling/ASTDiff/ASTDiff.cpp:87

Parameters

const clang::diff::(anonymous namespace)::Mapping& M
clang::diff::NodeId Id1
clang::diff::NodeId Id2

bool identical(clang::diff::NodeId Id1,
               clang::diff::NodeId Id2) const

Declared at: clang/lib/Tooling/ASTDiff/ASTDiff.cpp:81

Parameters

clang::diff::NodeId Id1
clang::diff::NodeId Id2

bool isMatchingPossible(
    clang::diff::NodeId Id1,
    clang::diff::NodeId Id2) const

Declared at: clang/lib/Tooling/ASTDiff/ASTDiff.cpp:84

Parameters

clang::diff::NodeId Id1
clang::diff::NodeId Id2

void matchBottomUp(clang::diff::(
    anonymous namespace)::Mapping& M) const

Declared at: clang/lib/Tooling/ASTDiff/ASTDiff.cpp:104

Parameters

clang::diff::(anonymous namespace)::Mapping& M

clang::diff::(anonymous namespace)::Mapping
    matchTopDown() const

Declared at: clang/lib/Tooling/ASTDiff/ASTDiff.cpp:101