parseDefLine function

DefLine parseDefLine(
  1. ParsingContext context,
  2. int level
)

Implementation

DefLine parseDefLine(
    ParsingContext context,
    int level
    )
{
    var line = context.lineArray[ context.lineIndex ];
    var trimmedLine = line.trimLeft();
    var levelSpaceCount = level * context.levelSpaceCount;
    var lineSpaceCount = line.length - trimmedLine.length;

    if ( trimmedLine == '' )
    {
        line = '';
        lineSpaceCount = 0;
    }
    else
    {
        if ( lineSpaceCount < levelSpaceCount )
        {
            throwParsingError( 'Invalid DEF line', context, level );
        }

        line = line.substring( levelSpaceCount ).trimRight();
        lineSpaceCount -= levelSpaceCount;
    }

    context.lineIndex++;

    return DefLine( line: line, lineSpaceCount: lineSpaceCount );
}