Beispiel #1
0
 public void flushStartOfLine(SSLexMark q_mark)
 {
     ++this.m_line;
     ++this.m_start;
     --q_mark.m_line;
     this.m_offset = 1;
 }
 public SSLexLexeme(SSLexConsumer q_consumer, SSLexFinalState q_final, SSLexMark q_mark)
 {
     this.m_token  = q_final.token();
     this.m_line   = q_consumer.line();
     this.m_offset = q_consumer.offset();
     this.m_lexeme = q_consumer.lexemeBuffer(q_mark: q_mark);
     this.m_length = q_consumer.lexemeLength(q_mark: q_mark);
 }
Beispiel #3
0
 public virtual void flushLexeme(SSLexMark q_mark)
 {
     this.m_start       = this.m_index = q_mark.m_index;
     this.m_line       += q_mark.m_line;
     this.m_offset      = q_mark.m_offset;
     this.m_scanLine    = 0;
     this.m_scanOffset  = q_mark.m_offset;
     this.m_bufferIndex = 0;
 }
Beispiel #4
0
        public char[] lexemeBuffer(SSLexMark q_mark)
        {
            var length  = lexemeLength(q_mark: q_mark);
            var chArray = new char[length];

            for (var index = 0; index < length; ++index)
            {
                chArray[index] = this.m_buffer[index];
            }
            return(chArray);
        }
Beispiel #5
0
 public int lexemeLength(SSLexMark q_mark)
 {
     return(q_mark.index() - this.m_start);
 }
Beispiel #6
0
 public void flushEndOfLine(SSLexMark q_mark)
 {
     --q_mark.m_line;
     --q_mark.m_index;
 }