[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] scratch/merge-cedet-tests 8d32d3a 160/316: Fix parsing of
From: |
Edward John Steere |
Subject: |
[Emacs-diffs] scratch/merge-cedet-tests 8d32d3a 160/316: Fix parsing of default values and display them in default formatter |
Date: |
Sat, 28 Jan 2017 09:09:56 +0000 (UTC) |
branch: scratch/merge-cedet-tests
commit 8d32d3ae786770d1ff00c5b2c05ed355514a9ee7
Author: David Engster <address@hidden>
Commit: Edward John Steere <address@hidden>
Fix parsing of default values and display them in default formatter
* semantic/bovine/c.by (variablearg, varnamelist): Add default values
so that it can be later expanded into the tag.
(opt-stuff-after-symbol): Rename to 'brackets-after-symbol' and
remove empty match.
(multi-stage-dereference): Adapt to above rename.
(unaryexpression): Use 'symbol' instead of 'namespace-symbol', since
the latter also leads to an empty match at the end which would make
this too greedy.
* semantic/format.el (semantic-format-tag-prototype-default):
Display default values if available.
* semantic/test/manual/cedet/test-fmt.cpp: Add default values.
Parsing of default values for variables and function arguments was
broken with the refactoring done in rev. 7622. While fixing this, it
turned out that our parser for expressions like
char *foo = NULL;
was too greedy and also covered the semicolon because of empty matches
in rules 'opt-stuff-after-symbol' and 'opt-template-specifier',
leading to a variable with a default-value of "NULL;". This was fixed
by removing the empty match in 'opt-stuff-after-symbol' and using
'symbol' instead of 'namespace-symbol'.
---
.../manual/cedet/cedet/semantic/tests/test-fmt.cpp | 107 ++++++++++++++++++++
1 file changed, 107 insertions(+)
diff --git a/test/manual/cedet/cedet/semantic/tests/test-fmt.cpp
b/test/manual/cedet/cedet/semantic/tests/test-fmt.cpp
new file mode 100644
index 0000000..c907736
--- /dev/null
+++ b/test/manual/cedet/cedet/semantic/tests/test-fmt.cpp
@@ -0,0 +1,107 @@
+/** test-fmt.cpp --- Signatures, and format answers for testing
+ *
+ * Copyright (C) 2012, 2016 Eric M. Ludlam
+ *
+ * Author: Eric M. Ludlam <address@hidden>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+/*
+ * About semantic-fmt-utest :
+ *
+ * These tests validate two features:
+ * 1) The C++ parser can parse the different signatures
+ * 2) The semantic-tag-format-* functions can recreate them.
+ *
+ */
+
+void basic_fcn() { }
+/*
+ * ## name "basic_fcn"
+ * ## abbreviate "basic_fcn()"
+ * ## prototype "void basic_fcn ()"
+ * ## uml-prototype "basic_fcn () : void"
+ */
+
+int twoargs_fcn(int a, char b) { }
+/*
+ * ## name "twoargs_fcn"
+ * ## abbreviate "twoargs_fcn()"
+ * ## prototype "int twoargs_fcn (int a,char b)"
+ * ## uml-prototype "twoargs_fcn (a : int,b : char) : int"
+ */
+
+struct moose {
+ int field1;
+ char field2;
+};
+/*
+ * ## name "moose"
+ * ## abbreviate "moose{}"
+ * ## prototype "struct moose {}"
+ * ## uml-prototype "moose{} : struct"
+ */
+
+struct moose strct_fcn ( struct moose in, char *out);
+/*
+ * ## name "strct_fcn"
+ * ## abbreviate "strct_fcn()"
+ * ## prototype "struct moose strct_fcn (struct moose in,char* out)"
+ * ## uml-prototype "strct_fcn (in : struct moose,out : char*) : struct moose"
+ */
+
+struct moose *var_one = NULL;
+/*
+ * ## name "var_one"
+ * ## summarize "Variables: struct moose* var_one[=NULL]"
+ * ## prototype "struct moose* var_one[=NULL]"
+ * ## uml-prototype "var_one : struct moose*"
+ */
+
+const int var_two = 1;
+/*
+ * ## name "var_two"
+ * ## summarize "Variables: const int var_two[=1]"
+ * ## prototype "const int var_two[=1]"
+ * ## uml-prototype "var_two : int"
+ */
+
+namespace NS {
+ enum TestEnum {a,b};
+}
+/*
+ * ## name "NS"
+ * ## summarize "Types: namespace NS {}"
+ * ## prototype "namespace NS {}"
+ * ## uml-prototype "NS{} : namespace"
+ */
+
+void func_ns_arg(NS::TestEnum v = NS::a);
+/*
+ * ## name "func_ns_arg"
+ * ## summarize "Functions: void func_ns_arg (NS::TestEnum v[=NS::a])"
+ * ## prototype "void func_ns_arg (NS::TestEnum v[=NS::a])"
+ * ## uml-prototype "func_ns_arg (v : NS::TestEnum) : void"
+ */
+
+//int const var_three = 1;
+/*
+ * # # name "var_three"
+ * # # summarize "Variables: int const var_three" <-- this fails
+ * # # prototype "int const var_three" <-- this fails
+ * # # uml-prototype "var_three : int"
+ */
- [Emacs-diffs] scratch/merge-cedet-tests 9cac087 281/316: Remove obsolete cvs-auto-updated 'X-RCS' line., (continued)
- [Emacs-diffs] scratch/merge-cedet-tests 9cac087 281/316: Remove obsolete cvs-auto-updated 'X-RCS' line., Edward John Steere, 2017/01/28
- [Emacs-diffs] scratch/merge-cedet-tests 7eeab10 240/316: (cit-remove-and-do-shared-lib): Enable for use with Make projects too. Create the srcs in a new lib directory., Edward John Steere, 2017/01/28
- [Emacs-diffs] scratch/merge-cedet-tests a4e395c 156/316: Add a final call to ede list sanity check, Edward John Steere, 2017/01/28
- [Emacs-diffs] scratch/merge-cedet-tests 6d5a631 277/316: Add header comments and provide., Edward John Steere, 2017/01/28
- [Emacs-diffs] scratch/merge-cedet-tests bef87bf 290/316: Make unit tests use randomized file names, Edward John Steere, 2017/01/28
- [Emacs-diffs] scratch/merge-cedet-tests 47d9c79 295/316: Moved tests about, Edward John Steere, 2017/01/28
- [Emacs-diffs] scratch/merge-cedet-tests 02c7dbb 310/316: Move tests in cedet/semantic, Edward John Steere, 2017/01/28
- [Emacs-diffs] scratch/merge-cedet-tests 0a0dd27 167/316: Test typedef which has the keyword "class" included, Edward John Steere, 2017/01/28
- [Emacs-diffs] scratch/merge-cedet-tests dfddc2d 262/316: (cit-make-dist): Use cit-check-compilation-for-error., Edward John Steere, 2017/01/28
- [Emacs-diffs] scratch/merge-cedet-tests da4dd24 253/316: New test for testing ede/cpp-root projects., Edward John Steere, 2017/01/28
- [Emacs-diffs] scratch/merge-cedet-tests 8d32d3a 160/316: Fix parsing of default values and display them in default formatter,
Edward John Steere <=
- [Emacs-diffs] scratch/merge-cedet-tests e96e309 178/316: Added new subdir and ensure that the base dir, Edward John Steere, 2017/01/28
- [Emacs-diffs] scratch/merge-cedet-tests 4972b30 176/316: (ede, ede-make): New require (cit-srecode-verify-tags): Fix debugging output on failure. Patch from David Engster (cit-compile-and-wait): Use ede-make-command, Edward John Steere, 2017/01/28
- [Emacs-diffs] scratch/merge-cedet-tests e4d6b74 280/316: Use new create functions for db tools, Edward John Steere, 2017/01/28
- [Emacs-diffs] scratch/merge-cedet-tests 8cb6670 304/316: Fake ver_linux for project detection purposes., Edward John Steere, 2017/01/28
- [Emacs-diffs] scratch/merge-cedet-tests a25699b 222/316: semantic/bovine/c: Parse C++ override/final correctly, Edward John Steere, 2017/01/28
- [Emacs-diffs] scratch/merge-cedet-tests 2f8e8c8 272/316: Remove eieio bits and only use eieio bits for make types, Edward John Steere, 2017/01/28
- [Emacs-diffs] scratch/merge-cedet-tests 4ab930b 225/316: C++: Deal with 'using' statements when calculating scope, Edward John Steere, 2017/01/28
- [Emacs-diffs] scratch/merge-cedet-tests 800b575 081/316: Move tests in cedet/semantic, Edward John Steere, 2017/01/28
- [Emacs-diffs] scratch/merge-cedet-tests a9cd804 265/316: New tests., Edward John Steere, 2017/01/28
- [Emacs-diffs] scratch/merge-cedet-tests 4a820de 289/316: Fix provide. (cedet-utests): Remove., Edward John Steere, 2017/01/28