Since I was playing with fparsec last week, I decided to redo (or mostly) the parser for my homebrew language that I’ve previously posted about. Using fparsec made the parser surprisingly succinct and expressive. In fact I was able to do most of this in an afternoon, which is impressive considering my last C# attempt took 2 weeks to hammer out.
As always, it starts with the data
type Op = | Plus | Minus | GreaterThan | LessThan | Mult | Divide | Carrot type Ast = | Statement of Ast | Expression of Ex | Function of string option * Argument list option * Ast | Scope of Ast list option | Class of Ex * Ast | Conditional of Ex * Ast * Ast option | WhileLoop of Ex * Ast | ForLoop of Ast * Ex * Ex * Ast | Call of string * Argument… Read more