language processing in a familiar programming setting Enables experimentation with combinations of processing mechanisms A shallow embedding of Domain-Specific Languages in Scala strategic term rewriting dynamically-scheduled attribute grammars abstract state machines pretty-printing combinators A. M. Sloane. Lightweight language processing in Kiama. In Generative and Transformational Techniques in Software Engineering III, volume 6491 of Lecture Notes in Computer Science, Springer, 2011. https://bitbucket.org/inkytonik/kiama
CHECK COMPLETENESS CHECK SUMMARY (1) ALGEBRAIC DATA TYPE ADT VALUE FUNCTION PATTERN-MATCHING CASES BINDING AND EXPRESSIONS IN ATTR WRAPPER DYNAMIC IN ATTR WRAPPER PATTERN EXHAUSTIVENESS CHECK
E F F parent child A. M. Sloane, M. Roberts, and L. G. C. Hamey. Respect your parents: How attribution and rewriting can get along. In Proceedings of the International Conference on Software Language Engineering, volume 8706 of Lecture Notes in Computer Science, 2014.
of the matched node, or fail if there are no children Bind pn to the next node at the same level as the parent of the matched node, or fail if there is no parent or next node after parent Succeed if and only if there is a parent and it is an A
CHECK COMPLETENESS CHECK INHERITED EQUATIONS CONTEXT-DEPENDENT EQUATIONS SUMMARY (2) ALGEBRAIC DATA TYPE ADT VALUE FUNCTION PATTERN-MATCHING CASES BINDING AND EXPRESSIONS IN ATTR WRAPPER DYNAMIC IN ATTR WRAPPER PATTERN EXHAUSTIVENESS CHECK MATCHING ON PARENT TREE RELATIONS AS PATTERNS
analyser Type analyser Desugarer Lifter Code generator C printer A extends B A B A B mixin: A ... with B A. M. Sloane and M. Roberts. Oberon-0 in Kiama. Science of Computer Programming, Dec. 2015
CHECK COMPLETENESS CHECK INHERITED EQUATIONS CONTEXT-DEPENDENT EQUATIONS HIGHER-ORDER/REFERENCE ATTRS FORWARDING CIRCULAR ATTRIBUTES ATTRIBUTION PATTERNS MODULARITY SUMMARY (3) ALGEBRAIC DATA TYPE ADT VALUE FUNCTION PATTERN-MATCHING CASES BINDING AND EXPRESSIONS IN ATTR WRAPPER DYNAMIC IN ATTR WRAPPER PATTERN EXHAUSTIVENESS CHECK MATCHING ON PARENT TREE RELATIONS AS PATTERNS FUNCTIONS AND TREE RELATIONS IMPLICIT CONVERSION AS IN JASTADD DECORATORS MIXINS, INHERITANCE
Twitter High-level language processing in a familiar programming setting strategic term rewriting dynamically-scheduled attribute grammars abstract state machines pretty-printing combinators https://bitbucket.org/inkytonik/sbt-rats Scala parser generator plugin PEG-based packrat parsing tree construction pretty-printing