code: private void parse( FormattableContainer currentRule ) {
          try {
              for( ;; ) {
                  int ch = reader.nextBlockMarker();
                  switch( ch ) {
                      case -1:
                          return; // end of input reached
                      case ';':
                          parseSemicolon( currentRule );
                          break;
                      case '{':
                          parseBlock( currentRule );
                          break;
                      default:
                          throw createException( "Unrecognized input: '" + reader.getLookAhead() + "'" );
                  }
              }
          } catch( LessException ex ) {
              ex.addPosition( reader.getFileName(), reader.getLine(), reader.getColumn() );
              throw ex;
          } catch( RuntimeException ex ) {
              LessException lessEx = new LessException( ex );
              lessEx.addPosition( reader.getFileName(), reader.getLine(), reader.getColumn() );
              throw lessEx;
          }
      }
docs: Parse main and import less files.
  @param currentRule the current container. This can be the root or a rule.