fix: add BaseType and correct PairElemType nodes

This commit is contained in:
Gleb Koval 2025-01-31 19:45:52 +00:00
parent 373683b592
commit 1c0907f610
Signed by: cyclane
GPG Key ID: 15E168A8B332382C

View File

@ -150,19 +150,18 @@ object ast {
// Types // Types
sealed trait Type sealed trait Type
case object IntType extends Type with ParserBridge0[IntType.type] sealed trait BaseType extends Type with PairElemType
case object BoolType extends Type with ParserBridge0[BoolType.type] case object IntType extends BaseType with ParserBridge0[IntType.type]
case object CharType extends Type with ParserBridge0[CharType.type] case object BoolType extends BaseType with ParserBridge0[BoolType.type]
case object StringType extends Type with ParserBridge0[StringType.type] case object CharType extends BaseType with ParserBridge0[CharType.type]
case class ArrayType(elemType: Type) extends Type case object StringType extends BaseType with ParserBridge0[StringType.type]
case class ArrayType(elemType: Type) extends Type with PairElemType
object ArrayType extends ParserBridge1[Type, ArrayType] object ArrayType extends ParserBridge1[Type, ArrayType]
case class PairType(fst: PairElemType, snd: PairElemType) extends Type case class PairType(fst: PairElemType, snd: PairElemType) extends Type
object PairType extends ParserBridge2[PairElemType, PairElemType, PairType] object PairType extends ParserBridge2[PairElemType, PairElemType, PairType]
sealed trait PairElemType sealed trait PairElemType
case object PairBaseType case object UntypedPairType
extends PairElemType extends PairElemType
with ParserBridge0[PairBaseType.type] with ParserBridge0[UntypedPairType.type]
case class PairArrayType(baseType: Type) extends PairElemType
object PairArrayType extends ParserBridge1[Type, PairArrayType]
} }