stage1_2/iec_flex.ll
changeset 880 599e88d12f9a
parent 879 c61b2e370181
child 881 e05d69c1ccb3
equal deleted inserted replaced
879:c61b2e370181 880:599e88d12f9a
  1778 
  1778 
  1779 /*************************/
  1779 /*************************/
  1780 /* Tracking Functions... */
  1780 /* Tracking Functions... */
  1781 /*************************/
  1781 /*************************/
  1782 
  1782 
  1783 #define MAX_LINE_LENGTH 1000
  1783 #define MAX_LINE_LENGTH 1024
  1784 
  1784 
  1785 tracking_t *GetNewTracking(FILE* in_file) {
  1785 tracking_t *GetNewTracking(FILE* in_file) {
  1786   tracking_t* new_env = new tracking_t;
  1786   tracking_t* new_env = new tracking_t;
  1787   new_env->eof = 0;
  1787   new_env->eof = 0;
  1788   new_env->lineNumber = 0;
  1788   new_env->lineNumber = 0;
  1819         return 0;
  1819         return 0;
  1820       current_tracking->eof = true;
  1820       current_tracking->eof = true;
  1821       return 0;
  1821       return 0;
  1822     }
  1822     }
  1823     
  1823     
  1824     current_tracking->lineNumber++;
       
  1825     current_tracking->lineLength = strlen(current_tracking->buffer);
  1824     current_tracking->lineLength = strlen(current_tracking->buffer);
       
  1825     
       
  1826     /* only increment line number if the buffer was big enough to read the whole line! */
       
  1827     char last_char = current_tracking->buffer[current_tracking->lineLength - 1];
       
  1828     if (('\n' == last_char) || ('\r' == last_char))  // '\r' ---> CR, '\n'  ---> LF
       
  1829       current_tracking->lineNumber++;
  1826   }
  1830   }
  1827   
  1831   
  1828   b[0] = current_tracking->buffer[current_tracking->currentChar];
  1832   b[0] = current_tracking->buffer[current_tracking->currentChar];
  1829   if (b[0] == ' ' || b[0] == '\t')
  1833   if (b[0] == ' ' || b[0] == '\t')
  1830     current_tracking->currentTokenStart++;
  1834     current_tracking->currentTokenStart++;