[Libreoffice-commits] core.git: starmath/inc
dante (via logerrit)
logerrit at kemper.freedesktop.org
Sat Nov 7 20:31:15 UTC 2020
starmath/inc/node.hxx | 42 ++++++++++++++++++++++++++++++++++++++++++
starmath/inc/parse.hxx | 6 ++++++
starmath/inc/strings.hrc | 7 +++++++
starmath/inc/strings.hxx | 6 ++++++
starmath/inc/symbol.hxx | 5 +++++
starmath/inc/token.hxx | 10 ++++++++++
starmath/inc/visitors.hxx | 13 +++++++++++++
7 files changed, 89 insertions(+)
New commits:
commit 7acf5fe037e50557c6ddbc8d9a797dc727ce4001
Author: dante <dante19031999 at gmail.com>
AuthorDate: Wed Nov 4 13:49:06 2020 +0100
Commit: Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Sat Nov 7 21:30:22 2020 +0100
Added documentation on starmath.
Gives basic description about file content and functionallity.
Will allow new programmers to follow the code better.
Change-Id: I76a9d61781332e3341130276c1c78ecf82e799a0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105290
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>
diff --git a/starmath/inc/node.hxx b/starmath/inc/node.hxx
index 2f0b940582d8..a1dbe90305f3 100644
--- a/starmath/inc/node.hxx
+++ b/starmath/inc/node.hxx
@@ -17,6 +17,48 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
+/** The SmNode is the basic structure of formula data.
+ *
+ * Each token is stored in one node of specific kind.
+ * They can have SmNodeType. It allows to identify node type after abstraction.
+ * Here goes the subclasses tree:
+ *
+ * SmRect
+ * SmNode
+ * SmStructureNode Head of tree diagram
+ * SmTableNode binom
+ * SmLineNode A line
+ * SmExpressionNode { content }
+ * SmUnHorNode unary opperators +-; -+; +x; -x; ...
+ * SmRootNode Root structure
+ * SmBinHorNode bynary opperators A + B
+ * SmBinVerNode over; frac; ...
+ * SmBinDiagonalNode wideslash
+ * SmSubSupNode csub, csup, lsub, from, to, ...
+ * SmBraceNode (); []; left lbrace right rbrace; ...
+ * SmBracebodyNode ( content ); [ content ]; ...
+ * SmVerticalBraceNode overbrace; underbrace;
+ * SmOperNode sum from to; int from to;
+ * SmAlignNode text alignment
+ * SmAttributNode font attributtes; bold;
+ * SmFontNode font serif; ...
+ * SmMatrixNode matrix
+ * SmVisibleNode drawable node
+ * SmGraphicNode graphics display
+ * SmRectangleNode
+ * SmPolyLineNode overline; underline; widehat; ...
+ * SmBlankNode blank space; ~; ...
+ * SmTextNode "text"; func functname; ...
+ * SmSpecialNode
+ * SmGlyphSpecialNode %symbolname
+ * SmMathSymbolNode math symbols
+ * SmMathIdentifierNode variable
+ * SmRootSymbolNode root symbol
+ * SmPlaceNode <?>
+ * SmErrorNode red ? for errores
+ *
+ */
+
#ifndef INCLUDED_STARMATH_INC_NODE_HXX
#define INCLUDED_STARMATH_INC_NODE_HXX
diff --git a/starmath/inc/parse.hxx b/starmath/inc/parse.hxx
index e62f855bb723..f0783835fe21 100644
--- a/starmath/inc/parse.hxx
+++ b/starmath/inc/parse.hxx
@@ -16,6 +16,11 @@
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
+
+/** Parses the starmath code and creates the nodes.
+ *
+ */
+
#ifndef INCLUDED_STARMATH_INC_PARSE_HXX
#define INCLUDED_STARMATH_INC_PARSE_HXX
@@ -82,6 +87,7 @@ class SmParser
SmParser(const SmParser&) = delete;
SmParser& operator=(const SmParser&) = delete;
+ // Moves between tokens inside starmath code.
void NextToken();
void NextTokenColor();
void NextTokenFontSize();
diff --git a/starmath/inc/strings.hrc b/starmath/inc/strings.hrc
index 8a303127d245..09b2b394c619 100644
--- a/starmath/inc/strings.hrc
+++ b/starmath/inc/strings.hrc
@@ -17,6 +17,13 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
+/** Those are the starmath codes descriptions for ElementsDockingWindow.hxx.
+ *
+ * Those codes will be displayed as formulas on the ElementsDockingWindow.
+ * The user can then graphically insert them.
+ * When passing the mouse over them, those descriptions will be displayed.
+ */
+
#ifndef INCLUDED_SM_INC_STRINGS_HRC
#define INCLUDED_SM_INC_STRINGS_HRC
diff --git a/starmath/inc/strings.hxx b/starmath/inc/strings.hxx
index c38419b5638e..6f81277d1a3e 100644
--- a/starmath/inc/strings.hxx
+++ b/starmath/inc/strings.hxx
@@ -7,6 +7,12 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
+/** Those are the starmath codes for ElementsDockingWindow.hxx.
+ *
+ * Those codes will be displayed as formulas on the ElementsDockingWindow.
+ * The user can then graphically insert them.
+ */
+
#ifndef INCLUDED_STARMATH_INC_STRINGS_HXX
#define INCLUDED_STARMATH_INC_STRINGS_HXX
diff --git a/starmath/inc/symbol.hxx b/starmath/inc/symbol.hxx
index 9a9a595ed13d..58f757c4e3a2 100644
--- a/starmath/inc/symbol.hxx
+++ b/starmath/inc/symbol.hxx
@@ -17,6 +17,11 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
+/** This stuff is used to work with %charname.
+ *
+ * Will remember the char name, char code and font.
+ */
+
#ifndef INCLUDED_STARMATH_INC_SYMBOL_HXX
#define INCLUDED_STARMATH_INC_SYMBOL_HXX
diff --git a/starmath/inc/token.hxx b/starmath/inc/token.hxx
index 4153b91c0caa..353c26275bab 100644
--- a/starmath/inc/token.hxx
+++ b/starmath/inc/token.hxx
@@ -16,6 +16,16 @@
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
+
+ /** The tokens cointain the information gathered by the parser.
+ *
+ * They contain:
+ * the data type (~ mathematical operation).
+ * The mathematical char.
+ * The corresponding code or information to recreate it.
+ * Location of the token in the starmath code.
+ */
+
#ifndef INCLUDED_STARMATH_INC_TOKEN_HXX
#define INCLUDED_STARMATH_INC_TOKEN_HXX
diff --git a/starmath/inc/visitors.hxx b/starmath/inc/visitors.hxx
index 1591d3757860..4d3c4decae23 100644
--- a/starmath/inc/visitors.hxx
+++ b/starmath/inc/visitors.hxx
@@ -6,6 +6,19 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
+
+/** Visitors are an easy way to automating operations with nodes.
+ *
+ * The available visitors are:
+ * SmVisitor base class
+ * SmDefaultingVisitor default visitor
+ * SmDrawingVisitor draws formula
+ * SmCaretPosGraphBuildingVisitor position of the node inside starmath code
+ * SmCloningVisitor duplicate nodes
+ * SmNodeToTextVisitor create code from nodes
+ *
+ */
+
#ifndef INCLUDED_STARMATH_INC_VISITORS_HXX
#define INCLUDED_STARMATH_INC_VISITORS_HXX
More information about the Libreoffice-commits
mailing list