ECC: CParser remove \ in string.
[people/mcb30/basetools.git] / Source / Python / Ecc / C.g
index c61758c..8112800 100644 (file)
@@ -129,7 +129,7 @@ declaration
 \r
 declaration_specifiers\r
        :   (   storage_class_specifier\r
-               |   type_specifier pointer?\r
+               |   type_specifier\r
         |   type_qualifier\r
         )+\r
        ;\r
@@ -160,6 +160,7 @@ type_specifier
        | 'double'\r
        | 'signed'\r
        | 'unsigned'\r
+       | 'BOOLEAN'\r
        | s=struct_or_union_specifier {self.StoreStructUnionDefinition($s.start.line, $s.start.charPositionInLine, $s.stop.line, $s.stop.charPositionInLine, $s.text)}\r
        | e=enum_specifier {self.StoreEnumerationDefinition($e.start.line, $e.start.charPositionInLine, $e.stop.line, $e.stop.charPositionInLine, $e.text)}\r
        | (IDENTIFIER declarator)=> type_id\r
@@ -223,6 +224,7 @@ type_qualifier
        | 'IN'\r
        | 'OUT'\r
        | 'OPTIONAL'\r
+       | 'CONST'\r
        ;\r
 \r
 declarator\r
@@ -258,7 +260,9 @@ parameter_list
        ;\r
 \r
 parameter_declaration\r
-       : declaration_specifiers (declarator|abstract_declarator)+ ('OPTIONAL')?\r
+       : declaration_specifiers (declarator|abstract_declarator)* ('OPTIONAL')?\r
+       //accomerdate user-defined type only, no declarator follow.\r
+       | IDENTIFIER\r
        ;\r
 \r
 identifier_list\r