\n not skipped

Zemantics
2014-06-04
2014-06-05
  • Zemantics

    Zemantics - 2014-06-04

    I have the following base mode that should skip the \n character among others:

    mode BASE : 
    <skip_range:  "#" "\n">
    <skip:  [ \t\n\r]>  
    <inheritable: only>
    {
        <<FAIL>> {
            self_accumulator_add(Lexeme, LexemeEnd); 
        }
    
        on_failure  => QUEX_TKN_LEXEME_NOT_FOUND(Lexeme);
    }
    

    Then I have:

    mode QUERY : BASE, END_OF_FILE
    <inheritable: no>
    {
        \C{"insert data"}
        {
            self_accumulator_flush(QUEX_TKN_INSERT_DATA); 
            self.push_mode(QUAD_DATA);
            RETURN;
        }
    
        \C{prefix}
        {
            self_accumulator_flush(QUEX_TKN_PREFIX); 
            self.push_mode(PREFIX_CLAUSE);
            RETURN;
        }
    }
    
    mode PREFIX_CLAUSE : BASE, END_OF_FILE
    <inheritable: no>
    {   
        // Check for variables
        {IRIREF} {
            if( LexemeL > 2 ) {
                self_accumulator_add(Lexeme+1, LexemeEnd-1);
            }
            self_accumulator_flush(QUEX_TKN_IRIREF); 
            self.pop_mode();
            RETURN;
        }
    
        {PNAME_NS} {
            if( LexemeL > 1 ) {
                self_accumulator_add(Lexeme, LexemeEnd-1);
            }
            self_accumulator_flush(QUEX_TKN_PNAME_NS); 
            RETURN;
        }
    }
    
    mode QUAD_DATA : BASE, END_OF_FILE
    <inheritable: no>
    {
       // Not important for question    
    }
    

    Relevant definitions are:

        IRIREF \X3C[^\X3C\X3E]*\X3E 
        PNAME_NS {PN_PREFIX}?"\X3A" 
    

    My problem is as follows; when I add a \n after a PREFIX statement the \n is not skipped but the termination token is instead added as a lexeme.

    Imagine this SPARQL query that I'm parsing:

    PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> \n
    INSERT DATA { "subject"^^xsd:int "predicate"^^xsd:float "object"^^xsd:anyUri }
    

    , I'm expecting the following tokens:

    (1, 1)          PREFIX ' '
    (1, 8)          PNAME_NS 'xsd'
    (1, 13)         IRIREF 'http://www.w3.org/2001/XMLSchema#'
    (1, 48)         INSERT_DATA ' '
    (1, 59)         BLOCK_START ' '
    (1, 60)         SUBJECT_STRING_LITERAL 'subject'
    (1, 69)         PREFIXED_LITERALTYPE 'xsd:int'
    (1, 79)         PREDICATE_STRING_LITERAL 'predicate'
    (1, 90)         PREFIXED_LITERALTYPE 'xsd:float'
    (1, 102)        OBJECT_STRING_LITERAL 'object'
    (1, 110)        PREFIXED_LITERALTYPE 'xsd:anyUri'
    (1, 122)        BLOCK_END ' '
    (1, 123)        <TERMINATION> ''
    

    , but I'm actually getting the following tokens as the \n is not skipped:

    (1, 1)          PREFIX ' '
    (1, 8)          PNAME_NS 'xsd'
    (1, 13)         IRIREF 'http://www.w3.org/2001/XMLSchema#'
    (1, 48)         <TERMINATION> '' <--- Whaaat???...
    

    If I remove the \n character the parsing works as expected.

    Any ideas what is the problem here? How can I get Quex to skip the \n ?

     
  • Zemantics

    Zemantics - 2014-06-04

    I also want to add that the error is also there if I remove the # character from http://www.w3.org/2001/XMLSchema , so its not skip range. The same error is also there if I remove

    <skip_range:  "#" "\n"> 
    

    from BASE.

     
    Last edit: Zemantics 2014-06-04
  • Frank-Rene Schäfer

    Did compilation with -DQUEX_OPTION_DEBUG_SHOW give you any hint what
    was going on?

     
  • Zemantics

    Zemantics - 2014-06-04

    I'm not sure how to read it, but here is the -DQUEX_OPTION_DEBUG_SHOW dump:

    quex_sparql_SparqlLexer.cpp:33120:      Init State
    quex_sparql_SparqlLexer.cpp:33121:      state 11031 ______________
    quex_sparql_SparqlLexer.cpp:33121:      input:           50 'P'
    quex_sparql_SparqlLexer.cpp:33121:      input position:  1
    quex_sparql_SparqlLexer.cpp:34131:      state 11035 ______________
    quex_sparql_SparqlLexer.cpp:34131:      input:           52 'R'
    quex_sparql_SparqlLexer.cpp:34131:      input position:  2
    quex_sparql_SparqlLexer.cpp:33512:      state 11063 ______________
    quex_sparql_SparqlLexer.cpp:33512:      input:           45 'E'
    quex_sparql_SparqlLexer.cpp:33512:      input position:  3
    quex_sparql_SparqlLexer.cpp:33529:      state 11064 ______________
    quex_sparql_SparqlLexer.cpp:33529:      input:           46 'F'
    quex_sparql_SparqlLexer.cpp:33529:      input position:  4
    quex_sparql_SparqlLexer.cpp:33546:      state 11065 ______________
    quex_sparql_SparqlLexer.cpp:33546:      input:           49 'I'
    quex_sparql_SparqlLexer.cpp:33546:      input position:  5
    quex_sparql_SparqlLexer.cpp:33563:      state 11066 ______________
    quex_sparql_SparqlLexer.cpp:33563:      input:           58 'X'
    quex_sparql_SparqlLexer.cpp:33563:      input position:  6
    quex_sparql_SparqlLexer.cpp:33579:      state 11067 ______________
    quex_sparql_SparqlLexer.cpp:33579:      input:           20 ' '
    quex_sparql_SparqlLexer.cpp:33579:      input position:  7
    quex_sparql_SparqlLexer.cpp:33580:      state 11067 ____<DROP OUT>
    quex_sparql_SparqlLexer.cpp:32772:      * terminal 8334:   \C{prefix}
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 1;
       _column_number_at_end   = 7;
    (1, 1)          PREFIX ' '
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1052:  Init State
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1053:  state 8381 ______________
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1053:  input:           20 ' '
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1053:  input position:  7
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1473:  state 8382 ______________
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1473:  input:           78 'x'
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1473:  input position:  8
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1474:  state 8382 ____<DROP OUT>
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1500:  * terminal 8069:   <skip: ... (c
    heck also base modes)>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 7;
       _column_number_at_end   = 8;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 7;
       _column_number_at_end   = 8;
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1052:  Init State
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1053:  state 8381 ______________
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1053:  input:           78 'x'
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1053:  input position:  8
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1218:  state 8383 ______________
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1218:  input:           73 's'
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1218:  input position:  9
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1218:  state 8383 ______________
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1218:  input:           64 'd'
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1218:  input position:  10
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1218:  state 8383 ______________
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1218:  input:           3A ':'
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1218:  input position:  11
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1433:  state 8385 ______________
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1433:  input:           20 ' '
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1433:  input position:  12
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1434:  state 8385 ____<DROP OUT>
    quex_sparql_SparqlLexer.cpp:1753:       * terminal 8074:   {PNAME_NS}
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 8;
       _column_number_at_end   = 12;
    (1, 8)          PNAME_NS 'xsd'
    Expecting: "xsd", actual: "xsd"
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1052:  Init State
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1053:  state 8381 ______________
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1053:  input:           20 ' '
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1053:  input position:  12
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1473:  state 8382 ______________
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1473:  input:           3C '<'
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1473:  input position:  13
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1474:  state 8382 ____<DROP OUT>
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1500:  * terminal 8069:   <skip: ... (c
    heck also base modes)>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 12;
       _column_number_at_end   = 13;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 12;
       _column_number_at_end   = 13;
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1052:  Init State
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1053:  state 8381 ______________
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1053:  input:           3C '<'
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1053:  input position:  13
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  state 8386 ______________
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input:           68 'h'
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input position:  14
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  state 8386 ______________
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input:           74 't'
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input position:  15
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  state 8386 ______________
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input:           74 't'
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input position:  16
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  state 8386 ______________
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input:           70 'p'
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input position:  17
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  state 8386 ______________
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input:           3A ':'
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input position:  18
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  state 8386 ______________
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input:           2F '/'
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input position:  19
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  state 8386 ______________
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input:           2F '/'
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input position:  20
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  state 8386 ______________
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input:           77 'w'
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input position:  21
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  state 8386 ______________
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input:           77 'w'
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input position:  22
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  state 8386 ______________
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input:           77 'w'
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input position:  23
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  state 8386 ______________
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input:           2E '.'
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input position:  24
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  state 8386 ______________
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input:           77 'w'
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input position:  25
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  state 8386 ______________
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input:           33 '3'
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input position:  26
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  state 8386 ______________
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input:           2E '.'
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input position:  27
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  state 8386 ______________
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input:           6F 'o'
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input position:  28
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  state 8386 ______________
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input:           72 'r'
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input position:  29
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  state 8386 ______________
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input:           67 'g'
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input position:  30
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  state 8386 ______________
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input:           2F '/'
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input position:  31
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  state 8386 ______________
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input:           32 '2'
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input position:  32
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  state 8386 ______________
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input:           30 '0'
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input position:  33
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  state 8386 ______________
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input:           30 '0'
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input position:  34
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  state 8386 ______________
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input:           31 '1'
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input position:  35
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  state 8386 ______________
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input:           2F '/'
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input position:  36
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  state 8386 ______________
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input:           58 'X'
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input position:  37
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  state 8386 ______________
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input:           4D 'M'
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input position:  38
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  state 8386 ______________
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input:           4C 'L'
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input position:  39
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  state 8386 ______________
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input:           53 'S'
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input position:  40
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  state 8386 ______________
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input:           63 'c'
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input position:  41
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  state 8386 ______________
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input:           68 'h'
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input position:  42
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  state 8386 ______________
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input:           65 'e'
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input position:  43
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  state 8386 ______________
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input:           6D 'm'
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input position:  44
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  state 8386 ______________
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input:           61 'a'
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input position:  45
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  state 8386 ______________
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input:           3E '>'
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1404:  input position:  46
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1441:  state 8389 ______________
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1441:  input:           20 ' '
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1441:  input position:  47
    ..\SPARQL1_1\quex_sparql_SparqlLexer.cpp:1442:  state 8389 ____<DROP OUT>
    quex_sparql_SparqlLexer.cpp:1733:       * terminal 8073:   {IRIREF}
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 13;
       _column_number_at_end   = 47;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 13;
       _column_number_at_end   = 47;
    (1, 13)         IRIREF 'http://www.w3.org/2001/XMLSchema'
    MLSchema"
    quex_sparql_SparqlLexer.cpp:33120:      Init State
    quex_sparql_SparqlLexer.cpp:33121:      state 11031 ______________
    quex_sparql_SparqlLexer.cpp:33121:      input:           20 ' '
    quex_sparql_SparqlLexer.cpp:33121:      input position:  47
    quex_sparql_SparqlLexer.cpp:34147:      state 11036 ______________
    quex_sparql_SparqlLexer.cpp:34147:      input:           00 ' '
    quex_sparql_SparqlLexer.cpp:34147:      input position:  48
    quex_sparql_SparqlLexer.cpp:34148:      state 11036 ____<DROP OUT>
    quex_sparql_SparqlLexer.cpp:34224:      * terminal 8325:   <skip: ... (check als
    o base modes)>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 47;
       _column_number_at_end   = 48;
    quex_sparql_SparqlLexer.cpp:32830:      __RELOAD_FORWARD
    quex_sparql_SparqlLexer.cpp:32844:      reload impossible
    (1, 48)         <TERMINATION> ''
    
     
  • Frank-Rene Schäfer

    > I'm not sure how to read it

    It follows a format close to gcc compiler outputs. Editors
    may take this as input and allow you to navigate through
    the analysis steps.

    In 'vim' you could ':set makeprg=cat' and ':make tmp.log' to
    step through the analysis the same way as you step through
    compile errors.

    > ... the -DQUEX_OPTION_DEBUG_SHOW dump: ...

    It hits on the end of buffer (Buffer Limit Code 0x00) and then
    realizes that there is no more data to load. If this is not the
    case, then there is an error. Could you provide a minimalist
    example?

    Best Regards

    Frank

     
  • Frank-Rene Schäfer

    I'll have at it look tonight. Thanks.

     
  • Frank-Rene Schäfer

    I started analyzing. 1st remark:

    When you use converters, you must rely on the function group
    prefixed with 'buffer_conversion_fill_region_...' rather than
    'buffer_fill_region_...'

     
  • Frank-Rene Schäfer

    Also, if you are using wstreams, then your input is most
    probably not UTF8, but UTF16 on Windows and UTF32 on Unix.

    Here are my first adaptions:

        // May be this is UTF16 on Windows.
        quex::sparql::SparqlLexer qlex((QUEX_TYPE_CHARACTER*)0x0, 0, 0x0, "UTF-32");
    
        // qlex.buffer_fill_region_prepare();
        qlex.buffer_conversion_fill_region_prepare();
    
        query.getline((wchar_t*)qlex.buffer_conversion_fill_region_begin(), 
                      qlex.buffer_conversion_fill_region_size() / sizeof(wchar_t));
    
        qlex.buffer_conversion_fill_region_finish((query.gcount() - 1) * sizeof(wchar_t));
    
     
  • Zemantics

    Zemantics - 2014-06-05

    It still won't work on Windows (not tested it on Linux). I have tried with "UTF16", "UTF-16" and "UTF-32" and "UTF32" (not likely on Windows though)

    int main(int argc, char** argv) 
    {        
        int number_of_tokens = 0;
        sparql1_1::Token* token_p = 0x0;
    
        std::wstringstream query(
            L"PREFIX xsd: <http://www.w3.org/2001/XMLSchema> \n" \
            L"INSERT DATA" \
            L"{" \
            L"\"subject\"^^xsd:int \"predicate\"^^xsd:float \"object\"^^xsd:anyUri" \
            L"}");
        query.seekp(0, std::ios_base::end);
        query << std::endl;
    
        quex::sparql::SparqlLexer qlex((QUEX_TYPE_CHARACTER*)0x0, 0, 0x0, "UTF16");
        qlex.buffer_conversion_fill_region_prepare();
    
        query.getline((wchar_t*)qlex.buffer_conversion_fill_region_begin(),
            qlex.buffer_conversion_fill_region_size() / sizeof(wchar_t));
    
        qlex.buffer_conversion_fill_region_finish((query.gcount() - 1) * sizeof(wchar_t));
    
        // (*) loop until the 'termination' token arrives
        do {
            // (*) get next token from the token stream
            qlex.receive(&token_p);
    
            std::cout << "(" << token_p->line_number() << ", " << token_p->column_number() << ")  \t";
            std::cout << *token_p << std::endl;
    
            ++number_of_tokens;
    
        } while (token_p->type_id() != QUEX_TKN_TERMINATION);
    
        return 0;
    }
    

    Program output is as follows:

    (1, 1)          LEXEME_NOT_FOUND 'ÕÇÇ'
    (1, 2)          LEXEME_NOT_FOUND 'ÕêÇ'
    (1, 3)          LEXEME_NOT_FOUND 'õöÇ'
    (1, 4)          LEXEME_NOT_FOUND 'õÿÇ'
    (1, 5)          LEXEME_NOT_FOUND 'õñÇ'
    (1, 6)          LEXEME_NOT_FOUND 'ÕáÇ'
    (1, 7)          LEXEME_NOT_FOUND 'ÔÇÇ'
    (1, 8)          LEXEME_NOT_FOUND 'þáÇ'
    (1, 9)          LEXEME_NOT_FOUND 'þîÇ'
    (1, 10)         LEXEME_NOT_FOUND '搀'
    (1, 11)         LEXEME_NOT_FOUND 'Ò¿Ç'
    (1, 12)         LEXEME_NOT_FOUND 'ÔÇÇ'
    (1, 13)         LEXEME_NOT_FOUND 'Ò░Ç'
    (1, 14)         LEXEME_NOT_FOUND '栀'
    (1, 15)         LEXEME_NOT_FOUND 'þÉÇ'
    (1, 16)         LEXEME_NOT_FOUND 'þÉÇ'
    (1, 17)         LEXEME_NOT_FOUND 'þÇÇ'
    (1, 18)         LEXEME_NOT_FOUND 'Ò¿Ç'
    (1, 19)         LEXEME_NOT_FOUND 'Ô╝Ç'
    (1, 20)         LEXEME_NOT_FOUND 'Ô╝Ç'
    (1, 21)         LEXEME_NOT_FOUND 'þ£Ç'
    (1, 22)         LEXEME_NOT_FOUND 'þ£Ç'
    (1, 23)         LEXEME_NOT_FOUND 'þ£Ç'
    (1, 24)         LEXEME_NOT_FOUND 'Ô©Ç'
    (1, 25)         LEXEME_NOT_FOUND 'þ£Ç'
    (1, 26)         LEXEME_NOT_FOUND 'ÒîÇ'
    (1, 27)         LEXEME_NOT_FOUND 'Ô©Ç'
    (1, 28)         LEXEME_NOT_FOUND '漀'
    (1, 29)         LEXEME_NOT_FOUND 'þêÇ'
    (1, 30)         LEXEME_NOT_FOUND '最'
    (1, 31)         LEXEME_NOT_FOUND 'Ô╝Ç'
    (1, 32)         LEXEME_NOT_FOUND 'ÒêÇ'
    (1, 33)         LEXEME_NOT_FOUND 'ÒÇÇ'
    (1, 34)         LEXEME_NOT_FOUND 'ÒÇÇ'
    (1, 35)         LEXEME_NOT_FOUND 'ÒäÇ'
    (1, 36)         LEXEME_NOT_FOUND 'Ô╝Ç'
    (1, 37)         LEXEME_NOT_FOUND 'ÕáÇ'
    (1, 38)         LEXEME_NOT_FOUND 'õ┤Ç'
    (1, 39)         LEXEME_NOT_FOUND 'õ░Ç'
    (1, 40)         LEXEME_NOT_FOUND 'ÕîÇ'
    (1, 41)         LEXEME_NOT_FOUND '挀'
    (1, 42)         LEXEME_NOT_FOUND '栀'
    (1, 43)         LEXEME_NOT_FOUND 'µöÇ'
    (1, 44)         LEXEME_NOT_FOUND '洀'
    (1, 45)         LEXEME_NOT_FOUND '愀'
    (1, 46)         LEXEME_NOT_FOUND 'Ò©Ç'
    (1, 47)         LEXEME_NOT_FOUND 'ÔÇÇ'
    (1, 48)         <TERMINATION> ''
    

    If I set it to "UTF8" then Que crashes with a runtime exception at:

        QUEX_INLINE void
        QUEX_BUFFER_ASSERT_NO_BUFFER_LIMIT_CODE(QUEX_TYPE_CHARACTER* Begin, 
                                                QUEX_TYPE_CHARACTER* End)
        {
            QUEX_TYPE_CHARACTER* iterator = 0x0;
            __quex_assert(Begin <= End);
    
            for(iterator = Begin; iterator != End; ++iterator) {
                if( *iterator != QUEX_SETTING_BUFFER_LIMIT_CODE ) continue;
    
                if( iterator == Begin ) {
                    QUEX_ERROR_EXIT("Buffer limit code character appeared as first character in buffer.\n"
                                    "This is most probably a load failure.\n");
                } else {
                    QUEX_ERROR_EXIT("Buffer limit code character appeared as normal text content.\n");
                }
            }
        } <----------- Debugger halts here with a runtime exception
    

    , which is bad since I trust the client to give the correct encoding.

     
    • Frank-Rene Schäfer

      Your setup assumes that the whole content is pasted into the buffer in
      one beat. But, in fact it seams that the 'raw buffer' which holds the
      content to be converted does not hold the whole string.

      There should be an example where repeated buffer filling is demonstrated.
      May be have a look at the 'stdinlexer' examples.

      2014-06-05 9:36 GMT+02:00 Inge Eivind Henriksen ihenriksen@users.sf.net:

      It still won't work on Windows (not tested it on Linux). I have tried with
      "UTF16", "UTF-16" and "UTF-32" and "UTF32" (not likely on Windows though)

      int main(int argc, char* argv)
      {
      int number_of_tokens = 0;
      sparql1_1::Token
      token_p = 0x0;

      std::wstringstream query(
          L"PREFIX xsd: <http://www.w3.org/2001/XMLSchema> \n" \
          L"INSERT DATA" \
          L"{" \
          L"\"subject\"^^xsd:int \"predicate\"^^xsd:float
      

      \"object\"^^xsd:anyUri" \ L"}");
      query.seekp(0, std::ios_base::end);
      query << std::endl;

      quex::sparql::SparqlLexer qlex((QUEX_TYPE_CHARACTER*)0x0, 0, 0x0,
      

      "UTF16");
      qlex.buffer_conversion_fill_region_prepare();

      query.getline((wchar_t*)qlex.buffer_conversion_fill_region_begin(),
          qlex.buffer_conversion_fill_region_size() / sizeof(wchar_t));
      
      qlex.buffer_conversion_fill_region_finish((query.gcount() - 1) *
      

      sizeof(wchar_t));

      // (*) loop until the 'termination' token arrives
      do {
          // (*) get next token from the token stream
          qlex.receive(&token_p);
      
          std::cout << "(" << token_p->line_number() << ", " <<
      

      token_p->column_number() << ") \t";
      std::cout << *token_p << std::endl;

          ++number_of_tokens;
      
      } while (token_p->type_id() != QUEX_TKN_TERMINATION);
      
      return 0;
      

      }

      Program output is as follows:

      (1, 1) LEXEME_NOT_FOUND 'ÕÇÇ'
      (1, 2) LEXEME_NOT_FOUND 'ÕêÇ'
      (1, 3) LEXEME_NOT_FOUND 'õöÇ'
      (1, 4) LEXEME_NOT_FOUND 'õÿÇ'
      (1, 5) LEXEME_NOT_FOUND 'õñÇ'
      (1, 6) LEXEME_NOT_FOUND 'ÕáÇ'
      (1, 7) LEXEME_NOT_FOUND 'ÔÇÇ'
      (1, 8) LEXEME_NOT_FOUND 'þáÇ'
      (1, 9) LEXEME_NOT_FOUND 'þîÇ'
      (1, 10) LEXEME_NOT_FOUND '搀'
      (1, 11) LEXEME_NOT_FOUND 'Ò¿Ç'
      (1, 12) LEXEME_NOT_FOUND 'ÔÇÇ'
      (1, 13) LEXEME_NOT_FOUND 'Ò░Ç'
      (1, 14) LEXEME_NOT_FOUND '栀'
      (1, 15) LEXEME_NOT_FOUND 'þÉÇ'
      (1, 16) LEXEME_NOT_FOUND 'þÉÇ'
      (1, 17) LEXEME_NOT_FOUND 'þÇÇ'
      (1, 18) LEXEME_NOT_FOUND 'Ò¿Ç'
      (1, 19) LEXEME_NOT_FOUND 'Ô╝Ç'
      (1, 20) LEXEME_NOT_FOUND 'Ô╝Ç'
      (1, 21) LEXEME_NOT_FOUND 'þ£Ç'
      (1, 22) LEXEME_NOT_FOUND 'þ£Ç'
      (1, 23) LEXEME_NOT_FOUND 'þ£Ç'
      (1, 24) LEXEME_NOT_FOUND 'Ô©Ç'
      (1, 25) LEXEME_NOT_FOUND 'þ£Ç'
      (1, 26) LEXEME_NOT_FOUND 'ÒîÇ'
      (1, 27) LEXEME_NOT_FOUND 'Ô©Ç'
      (1, 28) LEXEME_NOT_FOUND '漀'
      (1, 29) LEXEME_NOT_FOUND 'þêÇ'
      (1, 30) LEXEME_NOT_FOUND '最'
      (1, 31) LEXEME_NOT_FOUND 'Ô╝Ç'
      (1, 32) LEXEME_NOT_FOUND 'ÒêÇ'
      (1, 33) LEXEME_NOT_FOUND 'ÒÇÇ'
      (1, 34) LEXEME_NOT_FOUND 'ÒÇÇ'
      (1, 35) LEXEME_NOT_FOUND 'ÒäÇ'
      (1, 36) LEXEME_NOT_FOUND 'Ô╝Ç'
      (1, 37) LEXEME_NOT_FOUND 'ÕáÇ'
      (1, 38) LEXEME_NOT_FOUND 'õ┤Ç'
      (1, 39) LEXEME_NOT_FOUND 'õ░Ç'
      (1, 40) LEXEME_NOT_FOUND 'ÕîÇ'
      (1, 41) LEXEME_NOT_FOUND '挀'
      (1, 42) LEXEME_NOT_FOUND '栀'
      (1, 43) LEXEME_NOT_FOUND 'µöÇ'
      (1, 44) LEXEME_NOT_FOUND '洀'
      (1, 45) LEXEME_NOT_FOUND '愀'
      (1, 46) LEXEME_NOT_FOUND 'Ò©Ç'
      (1, 47) LEXEME_NOT_FOUND 'ÔÇÇ'
      (1, 48) <TERMINATION> ''

      If I set it to "UTF8" then Que crashes with a runtime exception at:

      QUEX_INLINE void
      QUEX_BUFFER_ASSERT_NO_BUFFER_LIMIT_CODE(QUEX_TYPE_CHARACTER* Begin,
                                              QUEX_TYPE_CHARACTER* End)
      {
          QUEX_TYPE_CHARACTER* iterator = 0x0;
          __quex_assert(Begin <= End);
      
          for(iterator = Begin; iterator != End; ++iterator) {
              if( *iterator != QUEX_SETTING_BUFFER_LIMIT_CODE ) continue;
      
              if( iterator == Begin ) {
                  QUEX_ERROR_EXIT("Buffer limit code character appeared as
      

      first character in buffer.\n"
      "This is most probably a load failure.\n");
      } else {
      QUEX_ERROR_EXIT("Buffer limit code character appeared as
      normal text content.\n");
      }
      }
      } <----------- Debugger halts here with a runtime exception

      , which is bad since I trust the client to give the correct encoding.


      \n not skipped


      Sent from sourceforge.net because you indicated interest in
      https://sourceforge.net/p/quex/discussion/574343/

      To unsubscribe from further messages, please visit
      https://sourceforge.net/auth/subscriptions/

       
  • Zemantics

    Zemantics - 2014-06-05

    Here is the ouput with -DQUEX_OPTION_DEBUG_SHOW :

    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           5000 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  1
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 1;
       _column_number_at_end   = 2;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 1;
       _column_number_at_end   = 2;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           5200 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  2
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 2;
       _column_number_at_end   = 3;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 2;
       _column_number_at_end   = 3;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           4500 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  3
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 3;
       _column_number_at_end   = 4;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 3;
       _column_number_at_end   = 4;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           4600 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  4
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 4;
       _column_number_at_end   = 5;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 4;
       _column_number_at_end   = 5;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           4900 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  5
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 5;
       _column_number_at_end   = 6;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 5;
       _column_number_at_end   = 6;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           5800 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  6
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 6;
       _column_number_at_end   = 7;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 6;
       _column_number_at_end   = 7;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           2000 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  7
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 7;
       _column_number_at_end   = 8;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 7;
       _column_number_at_end   = 8;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           7800 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  8
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 8;
       _column_number_at_end   = 9;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 8;
       _column_number_at_end   = 9;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           7300 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  9
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 9;
       _column_number_at_end   = 10;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 9;
       _column_number_at_end   = 10;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           6400 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  10
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 10;
       _column_number_at_end   = 11;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 10;
       _column_number_at_end   = 11;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           3A00 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  11
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 11;
       _column_number_at_end   = 12;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 11;
       _column_number_at_end   = 12;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           2000 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  12
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 12;
       _column_number_at_end   = 13;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 12;
       _column_number_at_end   = 13;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           3C00 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  13
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 13;
       _column_number_at_end   = 14;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 13;
       _column_number_at_end   = 14;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           6800 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  14
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 14;
       _column_number_at_end   = 15;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 14;
       _column_number_at_end   = 15;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           7400 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  15
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 15;
       _column_number_at_end   = 16;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 15;
       _column_number_at_end   = 16;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           7400 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  16
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 16;
       _column_number_at_end   = 17;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 16;
       _column_number_at_end   = 17;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           7000 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  17
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 17;
       _column_number_at_end   = 18;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 17;
       _column_number_at_end   = 18;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           3A00 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  18
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 18;
       _column_number_at_end   = 19;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 18;
       _column_number_at_end   = 19;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           2F00 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  19
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 19;
       _column_number_at_end   = 20;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 19;
       _column_number_at_end   = 20;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           2F00 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  20
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 20;
       _column_number_at_end   = 21;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 20;
       _column_number_at_end   = 21;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           7700 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  21
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 21;
       _column_number_at_end   = 22;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 21;
       _column_number_at_end   = 22;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           7700 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  22
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 22;
       _column_number_at_end   = 23;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 22;
       _column_number_at_end   = 23;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           7700 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  23
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 23;
       _column_number_at_end   = 24;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 23;
       _column_number_at_end   = 24;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           2E00 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  24
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 24;
       _column_number_at_end   = 25;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 24;
       _column_number_at_end   = 25;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           7700 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  25
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 25;
       _column_number_at_end   = 26;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 25;
       _column_number_at_end   = 26;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           3300 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  26
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 26;
       _column_number_at_end   = 27;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 26;
       _column_number_at_end   = 27;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           2E00 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  27
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 27;
       _column_number_at_end   = 28;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 27;
       _column_number_at_end   = 28;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           6F00 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  28
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 28;
       _column_number_at_end   = 29;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 28;
       _column_number_at_end   = 29;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           7200 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  29
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 29;
       _column_number_at_end   = 30;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 29;
       _column_number_at_end   = 30;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           6700 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  30
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 30;
       _column_number_at_end   = 31;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 30;
       _column_number_at_end   = 31;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           2F00 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  31
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 31;
       _column_number_at_end   = 32;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 31;
       _column_number_at_end   = 32;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           3200 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  32
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 32;
       _column_number_at_end   = 33;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 32;
       _column_number_at_end   = 33;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           3000 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  33
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 33;
       _column_number_at_end   = 34;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 33;
       _column_number_at_end   = 34;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           3000 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  34
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 34;
       _column_number_at_end   = 35;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 34;
       _column_number_at_end   = 35;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           3100 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  35
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 35;
       _column_number_at_end   = 36;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 35;
       _column_number_at_end   = 36;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           2F00 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  36
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 36;
       _column_number_at_end   = 37;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 36;
       _column_number_at_end   = 37;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           5800 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  37
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 37;
       _column_number_at_end   = 38;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 37;
       _column_number_at_end   = 38;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           4D00 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  38
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 38;
       _column_number_at_end   = 39;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 38;
       _column_number_at_end   = 39;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           4C00 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  39
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 39;
       _column_number_at_end   = 40;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 39;
       _column_number_at_end   = 40;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           5300 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  40
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 40;
       _column_number_at_end   = 41;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 40;
       _column_number_at_end   = 41;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           6300 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  41
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 41;
       _column_number_at_end   = 42;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 41;
       _column_number_at_end   = 42;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           6800 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  42
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 42;
       _column_number_at_end   = 43;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 42;
       _column_number_at_end   = 43;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           6500 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  43
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 43;
       _column_number_at_end   = 44;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 43;
       _column_number_at_end   = 44;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           6D00 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  44
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 44;
       _column_number_at_end   = 45;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 44;
       _column_number_at_end   = 45;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           6100 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  45
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 45;
       _column_number_at_end   = 46;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 45;
       _column_number_at_end   = 46;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           3E00 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  46
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 46;
       _column_number_at_end   = 47;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 46;
       _column_number_at_end   = 47;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           2000 '?'
    quex_sparql_SparqlLexer.cpp:321:        input position:  47
    quex_sparql_SparqlLexer.cpp:335:        state 777 ____<DROP OUT>
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 47;
       _column_number_at_end   = 48;
       Counter:
       _line_number_at_begin = 1;
       _line_number_at_end   = 1;
       _column_number_at_begin = 47;
       _column_number_at_end   = 48;
    quex_sparql_SparqlLexer.cpp:320:        Init State
    quex_sparql_SparqlLexer.cpp:321:        state 777 ______________
    quex_sparql_SparqlLexer.cpp:321:        input:           00 ' '
    quex_sparql_SparqlLexer.cpp:321:        input position:  48
    quex_sparql_SparqlLexer.cpp:1050:       __RELOAD_FORWARD
    quex_sparql_SparqlLexer.cpp:1060:       reload impossible
    
     

Log in to post a comment.