packages feed

zeolite-lang-0.3.0.0: example/hello/hello-demo.0rx

concrete HelloDemo {
  @type run () -> ()
}

define HelloDemo {
  run () {
    scoped {
      TextReader reader <- TextReader$fromBlockReader(SimpleInput$stdin())
    } cleanup {
      \ LazyStream<Formatted>$new()
          .append("Goodbye.\n")
          .writeTo(SimpleOutput$stderr())
    } in while (!reader.pastEnd()) {
      \ LazyStream<Formatted>$new()
          .append("What is your name? ")
          .writeTo(SimpleOutput$stderr())
      String name <- reader.readNextLine()
      if (name.readSize() == 0) {
        break
      }
      \ LazyStream<Formatted>$new()
          .append("Hello \"")
          .append(name)
          .append("\", if that's your real name.\n")
          .writeTo(SimpleOutput$stderr())
    }
  }
}