module python imports libstrategolib signatures/- util signature constructors TopLevel: Ex -> Ex rules py: TopLevel(x) -> $[import sys class StdioC: def gets(self, v): print(v, file=sys.stdout, end='') return self def to(data,strm): strm.gets(data) return data Stdio = StdioC() [x]] py: Stream() -> $[Stdio] py: Int(x) -> x py: Sum(x,y) -> $[[x] + [y]] py: Gets(x, y) -> $[[x].gets([y])] py: To(x, y) -> $[to([x],[y])] py: Sequence(l) -> l strategies python = bottomup(try(py)) // Interface python code generation with editor services and file system to-python: (selected, _, _, path, project-path) -> (filename, result) with filename := path ; result := selected