From 14a0bcc74a121525917aefc8c9034e283e94884b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Szyde=C5=82ko?= Date: Sat, 20 May 2017 08:14:27 +0200 Subject: Fix C# property initializer parsing int Property {get; set;} = 23; The parser was ending the property at the closing bracket, which resulted in the initializer being assigned to the following property. --- src/scanner.l | 10 ++++++++ testing/066/class_class1.xml | 50 +++++++++++++++++++++++++++++++++++++ testing/066_property_initializer.cs | 7 ++++++ 3 files changed, 67 insertions(+) create mode 100644 testing/066/class_class1.xml create mode 100644 testing/066_property_initializer.cs diff --git a/src/scanner.l b/src/scanner.l index 9ff082d..632c8a5 100644 --- a/src/scanner.l +++ b/src/scanner.l @@ -6198,6 +6198,14 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}) } } "{" { curlyCount++; } +"}"{B}*"=" { + // fall back to next rule if it's not the right bracket + if (curlyCount != 0) REJECT; + current->initializer = "="; + current->endBodyLine=yyLineNr; + lastInitializerContext = FindMembers; + BEGIN(ReadInitializer); + } "}" { if (curlyCount) { @@ -6207,6 +6215,8 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}) { mtype = Method; virt = Normal; + // not really important, but while we are at it + current->endBodyLine=yyLineNr; unput(';'); BEGIN(FindMembers); } diff --git a/testing/066/class_class1.xml b/testing/066/class_class1.xml new file mode 100644 index 0000000..008bcc6 --- /dev/null +++ b/testing/066/class_class1.xml @@ -0,0 +1,50 @@ + + + + Class1 + + + int + int Class1.Property1 + + Property1 + = 1 + + + + + + + + + + string + string Class1.Property2 + + Property2 + + + + + + + + + + + + + + + + + Class1 + Property1 + + + Class1 + Property2 + + + + diff --git a/testing/066_property_initializer.cs b/testing/066_property_initializer.cs new file mode 100644 index 0000000..d5b5c59 --- /dev/null +++ b/testing/066_property_initializer.cs @@ -0,0 +1,7 @@ +// objective: C# property initializer +// check: class_class1.xml +class Class1 +{ + public int Property1 { get; } = 1; + public string Property2 { get; set; } +} -- cgit v0.12 From 31cf78d223e52fe078ad9b0651672aeb73926065 Mon Sep 17 00:00:00 2001 From: albert-github Date: Sun, 4 Jun 2017 12:52:50 +0200 Subject: Correction of non reachable links and redirected links in documentation. The W3C link checker reported a number of problems regarding non reachable links and permanent redirects. Most of these problems have been fixed with this patch --- doc/commands.doc | 12 ++++++------ doc/customize.doc | 4 ++-- doc/docblocks.doc | 14 +++++++------- doc/extsearch.doc | 12 ++++++------ doc/faq.doc | 2 +- doc/formulas.doc | 2 +- doc/grouping.doc | 2 +- doc/index.doc | 2 +- doc/install.doc | 22 +++++++++++----------- doc/markdown.doc | 10 +++++----- doc/searching.doc | 4 ++-- doc/starting.doc | 2 +- src/config.xml | 38 +++++++++++++++++++------------------- 13 files changed, 63 insertions(+), 63 deletions(-) diff --git a/doc/commands.doc b/doc/commands.doc index 70b89c6..4357fba 100644 --- a/doc/commands.doc +++ b/doc/commands.doc @@ -433,7 +433,7 @@ Structural indicators \par Example: \include enum.h \htmlonly - Click here + Click here for the corresponding HTML documentation that is generated by doxygen. \endhtmlonly \latexonly @@ -565,7 +565,7 @@ Structural indicators \par Example: \include func.h \htmlonly - Click here + Click here for the corresponding HTML documentation that is generated by doxygen. \endhtmlonly \latexonly @@ -823,7 +823,7 @@ Structural indicators \par Example: \include overload.cpp \htmlonly - Click here + Click here for the corresponding HTML documentation that is generated by doxygen. \endhtmlonly \latexonly @@ -1121,7 +1121,7 @@ Structural indicators
\section cmdweakgroup \\weakgroup [(title)] - \addindex \\addtogroup + \addindex \\weakgroup Can be used exactly like \ref cmdaddtogroup "\\addtogroup", but has a lower priority when it comes to resolving conflicting grouping definitions. @@ -1513,7 +1513,7 @@ ALIASES = "english=\if english" \ \par Example: \include par.cpp \htmlonly - Click here + Click here for the corresponding HTML documentation that is generated by doxygen. \endhtmlonly \latexonly @@ -2704,7 +2704,7 @@ class Receiver \addindex \\startuml Starts a text fragment which should contain a valid description of a - PlantUML diagram. See http://plantuml.sourceforge.net/ for examples. + PlantUML diagram. See http://plantuml.com/ for examples. The text fragment ends with \ref cmdenduml "\\enduml". \note You need to install Java and the PlantUML's jar file, if you want to use this command. The location of the jar file should be specified diff --git a/doc/customize.doc b/doc/customize.doc index f98ce0b..9ef3891 100644 --- a/doc/customize.doc +++ b/doc/customize.doc @@ -90,7 +90,7 @@ that are disabled by default: To tweak things like fonts or colors, margins, or other look \& feel aspects of the HTML output in detail, you can create a different -cascading style sheet. +cascading style sheet. You can also let doxygen use a custom header and footer for each HTML page it generates, for instance to make the output conform to the style used on the rest of your web site. @@ -390,7 +390,7 @@ files as one big DOM tree would not fit into memory. See the Breathe project for an example that uses doxygen XML output from Python to bridge it with the -Sphinx document generator. +Sphinx document generator. \htmlonly diff --git a/doc/docblocks.doc b/doc/docblocks.doc index f0499c6..81cfdd0 100644 --- a/doc/docblocks.doc +++ b/doc/docblocks.doc @@ -260,7 +260,7 @@ Here is an example of the use of these comment blocks: \include afterdoc.h \htmlonly

