diff --git a/src/main/scala/com/htmlism/mos6502/dsl/AsmDocumentContext.scala b/src/main/scala/com/htmlism/mos6502/dsl/AsmDocumentContext.scala index ca0caca..7e6b58f 100644 --- a/src/main/scala/com/htmlism/mos6502/dsl/AsmDocumentContext.scala +++ b/src/main/scala/com/htmlism/mos6502/dsl/AsmDocumentContext.scala @@ -3,6 +3,8 @@ package com.htmlism.mos6502.dsl import scala.collection.immutable.ListSet import scala.collection.mutable.ListBuffer +import cats.implicits._ + case class AsmDocument(xs: List[TopLevelAsmDocumentFragment]) { def toAsm: String = xs @@ -73,7 +75,7 @@ class DefinitionGroupContext { DefinitionGroup(s, xs.toList) } -case class Definition[A: Operand](name: String, x: A) { +case class Definition[A: Operand](name: String, x: A, comment: Option[String]) { lazy val value: String = implicitly[Operand[A]] .toDefinitionLiteral(x) @@ -85,6 +87,12 @@ object Definition { def toDefinitions(x: Definition[A]): List[Definition[_]] = List(x) } + + def apply[A: Operand](name: String, x: A): Definition[A] = + Definition(name, x, None) + + def apply[A: Operand](name: String, x: A, comment: String): Definition[A] = + Definition(name, x, comment.some) } class AsmBlockContext {