diff --git a/src/com/maccasoft/tools/BinaryBuilder.java b/src/com/maccasoft/tools/BinaryBuilder.java index b59da3d..fa4e011 100644 --- a/src/com/maccasoft/tools/BinaryBuilder.java +++ b/src/com/maccasoft/tools/BinaryBuilder.java @@ -17,6 +17,7 @@ import nl.grauw.glass.Line; import nl.grauw.glass.Scope; import nl.grauw.glass.Source; import nl.grauw.glass.directives.If; +import nl.grauw.glass.directives.Section; public class BinaryBuilder { @@ -90,6 +91,16 @@ public class BinaryBuilder { } } } + else if (line.getDirective() instanceof Section) { + if (line.getInstructionObject() != null) { + nl.grauw.glass.instructions.Section ins = (nl.grauw.glass.instructions.Section) line.getInstruction(); + build(ins.getSource()); + } + else { + Section ins = (Section) line.getDirective(); + build(ins.getSource()); + } + } } catch (AssemblyException e) { e.addContext(line); throw e; diff --git a/src/com/maccasoft/tools/IntelHexBuilder.java b/src/com/maccasoft/tools/IntelHexBuilder.java index 754a68c..a8ea47d 100644 --- a/src/com/maccasoft/tools/IntelHexBuilder.java +++ b/src/com/maccasoft/tools/IntelHexBuilder.java @@ -17,6 +17,7 @@ import nl.grauw.glass.Line; import nl.grauw.glass.Scope; import nl.grauw.glass.Source; import nl.grauw.glass.directives.If; +import nl.grauw.glass.directives.Section; public class IntelHexBuilder { @@ -97,6 +98,16 @@ public class IntelHexBuilder { } } } + else if (line.getDirective() instanceof Section) { + if (line.getInstructionObject() != null) { + nl.grauw.glass.instructions.Section ins = (nl.grauw.glass.instructions.Section) line.getInstruction(); + build(ins.getSource()); + } + else { + Section ins = (Section) line.getDirective(); + build(ins.getSource()); + } + } } catch (AssemblyException e) { e.addContext(line); throw e; diff --git a/src/com/maccasoft/tools/ListingBuilder.java b/src/com/maccasoft/tools/ListingBuilder.java index 4a8e9b5..ad9f2f4 100644 --- a/src/com/maccasoft/tools/ListingBuilder.java +++ b/src/com/maccasoft/tools/ListingBuilder.java @@ -15,6 +15,7 @@ import nl.grauw.glass.Line; import nl.grauw.glass.Scope; import nl.grauw.glass.Source; import nl.grauw.glass.directives.If; +import nl.grauw.glass.directives.Section; public class ListingBuilder { @@ -108,6 +109,16 @@ public class ListingBuilder { } } } + else if (line.getDirective() instanceof Section) { + if (line.getInstructionObject() != null) { + nl.grauw.glass.instructions.Section ins = (nl.grauw.glass.instructions.Section) line.getInstruction(); + build(ins.getSource()); + } + else { + Section ins = (Section) line.getDirective(); + build(ins.getSource()); + } + } } catch (AssemblyException e) { e.addContext(line); throw e; diff --git a/src/nl/grauw/glass/directives/Section.java b/src/nl/grauw/glass/directives/Section.java index bc7c90f..ebb0e30 100644 --- a/src/nl/grauw/glass/directives/Section.java +++ b/src/nl/grauw/glass/directives/Section.java @@ -21,4 +21,8 @@ public class Section extends Directive { super.register(scope, line); } + public Source getSource() { + return source; + } + }