raisedragon / pircbotx

Automatically exported from code.google.com/p/pircbotx
0 stars 0 forks source link

Parser rewrite #195

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
After the recent discussion in 
https://code.google.com/p/pircbotx/wiki/GPLRestrictedCode I've decided that 
rewriting InputParser as a pluggable system is a good idea. 

Reasons
 - InputParser is currently 900 lines of walls of parsing code. Everything is tossed into one mega class that is really hard to sort through, debug, and organize. 
 - Parsing is limited to input. There is 0 output parsing, something I've wanted to do for a looong time (June 2013 in Revision c27a5dd9cc46)
 - Merging output parsing with input parsing means commands and responses can be tracked. IE a WHOIS request has a WHOIS response or a nickserv command has a response. Currently this isn't possible leading to horrible hacks like the fix to Issue #191
 - The benefits of a pluggable parsing system outweigh cost of keeping unnecessarily high benchmark speed (walls of if statements in 4 methods) that nobody is going to obtain in real world usage
 - Implementing this will not change the existing public API
 - This is the last part of GPL'd code from PircBot, mostly written for Java 1.1 .
 - Multiple other code quality and design bugs could be fixed with this system

Obviously with the huge backlog of issues I'd want to get 2.1 out the door 
first. 

Ideas, designs, patches, and other things to improve are welcome

Original issue reported on code.google.com by Lord.Qua...@gmail.com on 8 Aug 2014 at 3:27

GoogleCodeExporter commented 9 years ago
Issue 161 has been merged into this issue.

Original comment by Lord.Qua...@gmail.com on 31 Aug 2014 at 8:44