Changeset 13655


Ignore:
Timestamp:
Oct 3, 2019 2:33:18 PM (2 months ago)
Author:
mjohnsson
Message:

#1524 Final parse solution

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/dev-mj-5847/Compiler/ModelicaFrontEnd/src/parser/Modelica.parser

    r13620 r13655  
    2424%goal subscript;
    2525%typeof function_call_list = "SrcFunctionCallList";
    26 %typeof function_call_vector = "List";
     26%typeof function_calls_vector = "List";
    2727%goal function_call_list;
    2828
     
    4444
    4545%embed {:
    46 
    4746    /**
    4847     * Error reporting class that creates an error message and delegates reporting the
     
    15201519  ;
    15211520
    1522 List function_calls =
    1523     function_call SEMICOLON                       {: return new List().add(function_call); :}
    1524   | function_calls function_call SEMICOLON        {: return function_calls.add(function_call); :}
    1525   ;
    1526 
    1527 List function_call_vector =
    1528     function_call                                 {: return new List().add(function_call); :}
    1529   | function_call_vector COMMA function_call      {: return function_call_vector.add(function_call); :}
    1530   ;
    1531 
    1532 SrcFunctionCallList function_call_list
    1533     = LBRACE function_call_vector RBRACE
    1534     {:
    1535         return new SrcFunctionCallList(function_call_vector);
    1536     :}
    1537     | function_calls
    1538     {:
    1539         return new SrcFunctionCallList(function_calls);
    1540     :}
    1541     | function_call
    1542     {:
    1543         List l = new List().add(function_call);
    1544         return new SrcFunctionCallList(l);
    1545     :}
    1546     ;
    1547 
    1548 
    15491521SrcFunctionCall function_call
    15501522    = access
     
    16231595 
    16241596List arg_list_p =
     1597  emptyArray                            {: return new List().add(emptyArray); :}
    16251598  function_argument_exp                   {: return new List().add(function_argument_exp); :}
    16261599  | arg_list_p COMMA function_argument_exp  {: return arg_list_p.add(function_argument_exp); :}
     1600  | arg_list_p COMMA emptyArray
     1601                 {: return arg_list_p.add(emptyArray); :}
    16271602  ;
    16281603 
     
    17301705    :}
    17311706    ;
     1707
     1708//Extension
     1709List function_calls_stmt =
     1710    function_call SEMICOLON                   {: return new List().add(function_call); :}
     1711  | function_calls_stmt function_call SEMICOLON    {: return function_calls_stmt.add(function_call); :}
     1712  ;
     1713
     1714List function_calls_vector =
     1715    function_call                              {: return new List().add(function_call); :}
     1716  | function_calls_vector COMMA function_call  {: return function_calls_vector.add(function_call); :}
     1717  ;
     1718
     1719SrcFunctionCallList function_call_list
     1720    = LBRACE function_calls_vector RBRACE
     1721    {:
     1722        return new SrcFunctionCallList(function_calls_vector);
     1723    :}
     1724    | function_calls_stmt
     1725    {:
     1726        return new SrcFunctionCallList(function_calls_stmt);
     1727    :}
     1728    ;
     1729
     1730SrcArrayConstructor emptyArray =
     1731  LBRACE RBRACE
     1732                 {:
     1733                      return new SrcArrayConstructor(
     1734                      new SrcFunctionArguments(new List(), new List())
     1735                    );
     1736                 :}
     1737  | LBRACE emptyArray RBRACE
     1738                 {:   
     1739                      return new SrcArrayConstructor(
     1740                      new SrcFunctionArguments(new List().add(emptyArray), new List())
     1741                    );
     1742                 :}
     1743  ;
Note: See TracChangeset for help on using the changeset viewer.