

def urbanmain() = {
  import M3._

  assert(nullable(ZERO) == false)
  assert(nullable(ONE) == true)
  assert(nullable(CHAR('a')) == false)
  assert(nullable(ZERO | ONE) == true)
  assert(nullable(ZERO | CHAR('a')) == false)
  assert(nullable(ONE ~  ONE) == true)
  assert(nullable(ONE ~ CHAR('a')) == false)
  assert(nullable(STAR(ZERO)) == true)
  assert(nullable(ALTs(List(ONE, CHAR('a'), ZERO))) == true)
  assert(nullable(SEQs(List(ONE, ALTs(List(ONE, CHAR('a'), ZERO)), STAR(ZERO)))) == true)
}

