From 13a5a3e693868363679f2337d6b929066d498746 Mon Sep 17 00:00:00 2001 From: Hackerpilot Date: Mon, 26 Jan 2015 13:13:12 -0800 Subject: [PATCH] Minor fixes --- src/analysis/numbers.d | 1 + src/analysis/unmodified.d | 12 ++++++++---- src/astprinter.d | 1 - src/imports.d | 5 +++-- 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/analysis/numbers.d b/src/analysis/numbers.d index 2227589..bc67da3 100644 --- a/src/analysis/numbers.d +++ b/src/analysis/numbers.d @@ -30,6 +30,7 @@ public: override void visit(const Token t) { + import std.algorithm : startsWith; if (isNumberLiteral(t.type) && !t.text.startsWith("0x") && ((t.text.startsWith("0b") && !t.text.matchFirst(badBinaryRegex).empty) || !t.text.matchFirst(badDecimalRegex).empty)) diff --git a/src/analysis/unmodified.d b/src/analysis/unmodified.d index b272f53..419b3c3 100644 --- a/src/analysis/unmodified.d +++ b/src/analysis/unmodified.d @@ -108,17 +108,21 @@ class UnmodifiedFinder:BaseAnalyzer dec.accept(this); } + override void visit(const IdentifierChain ic) + { + if (ic.identifiers.length && interest > 0) + variableMightBeModified(ic.identifiers[0].text); + ic.accept(this); + } + override void visit(const IdentifierOrTemplateInstance ioti) { -// import std.stdio : stderr; -// stderr.writeln(ioti.identifier.text, " ", ioti.identifier.line); if (ioti.identifier != tok!"" && interest > 0) - { variableMightBeModified(ioti.identifier.text); - } ioti.accept(this); } + mixin PartsMightModify!AsmPrimaryExp; mixin PartsMightModify!IndexExpression; mixin PartsMightModify!SliceExpression; mixin PartsMightModify!FunctionCallExpression; diff --git a/src/astprinter.d b/src/astprinter.d index 5d0bed0..89411c3 100644 --- a/src/astprinter.d +++ b/src/astprinter.d @@ -91,7 +91,6 @@ class XMLPrinter : ASTVisitor visit(asmInstruction.identifierOrIntegerOrOpcode); if (asmInstruction.operands !is null) { - stderr.writeln("operands is not null"); visit(asmInstruction.operands); } output.writeln(""); diff --git a/src/imports.d b/src/imports.d index 5009a68..2cdfa96 100644 --- a/src/imports.d +++ b/src/imports.d @@ -43,8 +43,9 @@ class ImportPrinter : ASTVisitor alias visit = ASTVisitor.visit; -private: - + /// Collected imports RedBlackTree!string imports; + +private: bool ignore = true; }