- Click here + Click here for the corresponding HTML documentation that is generated by doxygen. \endhtmlonly \latexonly @@ -281,7 +281,7 @@ Here is an example of a documented piece of C++ code using the Qt style: \include qtstyle.cpp \htmlonly

- Click here + Click here for the corresponding HTML documentation that is generated by doxygen. \endhtmlonly \latexonly @@ -316,7 +316,7 @@ JavaDoc style and \ref cfg_javadoc_autobrief "JAVADOC_AUTOBRIEF" set to YES: \include jdstyle.cpp \htmlonly

- Click here + Click here for the corresponding HTML documentation that is generated by doxygen. \endhtmlonly \latexonly @@ -634,7 +634,7 @@ need for some more structure, like a block of verbatim text, a list, or a simple table. For this doxygen supports the Markdown syntax, including parts of the -Markdown Extra +Markdown Extra extension. Markdown is designed to be very easy to read and write. @@ -646,13 +646,13 @@ directly. For more details see chapter \ref markdown. For programming language specific formatting doxygen has two forms of additional markup on top of Markdown formatting. -1. Javadoc like markup. +1. Javadoc like markup. See \ref commands for a complete overview of all commands supported by doxygen. -2. XML markup +2. XML markup as specified in the C# standard. See \ref xmlcmds for the XML commands supported by doxygen. If this is still not enough doxygen also supports a \ref htmlcmds "subset" of -the HTML markup language. +the HTML markup language. \htmlonly Go to the next section or return to the diff --git a/doc/extsearch.doc b/doc/extsearch.doc index cead851..99a7219 100644 --- a/doc/extsearch.doc +++ b/doc/extsearch.doc @@ -52,7 +52,7 @@ The data flow is shown in the following diagram: The first step is to make the search engine available via a web server. If you use `doxysearch.cgi` this means making the -CGI binary +CGI binary available from the web server (i.e. be able to run it from a browser via an URL starting with http:) @@ -187,7 +187,7 @@ The next subsections describe these interfaces in more detail. \subsection extsearch_api_index Indexer input format The search data produced by doxygen follows the -Solr XML index message +Solr XML index message format. The input for the indexer is an XML file, which consists of one `` tag containing @@ -224,12 +224,12 @@ Each field has a name. The following field names are supported: - *text*: the documentation associated with the item. Note that only words are present, no markup. @note Due to the potentially large size of the XML file, it is recommended to use a -SAX based parser to process it. +SAX based parser to process it. \subsection extsearch_api_search_in Search URL format When the search engine is invoked from a doxygen generated HTML page, a number of parameters are -passed to via the query string. +passed to via the query string. The following fields are passed: - *q*: the query text as entered by the user @@ -247,14 +247,14 @@ It represents a query for the word 'list' (`q=list`) requesting 20 search result starting with the result number 20 (`p=1`) and using callback 'dummy' (`cb=dummy`): -@note The values are URL encoded so they +@note The values are URL encoded so they have to be decoded before they can be used. \subsection extsearch_api_search_out Search results format When invoking the search engine as shown in the previous subsection, it should reply with the results. The format of the reply is -JSON with padding, which is basically +JSON with padding, which is basically a javascript struct wrapped in a function call. The name of function should be the name of the callback (as passed with the *cb* field in the query). diff --git a/doc/faq.doc b/doc/faq.doc index 5af3db8..bbad8c0 100644 --- a/doc/faq.doc +++ b/doc/faq.doc @@ -285,7 +285,7 @@ At the time I was looking into \c lex and \c yacc, where a lot of things start w \section faq_why What was the reason to develop doxygen? I once wrote a GUI widget based on the Qt library (it is still available at -http://sourceforge.net/projects/qdbttabular/ but hasn't been updated since 2002). +https://sourceforge.net/projects/qdbttabular/ but hasn't been updated since 2002). Qt had nicely generated documentation (using an internal tool which they didn't want to release) and I wrote similar docs by hand. diff --git a/doc/formulas.doc b/doc/formulas.doc index 650751e..1649c19 100644 --- a/doc/formulas.doc +++ b/doc/formulas.doc @@ -30,7 +30,7 @@ have the following tools installed to bitmaps. I have used Aladdin GhostScript 8.0 for testing. For the HTML output there is also an alternative solution using -MathJax which does not +MathJax which does not require the above tools. If you enable \ref cfg_use_mathjax "USE_MATHJAX" in the config then the latex formulas will be copied to the HTML "as is" and a client side javascript will parse them and turn them into (interactive) images. diff --git a/doc/grouping.doc b/doc/grouping.doc index bbb577c..2c4ebe1 100644 --- a/doc/grouping.doc +++ b/doc/grouping.doc @@ -197,7 +197,7 @@ documentation of the class. \htmlonly

