From 1c0907f61097ee4ec7c412cc1b8a3de5cf339a83 Mon Sep 17 00:00:00 2001 From: Gleb Koval Date: Fri, 31 Jan 2025 19:45:52 +0000 Subject: [PATCH] fix: add BaseType and correct PairElemType nodes --- src/main/wacc/ast.scala | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/main/wacc/ast.scala b/src/main/wacc/ast.scala index 6a86abf..1e85989 100644 --- a/src/main/wacc/ast.scala +++ b/src/main/wacc/ast.scala @@ -150,19 +150,18 @@ object ast { // Types sealed trait Type - case object IntType extends Type with ParserBridge0[IntType.type] - case object BoolType extends Type with ParserBridge0[BoolType.type] - case object CharType extends Type with ParserBridge0[CharType.type] - case object StringType extends Type with ParserBridge0[StringType.type] - case class ArrayType(elemType: Type) extends Type + sealed trait BaseType extends Type with PairElemType + case object IntType extends BaseType with ParserBridge0[IntType.type] + case object BoolType extends BaseType with ParserBridge0[BoolType.type] + case object CharType extends BaseType with ParserBridge0[CharType.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] case class PairType(fst: PairElemType, snd: PairElemType) extends Type object PairType extends ParserBridge2[PairElemType, PairElemType, PairType] sealed trait PairElemType - case object PairBaseType + case object UntypedPairType extends PairElemType - with ParserBridge0[PairBaseType.type] - case class PairArrayType(baseType: Type) extends PairElemType - object PairArrayType extends ParserBridge1[Type, PairArrayType] + with ParserBridge0[UntypedPairType.type] }