[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: |
Fri, 27 Jan 2017 20:03:36 +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 7f97008 102/316: (Lisp): Add cit-android.el, (continued)
- [Emacs-diffs] scratch/merge-cedet-tests 7f97008 102/316: (Lisp): Add cit-android.el, Edward John Steere, 2017/01/27
- [Emacs-diffs] scratch/merge-cedet-tests 007464d 104/316: (cit/Lisp): Add cit-projvar.el, Edward John Steere, 2017/01/27
- [Emacs-diffs] scratch/merge-cedet-tests ded1e9b 109/316: EDE security tests, Edward John Steere, 2017/01/27
- [Emacs-diffs] scratch/merge-cedet-tests f91e2ce 114/316: New pretend system include for cpproot test., Edward John Steere, 2017/01/27
- [Emacs-diffs] scratch/merge-cedet-tests 3a7b458 110/316: Fixes for security tests, Edward John Steere, 2017/01/27
- [Emacs-diffs] scratch/merge-cedet-tests 302b4d7 107/316: eieio: Move to obsolete and use the one that ships with Emacs, Edward John Steere, 2017/01/27
- [Emacs-diffs] scratch/merge-cedet-tests 0e41dab 116/316: Move tests in cedet/semantic, Edward John Steere, 2017/01/27
- [Emacs-diffs] scratch/merge-cedet-tests 309ef34 124/316: Move tests in cedet/semantic, Edward John Steere, 2017/01/27
- [Emacs-diffs] scratch/merge-cedet-tests 800b575 081/316: Move tests in cedet/semantic, Edward John Steere, 2017/01/27
- [Emacs-diffs] scratch/merge-cedet-tests 702d44d 139/316: Fix how the target file name is created, Edward John Steere, 2017/01/27
- [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 a4e395c 156/316: Add a final call to ede list sanity check, Edward John Steere, 2017/01/27
- [Emacs-diffs] scratch/merge-cedet-tests 9ec7a1b 161/316: Move tests in cedet/semantic, Edward John Steere, 2017/01/27
- [Emacs-diffs] scratch/merge-cedet-tests 0927d4a 180/316: (cedet-integ-test-Make, cedet-integ-test-Automake, cedet-integ-test-GNUStep): New (cedet-integ-test-proj): Take a make-type argumemt. Misc tests needed on new argument. Change how ede creates projects based on make-type. Remove spaces from the project name. (cit-finish-message): Ending message now includes the make type., Edward John Steere, 2017/01/27
- [Emacs-diffs] scratch/merge-cedet-tests b804ecf 166/316: Move tests in cedet/semantic, Edward John Steere, 2017/01/27
- [Emacs-diffs] scratch/merge-cedet-tests a4202a0 188/316: Call external db testing suite, Edward John Steere, 2017/01/27
- [Emacs-diffs] scratch/merge-cedet-tests 3800edd 194/316: Fix provide. (cedet-uutil, srecode/semantic): New requires., Edward John Steere, 2017/01/27
- [Emacs-diffs] scratch/merge-cedet-tests a7281aa 202/316: Fix EIEIO methodinvoke-utest and semantic-fmt-utest., Edward John Steere, 2017/01/27
- [Emacs-diffs] scratch/merge-cedet-tests 2c1d730 190/316: Ignore Members On Extra Tags, Edward John Steere, 2017/01/27
- [Emacs-diffs] scratch/merge-cedet-tests 0ceb1ef 168/316: Integration Tests., Edward John Steere, 2017/01/27
- [Emacs-diffs] scratch/merge-cedet-tests 816e083 151/316: (ede-detect-utest-project-list): Add test for generic VC type project. (ede-detect-utest): Add fake autoloader for VC. (ede-detect-utest-generic-vc-p): New., Edward John Steere, 2017/01/27