Changes between Version 5 and Version 6 of Taskforces/FCS/FCS-QL


Ignore:
Timestamp:
08/05/15 12:40:31 (9 years ago)
Author:
peter.beinema@mpi.nl
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Taskforces/FCS/FCS-QL

    v5 v6  
    114114 * rule 5: option marker '?' makes "[]" a valid query. Propose to remove question mark.
    115115 * expression [11] / basic expression [12]: structural ambiguity. See proposed alternative below.
     116== ENBF ==
    116117{{{
    117 // rules presented in antlr format
    118 //--- [2v2] no left recursion or ambiguity, 1 (optional) quantifier
    119 main_query :
    120       simple_query
    121     | simple_query '|' main_query       // 'or'
    122     | simple_query main_query           // sequence
    123     | simple_query quantifier           // quantification
    124     ;
     118[2 v2]   /* in combination with [3 v2] no more left recursion or ambiguity, max 1 quantifier per simple-query */
     119main-query ::=
     120      simple-query
     121    | simple-query '|' main-query       /* 'or' */
     122    | simple-query main-query           /* sequence */
     123    | simple-query quantifier           /* quantification */
    125124
    126 //--- [3v2]
    127 simple_query :
    128       '(' main_query ')'
    129     | implicit_query
    130     | segment_query
    131     ;
     125[3 v2]
    132126
    133 //--- [5v2] 'expression no longer optional
    134 segment_query :
     127simple_query ::=
     128      '(' main_query ')'  /* embedding moved from main-query to simple-query
     129    | implicit-query
     130    | segment-query
     131
     132[5 v2]  /* expression no longer optional */
     133segment-query :
    135134      '[' expression ']'
    136     ;
    137135
    138 //--- [11v2]
     136[11 v2]  /* in combination with [12 v2] no longer left recursive or ambiguous
    139137expression :
    140       basic_expression
    141     | basic_expression '|' expression   // or
    142     | basic_expression '&' expression   // and
    143     ;
     138      basic-expression
     139    | basic-expression '|' expression   // or
     140    | basic-expression '&' expression   // and
    144141
    145 //--- [12v2]
    146 basic_expression :
     142[12 v2]
     143basic-expression :
    147144      '(' expression ')'        // grouping
    148145    | '!' expression            // not
    149146    | attribute operator flagged_regexp
    150     ;
    151147
    152148}}}