simon at thegestalt.org
Fri Apr 20 22:23:36 BST 2012
On Fri, Apr 20, 2012 at 08:37:42PM +0000, Anthony Lucas said:
> How about a parser using Regexp? Parser::MGC?
> You can implement a proper parser, or just a few staged regexp, or anything in-between.
I ended up just doing this
my ($label, $op, $operands) = $line =~ m!
(?::(\w+) \s+)? # optional label
([A-Za-z]+) \s+ # opcode
(.+) \s* # operands
# TODO this won't cope with commas inside quotes
# e.g DAT 0x20, "hello, goodbye", 0x10
my @operands = split /\s*,\s*/, ($operands || "");
at some point I should properly parse the assembler file using a grammar
but since the spec is still in flux I'll go with my bodged parser for
If any of you care you can see the code here
More information about the london.pm