Skip to content

Instantly share code, notes, and snippets.

@kierdavis
Created August 24, 2016 20:02
Show Gist options
  • Save kierdavis/575c14947d8f408b58c4a2f1bbf780b6 to your computer and use it in GitHub Desktop.
Save kierdavis/575c14947d8f408b58c4a2f1bbf780b6 to your computer and use it in GitHub Desktop.
GateKind = enum
gateNot
gateAnd
gateOr
gateNand
gateNor
gateXor
proc raiseValue[T](e: ref Exception): T =
raise e
# leave result set to the zero value for T
let kind =
case kindStr
of "NOT": gateNot
of "AND": gateAnd
of "OR": gateOr
of "NAND": gateNand
of "NOR": gateNor
of "XOR": gateXor
else:
raiseValue[GateKind] newException(ParseError, "bad kindStr")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment