'CMAKE_MINIMUM_REQUIRED' Name.Builtin
'('           Punctuation
'VERSION'     Literal.String
' '           Text.Whitespace
'2.6'         Literal.String
' '           Text.Whitespace
'FATAL_ERROR' Literal.String
')'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'SET'         Name.Builtin
'('           Punctuation
' '           Text.Whitespace
'SOURCES'     Literal.String
' '           Text.Whitespace
'back.c'      Literal.String
' '           Text.Whitespace
'io.c'        Literal.String
' '           Text.Whitespace
'main.c'      Literal.String
' '           Text.Whitespace
')'           Punctuation
'\n'          Text.Whitespace

'SET'         Name.Builtin
'('           Punctuation
' '           Text.Whitespace
'PATH'        Literal.String
' '           Text.Whitespace
'$ENV{'       Operator
'PATH'        Name.Variable
'}'           Operator
' '           Text.Whitespace
')'           Punctuation
'\n'          Text.Whitespace

'MESSAGE'     Name.Builtin
'('           Punctuation
' '           Text.Whitespace
'${'          Operator
'SOURCES'     Name.Variable
'}'           Operator
'   '         Text.Whitespace
')'           Punctuation
'      '      Text.Whitespace
'# three arguments, prints "back.cio.cmain.c"\n' Comment

'MESSAGE'     Name.Builtin
'('           Punctuation
' '           Text.Whitespace
'"${SOURCES}"' Literal.String.Double
' '           Text.Whitespace
')'           Punctuation
'      '      Text.Whitespace
'# one argument,    prints "back.c;io.c;main.c"\n' Comment

'MESSAGE'     Name.Builtin
'('           Punctuation
' '           Text.Whitespace
'""'          Literal.String.Double
' '           Text.Whitespace
')'           Punctuation
'                ' Text.Whitespace
'# one argument,    prints "" an empty line\n' Comment

'MESSAGE'     Name.Builtin
'('           Punctuation
' '           Text.Whitespace
'"${EMPTY_STRING}"' Literal.String.Double
' '           Text.Whitespace
')'           Punctuation
' '           Text.Whitespace
'# one argument,    prints "" an empty line\n' Comment

'MESSAGE'     Name.Builtin
'('           Punctuation
' '           Text.Whitespace
'${'          Operator
'EMPTY_STRING' Name.Variable
'}'           Operator
' '           Text.Whitespace
')'           Punctuation
'   '         Text.Whitespace
'# zero arguments,  causes CMake Error\n' Comment

'                             ' Text.Whitespace
'# "MESSAGE called with incorrect number of arguments"\n' Comment

'MESSAGE'     Name.Builtin
'('           Punctuation
' '           Text.Whitespace
'\\\\\\"\\'   Literal.String
' '           Text.Whitespace
'\\(\\)\\#\\$\\^' Literal.String
' '           Text.Whitespace
')'           Punctuation
' '           Text.Whitespace
'# this message contains literal characters\n' Comment

'\n'          Text.Whitespace

'MESSAGE'     Name.Builtin
'('           Punctuation
' '           Text.Whitespace
'"This is practice."' Literal.String.Double
' '           Text.Whitespace
')'           Punctuation
'  '          Text.Whitespace
'# prints "This is practice."\n' Comment

'MESSAGE'     Name.Builtin
'('           Punctuation
' '           Text.Whitespace
'"This;is;practice."' Literal.String.Double
' '           Text.Whitespace
')'           Punctuation
'  '          Text.Whitespace
'# prints "This;is;practice."\n' Comment

'MESSAGE'     Name.Builtin
'('           Punctuation
' '           Text.Whitespace
'"Hi. ) MESSAGE( x )"' Literal.String.Double
' '           Text.Whitespace
')'           Punctuation
' '           Text.Whitespace
'# prints "Hi. ) MESSAGE( x )"\n' Comment

'\n'          Text.Whitespace

'MESSAGE'     Name.Builtin
'('           Punctuation
' '           Text.Whitespace
'"Welc"'      Literal.String.Double
'ome'         Literal.String
' '           Text.Whitespace
')'           Punctuation
' '           Text.Whitespace
'# rule 1\n'  Comment

'MESSAGE'     Name.Builtin
'('           Punctuation
' '           Text.Whitespace
'Welc'        Literal.String
'"ome"'       Literal.String.Double
' '           Text.Whitespace
')'           Punctuation
' '           Text.Whitespace
'# rule 3\n'  Comment

'MESSAGE'     Name.Builtin
'('           Punctuation
' '           Text.Whitespace
'Welc'        Literal.String
'"ome)"'      Literal.String.Double
' '           Text.Whitespace
')'           Punctuation
' '           Text.Whitespace
'# rule 2\n'  Comment

'MESSAGE'     Name.Builtin
'('           Punctuation
' '           Text.Whitespace
'""'          Literal.String.Double
'Thanks'      Literal.String
' '           Text.Whitespace
')'           Punctuation
' '           Text.Whitespace
'# rule 1\n'  Comment

'MESSAGE'     Name.Builtin
'('           Punctuation
' '           Text.Whitespace
'Thanks'      Literal.String
'""'          Literal.String.Double
' '           Text.Whitespace
')'           Punctuation
' '           Text.Whitespace
'# rule 3\n'  Comment

'\n'          Text.Whitespace

'message'     Name.Builtin
'('           Punctuation
'[==[\nthis is a\nmultiline argument\n]==]' Literal.String.Multiline
')'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'SET'         Name.Builtin
'('           Punctuation
' '           Text.Whitespace
'x'           Literal.String
' '           Text.Whitespace
'y'           Literal.String
' '           Text.Whitespace
'A'           Literal.String
' '           Text.Whitespace
'B'           Literal.String
' '           Text.Whitespace
'C'           Literal.String
' '           Text.Whitespace
')'           Punctuation
'              ' Text.Whitespace
'# stores "y;A;B;C" in x (without quote)\n' Comment

'SET'         Name.Builtin
'('           Punctuation
' '           Text.Whitespace
'${'          Operator
'x'           Name.Variable
'}'           Operator
' '           Text.Whitespace
')'           Punctuation
'                   ' Text.Whitespace
'# => SET( y;A;B;C ) => SET( y A B C)\n' Comment

'MESSAGE'     Name.Builtin
'('           Punctuation
' '           Text.Whitespace
'${'          Operator
'y'           Name.Variable
'}'           Operator
' '           Text.Whitespace
')'           Punctuation
'               ' Text.Whitespace
'# prints "ABC" to stdout (without quotes)\n' Comment

'SET'         Name.Builtin
'('           Punctuation
' '           Text.Whitespace
'y'           Literal.String
' '           Text.Whitespace
'x'           Literal.String
' '           Text.Whitespace
')'           Punctuation
'                    ' Text.Whitespace
'# stores "x" in y (without quotes)\n' Comment

'SET'         Name.Builtin
'('           Punctuation
' '           Text.Whitespace
'${'          Operator
'y'           Name.Variable
'}'           Operator
' '           Text.Whitespace
'y'           Literal.String
' '           Text.Whitespace
'='           Literal.String
' '           Text.Whitespace
'x'           Literal.String
' '           Text.Whitespace
')'           Punctuation
'             ' Text.Whitespace
'# => SET( x y )\n' Comment

'MESSAGE'     Name.Builtin
'('           Punctuation
' '           Text.Whitespace
'"\\${x} = \'${x}\'"' Literal.String.Double
' '           Text.Whitespace
')'           Punctuation
'   '         Text.Whitespace
'# prints "${x} = \'y;=;x\'" to stdout (without quotes)\n' Comment

'SET'         Name.Builtin
'('           Punctuation
' '           Text.Whitespace
'y'           Literal.String
' '           Text.Whitespace
'${'          Operator
'x'           Name.Variable
'}'           Operator
' '           Text.Whitespace
')'           Punctuation
'                 ' Text.Whitespace
'# => SET( y y = x ) => stores "y;=;x" in y (without quotes)\n' Comment

