src/ogdl/OgdlParser.java
changeset 12 3932322b7d83
parent 0 8bc2bfcd1bd8
equal deleted inserted replaced
11:27ba8edb3437 12:3932322b7d83
    38     protected Reader r;
    38     protected Reader r;
    39     int line=1, level=-1, groups[], lineInd[], lineLevel, groupLevel, groupIndex=0;
    39     int line=1, level=-1, groups[], lineInd[], lineLevel, groupLevel, groupIndex=0;
    40     
    40     
    41     int savedSpaces = 0;
    41     int savedSpaces = 0;
    42     boolean savedNewline = false;
    42     boolean savedNewline = false;
       
    43 
       
    44     boolean continueParsing = true;
    43 
    45 
    44     private IParserHandler event;
    46     private IParserHandler event;
    45 
    47 
    46     /* leaf buffer, for first level string processing: escape sequences */
    48     /* leaf buffer, for first level string processing: escape sequences */
    47     StringBuffer sb;
    49     StringBuffer sb;
   257     }
   259     }
   258     
   260     
   259     public int node() throws IOException
   261     public int node() throws IOException
   260     { 
   262     { 
   261         if (block()) {
   263         if (block()) {
   262             event.event(CONTENT,level, sb.toString());
   264             continueParsing = event.event(CONTENT,level, sb.toString());
   263             return -1;
   265             return -1;
   264         }
   266         }
   265     
   267     
   266         if (!quoted() && !comment() && !word() && !separator())
   268         if (!quoted() && !comment() && !word() && !separator())
   267             return 0;
   269             return 0;
   289         }
   291         }
   290         else if (c == '#')
   292         else if (c == '#')
   291             return 1;
   293             return 1;
   292     
   294     
   293         if (len != 0) 
   295         if (len != 0) 
   294             event.event(CONTENT, level, sb.toString());
   296             continueParsing = event.event(CONTENT, level, sb.toString());
   295 
   297 
   296         level++;   
   298         level++;   
   297    
   299    
   298         return 1;
   300         return 1;
   299     }
   301     }
   329 
   331 
   330         level = lineLevel;
   332         level = lineLevel;
   331 
   333 
   332         while ( (i=node()) > 0) 
   334         while ( (i=node()) > 0) 
   333             space();
   335             space();
       
   336 	if (!continueParsing)
       
   337 		return false;
   334 
   338 
   335         if (i > 0) {        /* after a block don't eat spaces */
   339         if (i > 0) {        /* after a block don't eat spaces */
   336             space();
   340             space();
   337             newline();
   341             newline();
   338         }
   342         }