parseDefUnquotedString function

String parseDefUnquotedString(
  1. ParsingContext context,
  2. int level
)

Implementation

String parseDefUnquotedString(
    ParsingContext context,
    int level
    )
{
    var string = '';

    while ( context.lineIndex < context.lineArray.length )
    {
        var DefLine( :line, :lineSpaceCount )
            = parseDefLine( context, level );

        var tokenArray = getTokenArray( line );
        var lastToken = tokenArray.isNotEmpty ? tokenArray.last : '';

        if ( lastToken == '\\' )
        {
            tokenArray.removeLast();
            string += getUnescapedText( tokenArray );
        }
        else
        {
            if ( line.endsWith( '¨' )
                 && lastToken != '\\¨' )
            {
                tokenArray[ tokenArray.length - 1 ] = lastToken.substring( 0, lastToken.length - 1 );
            }

            string += getUnescapedText( tokenArray );

            return string;
        }
    }

    throwParsingError( 'Invalid DEF unquoted string', context, level );

    return '';
 }