From 60ac2203d04abc280dc664126103d40088603da1 Mon Sep 17 00:00:00 2001 From: David Dyck Date: Sun, 14 Jun 2020 20:01:28 -0700 Subject: [PATCH] Fix issue Failure to parse ZEROBASEDSTRINGS compiler directive Fix issue Failure to parse ZEROBASEDSTRINGS compiler directive joewhite#6 https://github.com/joewhite/dgrok/issues/6 Add an ignored directive type for ZEROBASEDSTRINGS to Source/DGrok.Framework/Framework/TokenFilter.cs Add a new test case ZeroBasedStringsCompilerDirectivesAreIgnored() to verifiy that {$ZEROBASEDSTRINGS ... } is ignored ( doesn't really check the value of the parameter ON/OFF ) --- Source/DGrok.Framework/Framework/TokenFilter.cs | 1 + Source/DGrok.Tests/TokenFilterTests.cs | 6 ++++++ 2 files changed, 7 insertions(+) mode change 100644 => 100755 Source/DGrok.Framework/Framework/TokenFilter.cs mode change 100644 => 100755 Source/DGrok.Tests/TokenFilterTests.cs diff --git a/Source/DGrok.Framework/Framework/TokenFilter.cs b/Source/DGrok.Framework/Framework/TokenFilter.cs old mode 100644 new mode 100755 index f93665b..18ee46b --- a/Source/DGrok.Framework/Framework/TokenFilter.cs +++ b/Source/DGrok.Framework/Framework/TokenFilter.cs @@ -133,6 +133,7 @@ public TokenFilter(IEnumerable tokens, CompilerDefines compilerDefines, _directiveTypes["WARNINGS"] = DirectiveType.Ignored; _directiveTypes["WEAKPACKAGEUNIT"] = DirectiveType.Ignored; _directiveTypes["WRITEABLECONST"] = DirectiveType.Ignored; + _directiveTypes["ZEROBASEDSTRINGS"] = DirectiveType.Ignored; // Directives for generation of C++Builder .hpp files _directiveTypes["EXTERNALSYM"] = DirectiveType.Ignored; _directiveTypes["HPPEMIT"] = DirectiveType.Ignored; diff --git a/Source/DGrok.Tests/TokenFilterTests.cs b/Source/DGrok.Tests/TokenFilterTests.cs old mode 100644 new mode 100755 index e23a715..c3f8a63 --- a/Source/DGrok.Tests/TokenFilterTests.cs +++ b/Source/DGrok.Tests/TokenFilterTests.cs @@ -95,6 +95,12 @@ public void CPlusPlusBuilderCompilerDirectivesAreIgnored() Assert.That("{$NOINCLUDE Foo}", LexesAndFiltersAs()); } [Test] + public void ZeroBasedStringsCompilerDirectivesAreIgnored() + { + Assert.That("{$ZEROBASEDSTRINGS ON}", LexesAndFiltersAs()); + Assert.That("{$ZEROBASEDSTRINGS OFF}", LexesAndFiltersAs()); + } + [Test] public void IfDefTrue() { Assert.That("0{$IFDEF TRUE}1{$ENDIF}2", LexesAndFiltersAs(