LibreOffice Module hwpfilter (master)
1
hwpfilter
source
nodes.h
Go to the documentation of this file.
1
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2
/*
3
* This file is part of the LibreOffice project.
4
*
5
* This Source Code Form is subject to the terms of the Mozilla Public
6
* License, v. 2.0. If a copy of the MPL was not distributed with this
7
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
8
*
9
* This file incorporates work covered by the following license notice:
10
*
11
* Licensed to the Apache Software Foundation (ASF) under one or more
12
* contributor license agreements. See the NOTICE file distributed
13
* with this work for additional information regarding copyright
14
* ownership. The ASF licenses this file to you under the Apache
15
* License, Version 2.0 (the "License"); you may not use this file
16
* except in compliance with the License. You may obtain a copy of
17
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
18
*/
19
20
#ifndef INCLUDED_HWPFILTER_SOURCE_NODES_H
21
#define INCLUDED_HWPFILTER_SOURCE_NODES_H
22
23
#include <
sal/config.h
>
24
25
#include <memory>
26
#include <vector>
27
#include <stdio.h>
28
#include <stdlib.h>
29
#include <
o3tl/deleter.hxx
>
30
#include <osl/diagnose.h>
31
32
enum
IDLIST
{
33
ID_MATHML
,
34
ID_LINES
,
35
ID_LINE
,
36
ID_EXPRLIST
,
37
ID_EXPR
,
38
ID_BEGIN
,
39
ID_END
,
40
ID_LEFT
,
41
ID_RIGHT
,
42
ID_SUBEXPR
,
43
ID_SUPEXPR
,
44
ID_SUBSUPEXPR
,
45
ID_FRACTIONEXPR
,
46
ID_OVER
,
47
ID_DECORATIONEXPR
,
48
ID_SQRTEXPR
,
49
ID_ROOTEXPR
,
50
ID_ARROWEXPR
,
51
ID_ACCENTEXPR
,
52
ID_UNARYEXPR
,
53
ID_PRIMARYEXPR
,
54
ID_BRACKET
,
55
ID_BLOCK
,
56
ID_PARENTH
,
57
ID_FENCE
,
58
ID_ABS
,
59
ID_IDENTIFIER
,
60
ID_STRING
,
61
ID_CHARACTER
,
62
ID_NUMBER
,
63
ID_OPERATOR
,
64
ID_SPACE
,
65
ID_DELIMITER
66
};
67
68
class
Node
{
69
public
:
70
explicit
Node
(
int
_id) : id(_id)
71
{
72
child =
nullptr
;
73
next =
nullptr
;
74
#ifdef NODE_DEBUG
75
count++;
76
printf(
"Node count : [%d]\n"
,count);
77
#endif
78
}
79
~Node
()
80
{
81
next =
nullptr
;
82
child =
nullptr
;
83
#ifdef NODE_DEBUG
84
count--;
85
printf(
"Node count : [%d]\n"
,count);
86
#endif
87
}
88
public
:
89
static
int
count;
/* For memory debugging */
90
int
id;
91
std::unique_ptr<char, o3tl::free_delete> value;
92
Node
*child;
93
Node
*next;
94
};
95
extern
std::vector<std::unique_ptr<Node>>
nodelist
;
96
97
#endif
98
99
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
config.h
deleter.hxx
IDLIST
IDLIST
Definition:
nodes.h:32
ID_OPERATOR
@ ID_OPERATOR
Definition:
nodes.h:63
ID_DELIMITER
@ ID_DELIMITER
Definition:
nodes.h:65
ID_PRIMARYEXPR
@ ID_PRIMARYEXPR
Definition:
nodes.h:53
ID_NUMBER
@ ID_NUMBER
Definition:
nodes.h:62
ID_LINES
@ ID_LINES
Definition:
nodes.h:34
ID_ROOTEXPR
@ ID_ROOTEXPR
Definition:
nodes.h:49
ID_ARROWEXPR
@ ID_ARROWEXPR
Definition:
nodes.h:50
ID_FRACTIONEXPR
@ ID_FRACTIONEXPR
Definition:
nodes.h:45
ID_SUBEXPR
@ ID_SUBEXPR
Definition:
nodes.h:42
ID_DECORATIONEXPR
@ ID_DECORATIONEXPR
Definition:
nodes.h:47
ID_END
@ ID_END
Definition:
nodes.h:39
ID_LINE
@ ID_LINE
Definition:
nodes.h:35
ID_FENCE
@ ID_FENCE
Definition:
nodes.h:57
ID_BRACKET
@ ID_BRACKET
Definition:
nodes.h:54
ID_RIGHT
@ ID_RIGHT
Definition:
nodes.h:41
ID_MATHML
@ ID_MATHML
Definition:
nodes.h:33
ID_PARENTH
@ ID_PARENTH
Definition:
nodes.h:56
ID_STRING
@ ID_STRING
Definition:
nodes.h:60
ID_SPACE
@ ID_SPACE
Definition:
nodes.h:64
ID_SUPEXPR
@ ID_SUPEXPR
Definition:
nodes.h:43
ID_LEFT
@ ID_LEFT
Definition:
nodes.h:40
ID_SQRTEXPR
@ ID_SQRTEXPR
Definition:
nodes.h:48
ID_IDENTIFIER
@ ID_IDENTIFIER
Definition:
nodes.h:59
ID_EXPR
@ ID_EXPR
Definition:
nodes.h:37
ID_ACCENTEXPR
@ ID_ACCENTEXPR
Definition:
nodes.h:51
ID_ABS
@ ID_ABS
Definition:
nodes.h:58
ID_UNARYEXPR
@ ID_UNARYEXPR
Definition:
nodes.h:52
ID_OVER
@ ID_OVER
Definition:
nodes.h:46
ID_SUBSUPEXPR
@ ID_SUBSUPEXPR
Definition:
nodes.h:44
ID_EXPRLIST
@ ID_EXPRLIST
Definition:
nodes.h:36
ID_CHARACTER
@ ID_CHARACTER
Definition:
nodes.h:61
ID_BLOCK
@ ID_BLOCK
Definition:
nodes.h:55
ID_BEGIN
@ ID_BEGIN
Definition:
nodes.h:38
nodelist
std::vector< std::unique_ptr< Node > > nodelist
Definition:
grammar.cxx:40
Node
Generated on Sun Jul 30 2023 04:33:12 for LibreOffice Module hwpfilter (master) by
1.9.3