[PATCH] MIR Parsing: Introduce a MI Lexing class.

Alex Lorenz arphaman at gmail.com
Thu Jun 18 19:16:31 PDT 2015


Comment at: lib/CodeGen/MIRParser/MIParser.cpp:29
@@ -27,3 +28,3 @@
-class MIParser {
+class MIParser : public MILexer {
   SourceMgr &SM;
silvas wrote:
> Is there a reason you chose is-a instead of has-a here? I don't think I've ever seen a parser implemented as a subclass of the lexer.
This was done so that the parser could override the error reporting method in the lexer so that the lexer could report errors. I will remove this, as I can just pass an error handler function to the lexToken method which will be called directly from the parser.

Comment at: lib/CodeGen/MIRParser/MIParser.cpp:70
@@ -60,1 +69,3 @@
+void MIParser::lex() { MILexer::lex(Token); }
silvas wrote:
> This lex() function don't seem to be buying you very much. It seems like it might as well just contain a call to a free function equivalent of what is currently the member function MILexer::lexToken. E.g. it could just be `void MIParser::lex() { CurrentSource = lexToken(CurrentSource, Token, ErrorCallback); }`.
Sure, this makes sense. I'll post the updated patch tomorrow.



More information about the llvm-commits mailing list