31 #include "lib/INIReader.h" |
31 #include "lib/INIReader.h" |
32 #include "lib/BasicUnescapingProcessor.h" |
32 #include "lib/BasicUnescapingProcessor.h" |
33 #include "lib/BackspaceUnescapingProcessor.h" |
33 #include "lib/BackspaceUnescapingProcessor.h" |
34 #include "lib/JavaPropertiesUnescapingProcessor.h" |
34 #include "lib/JavaPropertiesUnescapingProcessor.h" |
35 #include "lib/JavaPropertiesDialect.h" |
35 #include "lib/JavaPropertiesDialect.h" |
|
36 #include "lib/JavaManifestMFDialect.h" |
36 |
37 |
37 using namespace std; |
38 using namespace std; |
38 using namespace relpipe::writer; |
39 using namespace relpipe::writer; |
39 using namespace relpipe::in::ini::lib; |
40 using namespace relpipe::in::ini::lib; |
40 |
41 |
175 std::shared_ptr<INIReader> reader(INIReader::create(input)); |
176 std::shared_ptr<INIReader> reader(INIReader::create(input)); |
176 reader->addUnescapingProcessor(std::make_shared<BasicUnescapingProcessor>(), unescaping::Basic, true); |
177 reader->addUnescapingProcessor(std::make_shared<BasicUnescapingProcessor>(), unescaping::Basic, true); |
177 reader->addUnescapingProcessor(std::make_shared<JavaPropertiesUnescapingProcessor>(), unescaping::JavaProperties, false); |
178 reader->addUnescapingProcessor(std::make_shared<JavaPropertiesUnescapingProcessor>(), unescaping::JavaProperties, false); |
178 reader->addUnescapingProcessor(std::make_shared<BackspaceUnescapingProcessor>(), unescaping::Backspace, true); |
179 reader->addUnescapingProcessor(std::make_shared<BackspaceUnescapingProcessor>(), unescaping::Backspace, true); |
179 reader->addDialect(std::make_shared<JavaPropertiesDialect>(), dialect::JavaProperties, false); |
180 reader->addDialect(std::make_shared<JavaPropertiesDialect>(), dialect::JavaProperties, false); |
180 reader->addDialect(std::make_shared<JavaPropertiesDialect>(), dialect::JavaManifestMF, false); |
181 reader->addDialect(std::make_shared<JavaManifestMFDialect>(), dialect::JavaManifestMF, false); |
181 reader->addHandler(&handler); |
182 reader->addHandler(&handler); |
182 // TODO: smart pointers vs. references: are we going to call addUnescapingProcessor() dynamically/conditionally or share instances? Then pointers will be better. |
183 // TODO: smart pointers vs. references: are we going to call addUnescapingProcessor() dynamically/conditionally or share instances? Then pointers will be better. |
183 for (ParserOptionRecipe option : configuration.parserOptions) reader->setOption(convertor.to_bytes(option.uri), convertor.to_bytes(option.value)); |
184 for (ParserOptionRecipe option : configuration.parserOptions) reader->setOption(convertor.to_bytes(option.uri), convertor.to_bytes(option.value)); |
184 reader->process(); |
185 reader->process(); |
185 |
186 |