mirror of
https://github.com/github/codeql.git
synced 2026-04-30 11:15:13 +02:00
Extract define directives
This commit is contained in:
@@ -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());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user