This PR changes the way InstructionSet and CoreDef nodes are parsed.
For now, the sections can be specified in any order, but if we decide to fix it in #24, the necessary change would just be to remove the two & symbols in the ISA rule.
More importantly, I decided to parse declarations and assignments into separate lists, instead of combining them into one list of mixed BlockItems. This removes the need for unnecessary filter calls in many places (btw. flatMap[] exists, so there is no need to write it as map[].flatten).
Also @eyck unsigned is not a valid type, so I made the size specifier mandatory again. And the t_equals= is there for a reason, please don't remove that.
This PR changes the way
InstructionSet
andCoreDef
nodes are parsed. For now, the sections can be specified in any order, but if we decide to fix it in #24, the necessary change would just be to remove the two&
symbols in theISA
rule.More importantly, I decided to parse declarations and assignments into separate lists, instead of combining them into one list of mixed
BlockItem
s. This removes the need for unnecessaryfilter
calls in many places (btw.flatMap[]
exists, so there is no need to write it asmap[].flatten
).Also @eyck
unsigned
is not a valid type, so I made the size specifier mandatory again. And thet_equals=
is there for a reason, please don't remove that.