'MESSAGE'     Name.Builtin
'('           Punctuation
' '           Text.Whitespace
'${'          Operator
'y'           Name.Variable
'}'           Operator
' '           Text.Whitespace
')'           Punctuation
'               ' Text.Whitespace
'# prints "y=x" to stdout (without quotes)\n' Comment

'\n'          Text.Whitespace

'SET'         Name.Builtin
'('           Punctuation
' '           Text.Whitespace
'x'           Literal.String
' '           Text.Whitespace
'a'           Literal.String
' '           Text.Whitespace
'b'           Literal.String
' '           Text.Whitespace
'c'           Literal.String
'   '         Text.Whitespace
')'           Punctuation
' '           Text.Whitespace
'# stores "a;b;c" in x      (without quotes)\n' Comment

'SET'         Name.Builtin
'('           Punctuation
' '           Text.Whitespace
'y'           Literal.String
' '           Text.Whitespace
'"a b c"'     Literal.String.Double
' '           Text.Whitespace
')'           Punctuation
' '           Text.Whitespace
'# stores "a b c" in y      (without quotes)\n' Comment

'MESSAGE'     Name.Builtin
'('           Punctuation
' '           Text.Whitespace
'a'           Literal.String
' '           Text.Whitespace
'b'           Literal.String
' '           Text.Whitespace
'c'           Literal.String
' '           Text.Whitespace
')'           Punctuation
' '           Text.Whitespace
'# prints "abc"   to stdout (without quotes)\n' Comment

'MESSAGE'     Name.Builtin
'('           Punctuation
' '           Text.Whitespace
'${'          Operator
'x'           Name.Variable
'}'           Operator
' '           Text.Whitespace
')'           Punctuation
'  '          Text.Whitespace
'# prints "abc"   to stdout (without quotes)\n' Comment

'MESSAGE'     Name.Builtin
'('           Punctuation
'"${x}"'      Literal.String.Double
')'           Punctuation
'  '          Text.Whitespace
'# prints "a;b;c" to stdout (without quotes)\n' Comment

'MESSAGE'     Name.Builtin
'('           Punctuation
' '           Text.Whitespace
'${'          Operator
'y'           Name.Variable
'}'           Operator
' '           Text.Whitespace
')'           Punctuation
'  '          Text.Whitespace
'# prints "a b c" to stdout (without quotes)\n' Comment

'MESSAGE'     Name.Builtin
'('           Punctuation
'"${y}"'      Literal.String.Double
')'           Punctuation
'  '          Text.Whitespace
'# prints "a b c" to stdout (without quotes)\n' Comment

'\n'          Text.Whitespace

'# This is a comment.\n' Comment

'COMMAND'     Name.Builtin
'('           Punctuation
' '           Text.Whitespace
'arguments'   Literal.String
' '           Text.Whitespace
'go'          Literal.String
' '           Text.Whitespace
'here'        Literal.String
' '           Text.Whitespace
')'           Punctuation
'\n'          Text.Whitespace

'ANOTHER_COMMAND' Name.Builtin
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'# this command has no arguments\n' Comment

'YET_ANOTHER_COMMAND' Name.Builtin
'('           Punctuation
' '           Text.Whitespace
'these'       Literal.String
'\n'          Text.Whitespace

'  '          Text.Whitespace
'arguments'   Literal.String
' '           Text.Whitespace
'are'         Literal.String
' '           Text.Whitespace
'spread'      Literal.String
'         '   Text.Whitespace
'# another comment\n' Comment

'  '          Text.Whitespace
'over'        Literal.String
' '           Text.Whitespace
'several'     Literal.String
' '           Text.Whitespace
'lines'       Literal.String
' '           Text.Whitespace
')'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'#[[ multiline\nCMake comment\n]]' Comment
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'#[==[ another multiline\nCMake comment\n]==]' Comment
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'#[==[ #[[ A "nested" comment ]] ]==]' Comment
'\n'          Text.Whitespace
