diff --git a/compilerAst/src/prog8/ast/SymbolPrinter.kt b/compilerAst/src/prog8/ast/SymbolPrinter.kt index d9a8f2c88..f2aa9c549 100644 --- a/compilerAst/src/prog8/ast/SymbolPrinter.kt +++ b/compilerAst/src/prog8/ast/SymbolPrinter.kt @@ -29,17 +29,19 @@ class SymbolPrinter(val output: (text: String) -> Unit, val program: Program, va } override fun visit(block: Block) { - outputln("${block.name} {") val (vars, subs) = block.statements.filter{ it is Subroutine || it is VarDecl }.partition { it is VarDecl } - for(variable in vars.sortedBy { (it as VarDecl).name }) { - output(" ") - variable.accept(this) + if(vars.isNotEmpty() || subs.isNotEmpty()) { + outputln("${block.name} {") + for (variable in vars.sortedBy { (it as VarDecl).name }) { + output(" ") + variable.accept(this) + } + for (subroutine in subs.sortedBy { (it as Subroutine).name }) { + output(" ") + subroutine.accept(this) + } + outputln("}\n") } - for(subroutine in subs.sortedBy { (it as Subroutine).name }) { - output(" ") - subroutine.accept(this) - } - outputln("}\n") } private fun datatypeString(dt: DataType): String { diff --git a/docs/Makefile b/docs/Makefile index cffd3dbcf..1113bf577 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -12,9 +12,19 @@ BUILDDIR = build help: @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) -.PHONY: help Makefile +.PHONY: help Makefile symboldumps + + +symboldumps: + p8compile -target atari import-all-atari.p8 -dumpsymbols > skeletons-atari.txt + p8compile -target c64 import-all-c64.p8 -dumpsymbols > skeletons-c64.txt + p8compile -target c128 import-all-c128.p8 -dumpsymbols > skeletons-c128.txt + p8compile -target cx16 import-all-cx16.p8 -dumpsymbols > skeletons-cx16.txt + p8compile -target pet32 import-all-pet32.p8 -dumpsymbols > skeletons-pet32.txt + p8compile -target virtual import-all-virtual.p8 -dumpsymbols > skeletons-virtual.txt + # Catch-all target: route all unknown targets to Sphinx using the new # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). %: Makefile - @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) \ No newline at end of file + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/import-all-atari.p8 b/docs/import-all-atari.p8 new file mode 100644 index 000000000..cd770434b --- /dev/null +++ b/docs/import-all-atari.p8 @@ -0,0 +1,11 @@ +; all library modules for the atari compiler target + +%import conv +%import cx16logo +%import diskio +%import math +%import prog8_lib +%import string +%import syslib +%import test_stack +%import textio diff --git a/docs/import-all-c128.p8 b/docs/import-all-c128.p8 new file mode 100644 index 000000000..9b137b3be --- /dev/null +++ b/docs/import-all-c128.p8 @@ -0,0 +1,12 @@ +; all library modules for the c128 compiler target + +%import conv +%import cx16logo +%import diskio +;;%import floats +%import math +%import prog8_lib +%import string +%import syslib +%import test_stack +%import textio diff --git a/docs/import-all-c64.p8 b/docs/import-all-c64.p8 new file mode 100644 index 000000000..4b1bd8fd6 --- /dev/null +++ b/docs/import-all-c64.p8 @@ -0,0 +1,13 @@ +; all library modules for the c64 compiler target + +%import conv +%import cx16logo +%import diskio +%import floats +%import graphics +%import math +%import prog8_lib +%import string +%import syslib +%import test_stack +%import textio diff --git a/docs/import-all-cx16.p8 b/docs/import-all-cx16.p8 new file mode 100644 index 000000000..8e9e4f582 --- /dev/null +++ b/docs/import-all-cx16.p8 @@ -0,0 +1,21 @@ +; all library modules for the cx16 compiler target + +%import bmx +%import conv +%import cx16logo +%import diskio +%import emudbg +%import floats +%import gfx2 +%import graphics +%import math +%import monogfx +%import palette +%import prog8_lib +%import psg +%import sprites +%import string +%import syslib +%import test_stack +%import textio +%import verafx diff --git a/docs/import-all-pet32.p8 b/docs/import-all-pet32.p8 new file mode 100644 index 000000000..788181c99 --- /dev/null +++ b/docs/import-all-pet32.p8 @@ -0,0 +1,11 @@ +; all library modules for the pet32 compiler target + +%import conv +%import cx16logo +%import diskio +%import math +%import prog8_lib +%import string +%import syslib +%import test_stack +%import textio diff --git a/docs/import-all-virtual.p8 b/docs/import-all-virtual.p8 new file mode 100644 index 000000000..4e8e50630 --- /dev/null +++ b/docs/import-all-virtual.p8 @@ -0,0 +1,14 @@ +; all library modules for the virtual compiler target + +%import conv +%import cx16logo +%import diskio +%import emudbg +%import floats +%import math +%import monogfx +%import prog8_lib +%import string +%import syslib +%import test_stack +%import textio