Changeset 838 for proto


Ignore:
Timestamp:
Dec 17, 2010, 4:12:43 PM (9 years ago)
Author:
lindanl
Message:

Line/Column? number tracking

Location:
proto/parabix2
Files:
1 added
1 edited

Legend:

Unmodified
Added
Removed
  • proto/parabix2/pablo_template.c

    r827 r838  
    2929
    3030#include "tag_matcher.h"
     31#include "LineColTracker.h"
    3132
    3233#ifdef BUFFER_PROFILING
     
    198199  @decl
    199200
     201
     202  LineColTracker tracker;
     203
    200204  BytePack U8[8];
    201205  BitBlock bit[8];
     
    214218 
    215219  chars_read = fread((void *)srcbuf, 1, BUFFER_SIZE + OVERLAP_BUFSIZE, infile);
    216   chars_avail = min(chars_read,BUFFER_SIZE);
     220  chars_avail = min(chars_read,BUFFER_SIZE); 
     221   
     222  tag_matcher t(srcbuf);
    217223 
    218224  if(chars_read<4){
     
    220226    exit(-1);
    221227  }
    222  
    223   tag_matcher t(srcbuf);
    224228
    225229  Entity_Info * e = new Entity_Info;
     
    289293
    290294        @block_stmts
     295               
     296        tracker.StoreNewlines(control.LF);     
    291297
    292298        if (bitblock_has_bit(simd_or(name_check,name_start_check))) {
     
    320326
    321327        if (bitblock_has_bit(error_mask)) {
    322           errpos = block_pos + buf_pos + count_forward_zeroes(error_mask);
    323           fprintf(stderr, "error found at position %i\n",errpos);
     328          fprintf(stderr, "error found at line %i, column %i\n",tracker.getLineNumber(error_mask), tracker.getColNumber(error_mask));
    324329          exit(-1);
    325330        }
    326331
    327332        t.store_streams(tag_marks, NameFollows, Misc_mask, chars_avail);
    328        
     333        tracker.AdvanceBlock();
    329334        block_pos += BLOCK_SIZE;
    330335      }
     
    340345        bit[0], bit[1], bit[2], bit[3], bit[4], bit[5], bit[6], bit[7]);
    341346
    342         @block_stmts
     347        @block_stmts   
     348       
     349        tracker.StoreNewlines(control.LF);     
    343350               
    344351        if (bitblock_has_bit(simd_or(name_check,name_start_check))) {
     
    372379       
    373380        if (bitblock_has_bit(error_mask)) {
    374           errpos = block_pos + buf_pos + count_forward_zeroes(error_mask);
    375           fprintf(stderr, "error found at position %i\n",errpos);
    376           exit(-1);
     381          fprintf(stderr, "error found at line %i, column %i\n",tracker.getLineNumber(error_mask), tracker.getColNumber(error_mask));
     382          exit(-1);
    377383        }
    378384
    379385        t.store_streams(tag_marks, NameFollows, Misc_mask, chars_avail);
    380 
     386        tracker.AdvanceBlock();
    381387        block_pos += BLOCK_SIZE;
    382388      }
Note: See TracChangeset for help on using the changeset viewer.