expand definition data class

This commit is contained in:
Mark Canlas 2020-08-26 02:32:27 -04:00
parent cf9e1f63b0
commit f432fdc767

View File

@ -3,6 +3,8 @@ package com.htmlism.mos6502.dsl
import scala.collection.immutable.ListSet import scala.collection.immutable.ListSet
import scala.collection.mutable.ListBuffer import scala.collection.mutable.ListBuffer
import cats.implicits._
case class AsmDocument(xs: List[TopLevelAsmDocumentFragment]) { case class AsmDocument(xs: List[TopLevelAsmDocumentFragment]) {
def toAsm: String = def toAsm: String =
xs xs
@ -73,7 +75,7 @@ class DefinitionGroupContext {
DefinitionGroup(s, xs.toList) 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 = lazy val value: String =
implicitly[Operand[A]] implicitly[Operand[A]]
.toDefinitionLiteral(x) .toDefinitionLiteral(x)
@ -85,6 +87,12 @@ object Definition {
def toDefinitions(x: Definition[A]): List[Definition[_]] = def toDefinitions(x: Definition[A]): List[Definition[_]] =
List(x) 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 { class AsmBlockContext {