# file      : libbuild2/lexer+comment.test.testscript
# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
# license   : MIT; see accompanying LICENSE file

: single-line
:
{
  : only
  :
  $* <<EOI >>:EOO
  # comment
  EOI
  EOO

  : first
  :
  $* <<EOI >>EOO
  # comment
  foo
  EOI
  'foo'
  <newline>
  EOO

  : last
  :
  $* <<EOI >>EOO
  foo
  # comment
  EOI
  'foo'
  <newline>
  EOO

  : few
  :
  $* <<EOI >>EOO
  foo
  # comment
  # comment
  EOI
  'foo'
  <newline>
  EOO

  : cont
  :
  $* <<EOI >>EOO
  foo
  # comment\\
  bar
  EOI
  'foo'
  <newline>
  'bar'
  <newline>
  EOO

  : same
  :
  $* <<EOI >>EOO
  foo # comment
  bar # comment
  EOI
  'foo'
  <newline>
  'bar'
  <newline>
  EOO
}

: multi-line
:
{
  : only
  :
  $* <<EOI >>:EOO
  #\
  comment
  comment
  #\
  EOI
  EOO

  : empty
  :
  $* <<EOI >>:EOO
  #\
  #\
  EOI
  EOO

  : start-same
  :
  $* <<EOI >>EOO
  foo #\
  comment
  comment
  #\
  EOI
  'foo'
  <newline>
  EOO

  : end-same
  :
  $* <<EOI >>EOO
  #\
  comment
  comment
  foo #\
  bar
  EOI
  'bar'
  <newline>
  EOO

  : end-not
  :
  $* <<EOI >>EOO
  #\
  comment
  #\ not an end
  foo #\
  bar
  EOI
  'bar'
  <newline>
  EOO

  : unterm
  :
  $* <<EOI 2>>EOE != 0
  #\
  comment
  EOI
  stdin:3:1: error: unterminated multi-line comment
  EOE
}