как настроить правила гибкости / бизона для анализа запятой -delimited список аргументов

Я хотел бы иметь возможность анализировать непустой, состоящий из одного или нескольких элементов список, разделенный запятыми (и, возможно, заключенный в скобки), используя правила синтаксического анализа flex / bison.

некоторые, например анализируемых списков:

  • 1
  • 1,2
  • (1,2)
  • (3)
  • 3,4,5
  • (3,4,5,6)

и т. д.

Я использую следующие правила для анализа списка (конечный результат - это элемент синтаксического анализа "список верхнего уровня"), но они, похоже, не дают желаемого результата при синтаксическом анализе (я получаю синтаксическую ошибку при предоставлении действительный список). Есть предложения, как это настроить?

cList :   ELEMENT
           {
              ...
           }
        | cList COMMA ELEMENT
           {
              ...
           }
        ;

topLevelList :  LPAREN cList RPAREN
                 {
                     ...                 
                 }
              | cList
                 {
                     ...
                 }
          ;
7
задан lesmana 6 May 2013 в 14:32
поделиться