4 ms·
And here is an another pattern matching implementation for Python [1]. It was made for compilers construction task and may look similiar for those who has an ex
by richard_shelton 8y ago
And here is an another pattern matching implementation for Python [1]. It was made for compilers construction task and may look similiar for those who has an experience with Prolog, Stratego or Refal.
And here is a toy term rewriting system [2].
[1] https://github.com/true-grue/raddsl https://github.com/true-grue/raddsl
[2] https://github.com/true-grue/code-snippets/blob/master/ttrs.py https://github.com/true-grue/code-snippets/blob/master/ttrs....
- tom_mellior 8y ago> And here is an another pattern matching implementation for Python [1]. Oh, I like the prettier syntax: calc_rules = alt( Int(id), rule(BinOp("+", Int(X), Int(Y)), to(lambda v: Int(v.X + v.Y))), rule(BinOp("-", Int(X), Int(Y)), to(lambda v: Int(v.X - v.Y))), rule(BinOp("*", Int(X), Int(Y)), to(lambda v: Int(v.X * v.Y))), rule(BinOp("/", Int(X), Int(Y)), to(lambda v: Int(v.X // v.Y))) ) (https://github.com/true-grue/raddsl/blob/master/examples/calc/calc.py https://github.com/true-grue/raddsl/blob/master/examples/cal...) This way of sharing variable names between the pattern and the associated action is pretty neat. It's much nicer than Pampy's use of '_' for all variables.