> > One could describe the Graph::Easy format grammar as a state machine, draw > the state machine with Graph::Easy, then implement a parser from your > diagram, with > Graph::Easy::StateMachine<http://cpan.uwinnipeg.ca/htdocs/Graph-Easy-StateMachine/Graph/Easy/StateMachine.html> > , > for a future Graph::Easy that is self-hosting. How cool would that be or > what? > An interesting concept but describing the syntax as a grammar is not the same as an FSA. The FSA is part of the parser and lexer.
The thing about parsing and Perl is that your lexer can be based on regular expressions which Perl of course understands itself. Regardless, the first step is to come up with a formal grammar. The RHS of the productions are calls to Graph::Easy. At this time, we have a working parser for Graph::Easy regardless of how it was created. While a formal grammar is wonderful for documenting that language, why are we looking at replacing the parser in the first place? what size /complexity input is causing such a performance problem? Or is that new features for the language are desired and it is difficult to implement them in the existing system?