diff --git a/highlighting.xml b/highlighting.xml
new file mode 100644
index 0000000..dcd6adc
--- /dev/null
+++ b/highlighting.xml
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
+ 00# 00// 01 02 03/* 04*/
+
+ x
+ a b c d e f A B C D E F
+
+
+
+
+ < <= = => > .. :
+
+ {
+
+ }
+
+
+
+
+
+
+ ItemLevel DropLevel Quality Sockets LinkedSockets Height Width StackSize GemLevel MapTier
Rarity Class BaseType Prophecy HasExplicitMod HasEnchantment
Identified Corrupted ElderItem ShaperItem ShapedMap FracturedItem SynthesisedItem AnyEnchantment
SocketGroup
SetFontSize SetTextSize SetBorderColor SetTextColor SetFontColor SetBackgroundColor
PlayAlertSound PlayAlertSoundPositional
CustomAlertSound MinimapIcon PlayEffect DisableDropSound
+ true false
Normal Magic Rare Unique
ShAlchemy ShBlessed ShChaos ShDivine ShExalted ShFusing ShGeneral ShMirror ShRegal ShVaal
Blue Brown Green Red White Yellow
Circle Diamond Hexagon Square Star Triangle
Temp
+ Define Version Rule Modifier Default DefaultIgnore Hide Hidden UseStyle
Number Color File List Style
+ Override
+ $
+
+
+
+ 00" 01 02" 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/makefile b/makefile
index 6c0cb6e..3c93bb2 100644
--- a/makefile
+++ b/makefile
@@ -1,14 +1,8 @@
GenDir = gen
SrcDir = src
-TestDir = tests
GenClass = Lexer Parser
-SrcClass = Types Logger Context ParserWrapper
-#ifppDriver ifppRuleOperations ifppCompiler
-
-TestParse = basicSyntax
-TestCompile = overrideWithoutChange overrideSameAction overrideNumeric nameLists incremental
-AllTests = $(TestParse) $(TestCompile)
+SrcClass = Types Logger Context RuleNative Compiler
GenObj = $(addprefix $(GenDir)/,$(addsuffix .o,$(GenClass)))
SrcObj = $(addprefix $(GenDir)/,$(addsuffix .o,$(SrcClass)))
@@ -16,8 +10,8 @@ AllObjs = $(GenObj) $(SrcObj)
Flex = flex -i
Bison = bison
-Gcc = g++ -Wall -Wextra -pedantic -I src -I gen
-GccStrict = g++ -Wall -Wextra -pedantic -Weffc++ -Werror -I src -I gen
+Gcc = g++ -Wall -Wextra -pedantic -Wno-unused-function -Wfatal-errors -I src -I gen
+GccStrict = g++ -Wall -Wextra -pedantic -Weffc++ -Werror -Wfatal-errors -I src -I gen
.PHONY: lex parser analyze tests doc clean
@@ -26,20 +20,16 @@ ifpp: $(AllObjs) src/ifpp.cpp
lex: $(GenDir)/Lexer.cpp $(GenDir)/Lexer.h
-parser: $(GenDir)/Parser.cpp $(GenDir)/Parser.h
+parser: $(GenDir)/Parser.cpp $(GenDir)/Parser.h $(GenDir)/location.hh $(GenDir)/position.hh
analyze: src/Parser.y
$(Bison) -Wall --report=all --report-file=BisonReport.txt $<
-tests: $(AllTests)
-
doc: doc/ifpp-manual.html
clean:
-rm gen/*
- -rm tests/*.parsed.ifpp
- -rm tests/*.partial.ifpp
- -rm tests/*.filter
+ -rm doc/*
-rm ifpp.exe
@@ -47,28 +37,15 @@ clean:
$(GenDir)/Lexer.cpp $(GenDir)/Lexer.h: $(SrcDir)/Lexer.l $(SrcDir)/Types.h $(GenDir)/Parser.h
$(Flex) --outfile="gen/Lexer.cpp" --header-file="gen/Lexer.h" $(SrcDir)/Lexer.l
-$(GenDir)/Parser.cpp $(GenDir)/Parser.h $(GenDir)/location.hh: $(SrcDir)/Parser.y $(SrcDir)/Types.h $(SrcDir)/Context.h
+$(GenDir)/Parser.cpp $(GenDir)/Parser.h $(GenDir)/location.hh $(GenDir)/position.hh: $(SrcDir)/Parser.y $(SrcDir)/Types.h $(SrcDir)/Context.h
$(Bison) --output="gen/Parser.cpp" --defines="gen/Parser.h" $(SrcDir)/Parser.y
-$(GenObj): $(GenDir)/%.o: $(GenDir)/%.cpp $(SrcDir)/Types.h $(SrcDir)/Logger.h
+$(GenObj): $(GenDir)/%.o: $(GenDir)/%.cpp $(GenDir)/%.h
$(Gcc) -c -o $@ $<
-$(SrcObj): $(GenDir)/%.o: $(SrcDir)/%.cpp $(SrcDir)/%.h $(SrcDir)/Types.h
+$(SrcObj): $(GenDir)/%.o: $(SrcDir)/%.cpp $(SrcDir)/%.h
$(GccStrict) -c -o $@ $<
-$(GenDir)/Context.o: $(SrcDir)/Logger.h
-
-
-
-$(TestParse): %: $(TestDir)/%.parsed.ifpp
-
-$(TestCompile): %: $(TestDir)/%.filter
-
-$(TestDir)/%.parsed.ifpp: $(TestDir)/%.ifpp ifpp
- ./ifpp -c -Dpartial -DparseOnly $<
-
-$(TestDir)/%.filter: $(TestDir)/%.ifpp ifpp
- ./ifpp -c -Dpartial $<
doc/ifpp-manual.html: src/ifpp-manual.texinfo
makeinfo --html --no-split --css-include="src/ifpp-manual.css" -o "doc/ifpp-manual.html" "src/ifpp-manual.texinfo"
diff --git a/src/Compiler.cpp b/src/Compiler.cpp
index dd4e20c..38d56e3 100644
--- a/src/Compiler.cpp
+++ b/src/Compiler.cpp
@@ -1,416 +1,118 @@
#include "Compiler.h"
-#include "RuleOperations.h"
-#include
-#include
-#include
-#include