From 973172f90e69cd6f7bb884ecc65d9f265823b189 Mon Sep 17 00:00:00 2001 From: Mark Canlas Date: Sat, 15 Aug 2020 17:10:37 -0400 Subject: [PATCH] add label and comment show --- src/main/scala/com/htmlism/mos6502/dsl/BitField.scala | 10 ++++++++++ src/main/scala/com/htmlism/mos6502/dsl/EnumAsm.scala | 10 ++++++++++ src/test/scala/com/htmlism/mos6502/dsl/DslSpec.scala | 11 +++++++++++ 3 files changed, 31 insertions(+) diff --git a/src/main/scala/com/htmlism/mos6502/dsl/BitField.scala b/src/main/scala/com/htmlism/mos6502/dsl/BitField.scala index 65ec0f4..cf49238 100644 --- a/src/main/scala/com/htmlism/mos6502/dsl/BitField.scala +++ b/src/main/scala/com/htmlism/mos6502/dsl/BitField.scala @@ -6,4 +6,14 @@ trait BitField[A] { def comment: String def labels: NonEmptyList[String] + + /** + * ASM-safe label + */ + def label(x: A): String + + /** + * Comment string + */ + def comment(x: A): String } diff --git a/src/main/scala/com/htmlism/mos6502/dsl/EnumAsm.scala b/src/main/scala/com/htmlism/mos6502/dsl/EnumAsm.scala index 54a9f89..aca3d0b 100644 --- a/src/main/scala/com/htmlism/mos6502/dsl/EnumAsm.scala +++ b/src/main/scala/com/htmlism/mos6502/dsl/EnumAsm.scala @@ -6,4 +6,14 @@ trait EnumAsm[A] { def comment: String def labels: NonEmptyList[String] + + /** + * ASM-safe label + */ + def label(x: A): String + + /** + * Comment string + */ + def comment(x: A): String } diff --git a/src/test/scala/com/htmlism/mos6502/dsl/DslSpec.scala b/src/test/scala/com/htmlism/mos6502/dsl/DslSpec.scala index 7a5bc4f..b65ab94 100644 --- a/src/test/scala/com/htmlism/mos6502/dsl/DslSpec.scala +++ b/src/test/scala/com/htmlism/mos6502/dsl/DslSpec.scala @@ -117,6 +117,12 @@ object Foo { def labels: NonEmptyList[String] = NonEmptyList.of("courage", "wisdom", "power") + + def label(x: Foo): String = + "fooNotEnum" + + def comment(x: Foo): String = + "Foo not an enum" } implicit val bitFieldFoo: BitField[Foo] = @@ -127,5 +133,10 @@ object Foo { def labels: NonEmptyList[String] = NonEmptyList.of("up", "down", "left", "right") + def label(x: Foo): String = + "fooNotBitField" + + def comment(x: Foo): String = + "Foo not a bit field" } }