xipd

programming language for audio processing that compiles to PureData
git clone https://git.ce9e.org/xipd.git

commit
d9f1c58b85163704fdd700acb743b5d615b70568
parent
aef92e47307c59830001391eb97b04aebd707436
Author
Tobias Bengfort <tobias.bengfort@posteo.de>
Date
2022-08-27 08:28
refine cli

Diffstat

A xipd/__main__.py 22 ++++++++++++++++++++++
M xipd/format.py 15 ++++++++++++---
M xipd/parser.py 10 ----------
M xipd/renderer.py 8 --------

4 files changed, 34 insertions, 21 deletions


diff --git a/xipd/__main__.py b/xipd/__main__.py

@@ -0,0 +1,22 @@
   -1     1 import sys
   -1     2 import argparse
   -1     3 
   -1     4 from .renderer import Renderer
   -1     5 from .format import autoformat
   -1     6 
   -1     7 
   -1     8 def main():
   -1     9 	parser = argparse.ArgumentParser()
   -1    10 	parser.add_argument(
   -1    11 		'infile', nargs='?', type=argparse.FileType('r'), default=sys.stdin,
   -1    12 	)
   -1    13 	args = parser.parse_args()
   -1    14 
   -1    15 	renderer = Renderer()
   -1    16 	output = renderer.render(args.infile)
   -1    17 	output = autoformat(output)
   -1    18 	print(output, end='')
   -1    19 
   -1    20 
   -1    21 if __name__ == '__main__':
   -1    22 	main()

diff --git a/xipd/format.py b/xipd/format.py

@@ -1,5 +1,6 @@
    1     1 import re
    2     2 import sys
   -1     3 import argparse
    3     4 import subprocess
    4     5 
    5     6 DOT_CMD = 'dot'
@@ -59,7 +60,15 @@ def autoformat(pd):
   59    60 	return apply_positions(pd, positions)
   60    61 
   61    62 
   62    -1 if __name__ == '__main__':
   63    -1 	with open(sys.argv[1]) as fh:
   64    -1 		pd = fh.read()
   -1    63 def main():
   -1    64 	parser = argparse.ArgumentParser()
   -1    65 	parser.add_argument(
   -1    66 		'infile', nargs='?', type=argparse.FileType('r'), default=sys.stdin,
   -1    67 	)
   -1    68 	args = parser.parse_args()
   -1    69 	pd = args.infile.read()
   65    70 	print(autoformat(pd), end='')
   -1    71 
   -1    72 
   -1    73 if __name__ == '__main__':
   -1    74 	main()

diff --git a/xipd/parser.py b/xipd/parser.py

@@ -1,5 +1,4 @@
    1     1 import re
    2    -1 import sys
    3     2 
    4     3 
    5     4 class SyntaxError(TypeError):
@@ -181,12 +180,3 @@ class Parser:
  181   180 		if not len(stack) == 1:
  182   181 			raise SyntaxError('unbalanced blocks')
  183   182 		return stack[0]
  184    -1 
  185    -1 
  186    -1 if __name__ == '__main__':
  187    -1 	parser = Parser()
  188    -1 	with open(sys.argv[1]) as fh:
  189    -1 		ast = parser.parse_file(fh)
  190    -1 
  191    -1 	from pprint import pprint
  192    -1 	pprint(ast)

diff --git a/xipd/renderer.py b/xipd/renderer.py

@@ -1,5 +1,3 @@
    1    -1 import sys
    2    -1 
    3     1 from .parser import Parser
    4     2 
    5     3 
@@ -126,9 +124,3 @@ class Renderer:
  126   124 		self.render_with_scope(ast, scope)
  127   125 
  128   126 		return self.output
  129    -1 
  130    -1 
  131    -1 if __name__ == '__main__':
  132    -1 	renderer = Renderer()
  133    -1 	with open(sys.argv[1]) as fh:
  134    -1 		print(renderer.render(fh), end='')