-Click here +Click here for the corresponding HTML documentation that is generated by doxygen. \endhtmlonly \latexonly diff --git a/doc/index.doc b/doc/index.doc index c8950c4..14f0396 100644 --- a/doc/index.doc +++ b/doc/index.doc @@ -180,7 +180,7 @@ Thanks go to:
  • Talin for adding support for C# style comments with XML markup.
  • Petr Prikryl for coordinating the internationalization support. All language maintainers for providing translations into many languages. -
  • The band Porcupine Tree for +
  • The band Porcupine Tree for providing hours of great music to listen to while coding.
  • many, many others for suggestions, patches and bug reports. diff --git a/doc/install.doc b/doc/install.doc index fd4f28d..22d6e7c 100644 --- a/doc/install.doc +++ b/doc/install.doc @@ -37,7 +37,7 @@ following to build the executable: \addindex strip \addindex python
  • In order to generate a \c Makefile for your platform, you need - cmake version 2.8.12 or later. + cmake version 2.8.12 or later. \addindex cmake @@ -63,7 +63,7 @@ tools should be installed.
  • For formulas in the HTML output (when MathJax is not used) or in case you do not wish to use `pdflatex, the ghostscript interpreter is needed. You can find it at - www.ghostscript.com. + www.ghostscript.com. Compilation is now done by performing the following steps: @@ -150,20 +150,20 @@ standard installation procedure that is required for these packages. \section install_src_windows Compiling from source on Windows From version 1.8.10 onwards, build files need to be generated by cmake. -cmake can be downloaded from http://www.cmake.org/download/ +cmake can be downloaded from https://cmake.org/download/ At the moment only the express version of Visual Studio 2013 is tested, but other version might also work. Alternatively, you can compile doxygen \ref install_src_unix "the UNIX way" using -Cygwin +Cygwin or MinGW. The next step is to install modern versions of \c bison and \c flex -(see http://sourceforge.net/projects/winflexbison. After installation and adding them to +(see https://sourceforge.net/projects/winflexbison/. After installation and adding them to your `path` rename `win_flex.exe` to `flex.exe` and `win_bison.exe` to `bison.exe`) -Furthermore you have to install \c python (version 2.6 or higher, see http://www.python.org). +Furthermore you have to install \c python (version 2.6 or higher, see https://www.python.org). These packages are needed during the compilation process. Download doxygen's source tarball and put it somewhere (e.g. use c:\\tools) @@ -214,19 +214,19 @@ you need qhelpgenerator which is part of Qt. You can download Qt from Qt Software Downloads. In order to generate PDF output or use scientific formulas you will also need to -install LaTeX and -Ghostscript. +install LaTeX and +Ghostscript. For \LaTeX a number of distributions exists. Popular ones that should work with -doxygen are MikTex +doxygen are MikTex and proTeXt. -Ghostscript can be downloaded +Ghostscript can be downloaded from Sourceforge. After installing \LaTeX and Ghostscript you'll need to make sure the tools latex.exe, pdflatex.exe, and gswin32c.exe are present in the search path of a -command box. Follow these +command box. Follow these instructions if you are unsure and run the commands from a command box to verify it works. \htmlonly diff --git a/doc/markdown.doc b/doc/markdown.doc index 300d7fc..737df71 100644 --- a/doc/markdown.doc +++ b/doc/markdown.doc @@ -41,9 +41,9 @@ the extensions that doxygen supports. Finally section \ref markdown_dox discusses some specifics for doxygen's implementation of the Markdown standard. -[markdown]: http://daringfireball.net/projects/markdown -[mdextra]: http://michelf.com/projects/php-markdown/extra/ -[github]: http://github.github.com/github-flavored-markdown/ +[markdown]: http://daringfireball.net/projects/markdown/ +[mdextra]: https://michelf.ca/projects/php-markdown/extra/ +[github]: https://github.github.com/github-flavored-markdown/ \section markdown_std Standard Markdown @@ -303,7 +303,7 @@ Note that using `[TOC]` is the same as using a \subsection md_tables Tables Of the features defined by "Markdown Extra" is support for -simple tables: +simple tables: A table consists of a header line, a separator line, and at least one row line. Table columns are separated by the pipe (|) character. @@ -376,7 +376,7 @@ For more complex tables in doxygen please have a look at: \ref tables \subsection md_fenced Fenced Code Blocks Another feature defined by "Markdown Extra" is support for - + fenced code blocks: A fenced code block does not require indentation, and is diff --git a/doc/searching.doc b/doc/searching.doc index dcf858f..00c6141 100644 --- a/doc/searching.doc +++ b/doc/searching.doc @@ -72,7 +72,7 @@ has its own advantages and disadvantages: searching, meaning that you could use your own indexer and search engine of choice. To make life easier doxygen ships with an example indexer (doxyindexer) and search engine (doxysearch.cgi) based on - the Xapian open source search engine + the Xapian open source search engine library. To enable this search method set @@ -147,7 +147,7 @@ has its own advantages and disadvantages: \ref cfg_qhp_namespace "QHP_NAMESPACE", \ref cfg_qhg_location "QHG_LOCATION", \ref cfg_qhp_virtual_folder "QHP_VIRTUAL_FOLDER". - See this article + See this article for more info. Feature wise the Qt compressed help feature is comparable with the CHM diff --git a/doc/starting.doc b/doc/starting.doc index bfb8e8f..c869867 100644 --- a/doc/starting.doc +++ b/doc/starting.doc @@ -263,7 +263,7 @@ capabilities of the man page format, so some information \subsection docbook_out DocBook output \addindex docbook Doxygen can also generate output in the -DocBook format. How to process the +DocBook format. How to process the DocBook output is beyond the scope of this manual. \section step3 Step 3: Documenting the sources diff --git a/src/config.xml b/src/config.xml index 0fdf3ef..8bb6add 100644 --- a/src/config.xml +++ b/src/config.xml @@ -215,7 +215,7 @@ Go to the next section or return to the This tag specifies the encoding used for all characters in the config file that follow. The default is UTF-8 which is also the encoding used for all text before the first occurrence of this tag. Doxygen uses \c libiconv (or the iconv built into - \c libc) for the transcoding. See http://www.gnu.org/software/libiconv for the list of + \c libc) for the transcoding. See https://www.gnu.org/software/libiconv/ for the list of possible encodings. ]]> @@ -661,7 +661,7 @@ Go to the next section or return to the sip sources only. + of sip sources only. Doxygen will parse them like normal C++ but will assume all classes use public instead of private inheritance when no explicit protection keyword is present. ]]> @@ -1172,7 +1172,7 @@ FILE_VERSION_INFO = "cleartool desc -fmt \%Vn" The \c CITE_BIB_FILES tag can be used to specify one or more \c bib files containing the reference definitions. This must be a list of .bib files. The .bib extension is automatically appended if omitted. This requires the - \c bibtex tool to be installed. See also http://en.wikipedia.org/wiki/BibTeX for + \c bibtex tool to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info. For \f$\mbox{\LaTeX}\f$ the style of the bibliography can be controlled using \ref cfg_latex_bib_style "LATEX_BIB_STYLE". To use this feature you need \c bibtex and \c perl available in the search path. @@ -1285,7 +1285,7 @@ FILE_VERSION_INFO = "cleartool desc -fmt \%Vn" This tag can be used to specify the character encoding of the source files that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses `libiconv` (or the `iconv` built into `libc`) for the transcoding. - See the libiconv documentation for + See the libiconv documentation for the list of possible encodings. ]]> @@ -1585,7 +1585,7 @@ to disable this feature. If the \c USE_HTAGS tag is set to \c YES then the references to source code will point to the HTML generated by the \c htags(1) tool instead of doxygen built-in source browser. The \c htags tool is part of GNU's global source - tagging system (see http://www.gnu.org/software/global/global.html). You + tagging system (see https://www.gnu.org/software/global/global.html). You will need version 4.8.6 or higher.
    To use it do the following: @@ -1904,7 +1904,7 @@ hr.footer { The \c HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen will adjust the colors in the style sheet and background images according to this color. Hue is specified as an angle on a colorwheel, - see http://en.wikipedia.org/wiki/Hue for more information. + see https://en.wikipedia.org/wiki/Hue for more information. For instance the value 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 purple, and 360 is red again. ]]> @@ -1981,14 +1981,14 @@ hr.footer { Apple's Xcode 3 + Apple's Xcode 3 integrated development environment, introduced with OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a Makefile in the HTML output directory. Running \c make will produce the docset in that directory and running make install will install the docset in ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at startup. See - http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for + https://developer.apple.com/tools/creatingdocsetswithdoxygen.html for more information. ]]> @@ -2133,7 +2133,7 @@ The \c DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. Qt Help Project / Namespace. + Qt Help Project / Namespace. ]]> @@ -2142,7 +2142,7 @@ The \c DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. Qt Help Project / Virtual Folders. + Qt Help Project / Virtual Folders. ]]> @@ -2150,7 +2150,7 @@ The \c DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. Qt Help Project / Custom Filters. + Qt Help Project / Custom Filters. ]]> @@ -2159,7 +2159,7 @@ The \c DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. Qt Help Project / Custom Filters. + Qt Help Project / Custom Filters. ]]> @@ -2167,7 +2167,7 @@ The \c DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. Qt Help Project / Filter Attributes. + Qt Help Project / Filter Attributes. ]]> @@ -2295,7 +2295,7 @@ The \c DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. ../mathjax. The default value points to the MathJax Content Delivery Network so you can quickly see the result without installing MathJax. However, it is strongly recommended to install a local - copy of MathJax from http://www.mathjax.org before deployment. + copy of MathJax from https://www.mathjax.org before deployment. ]]> @@ -2427,7 +2427,7 @@ See the section \ref extsearch for details. the search results.
    Doxygen ships with an example indexer (\c doxyindexer) and search engine (doxysearch.cgi) which are based on the open source search - engine library Xapian. + engine library Xapian.
    See the section \ref extsearch for details. ]]> @@ -2440,7 +2440,7 @@ See the section \ref extsearch for details. is enabled.
    Doxygen ships with an example indexer (\c doxyindexer) and search engine (doxysearch.cgi) which are based on the open source search - engine library Xapian. + engine library Xapian. See the section \ref extsearch for details. ]]> @@ -2681,7 +2681,7 @@ or @@ -2886,7 +2886,7 @@ front of it.