]> git.eshelyaron.com Git - emacs.git/commitdiff
semantic/bovine/c: Add support for typedef references
authorDavid Engster <deng@randomsample.de>
Sun, 25 Jan 2015 22:10:13 +0000 (23:10 +0100)
committerEdward John Steere <edward.steere@gmail.com>
Wed, 25 Jan 2017 15:59:25 +0000 (17:59 +0200)
* semantic/bovine/c.by (typedefname): Also parse optional
  reference qualifier.

* semantic/bovine/c.el (semantic-expand-c-tag-namelist): Add :reference
  attribute for typedefs.

* tests/cedet/semantic/ert/test-c-parser.el: Add tests for typedefs.

test/manual/cedet/cedet/semantic/ert/test-c-parser.el

index 050da7fb5b7f6c332fa857234aca72c9468b810d..f9e78449e6415d55732a5377774218efd82e7872 100644 (file)
        (setq actual (car actual))
        (test-c-parser-compare-tag actual expect)))
 
+;;;; Typedef
+
+(ert-deftest test-c-parser-typedef-01 ()
+  (let ((actual
+        (test-c-parser-bovinate "typedef int foo;"))
+       (expect '("foo" type (:typedef ("int") :type "typedef"))))
+    (should (test-c-check-tags-length actual 1))
+    (setq actual (car actual))
+    (test-c-parser-compare-tag actual expect)))
+
+(ert-deftest test-c-parser-typedef-02-pointer ()
+  (let ((actual
+        (test-c-parser-bovinate "typedef int* foo;"))
+       (expect '("foo" type (:typedef ("int") :pointer 1 :type "typedef"))))
+    (should (test-c-check-tags-length actual 1))
+    (setq actual (car actual))
+    (test-c-parser-compare-tag actual expect)))
+
+(ert-deftest test-c-parser-typedef-03-reference ()
+  (let ((actual
+        (test-c-parser-bovinate "typedef int& foo;"))
+       (expect '("foo" type (:typedef ("int") :reference 1 :type "typedef"))))
+    (should (test-c-check-tags-length actual 1))
+    (setq actual (car actual))
+    (test-c-parser-compare-tag actual expect)))
+
 (provide 'cedet/semantic/ert/test-c-parser)