Extract define directives

This commit is contained in:
Tamas Vajk
2021-01-19 17:15:14 +01:00
parent 94bf3467b7
commit 9b405144ff
7 changed files with 50 additions and 1 deletions

View File

@@ -0,0 +1,18 @@
using Microsoft.CodeAnalysis.CSharp.Syntax;
using System.IO;
namespace Semmle.Extraction.CSharp.Entities
{
internal class DefineDirective : PreprocessorDirective<DefineDirectiveTriviaSyntax>
{
public DefineDirective(Context cx, DefineDirectiveTriviaSyntax trivia)
: base(cx, trivia)
{
}
protected override void PopulatePreprocessor(TextWriter trapFile)
{
trapFile.directive_defines(this, trivia.Name.ToString());
}
}
}

View File

@@ -22,5 +22,10 @@ namespace Semmle.Extraction.CSharp.Populators
{
new Entities.PragmaChecksumDirective(cx, node);
}
public override void VisitDefineDirectiveTrivia(DefineDirectiveTriviaSyntax node)
{
new Entities.DefineDirective(cx, node);
}
}
}

View File

@@ -620,5 +620,10 @@ namespace Semmle.Extraction.CSharp
{
trapFile.WriteTuple("pragma_checksums", pragma, file, guid, bytes);
}
internal static void directive_defines(this TextWriter trapFile, DefineDirective directive, string name)
{
trapFile.WriteTuple("directive_defines", directive, name);
}
}
}