File: mathtex2.h

package info (click to toggle)
gr-framework 0.73.14%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 11,600 kB
  • sloc: ansic: 87,413; cpp: 45,348; objc: 3,057; javascript: 2,647; makefile: 1,129; python: 1,000; sh: 991; yacc: 855; pascal: 554; fortran: 228
file content (140 lines) | stat: -rw-r--r-- 2,245 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
#ifndef TEST3_H
#define TEST3_H


#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <assert.h>


enum State
{
  OUTSIDE_SYMBOL = 0,
  INSIDE_SYMBOL = 1
};

typedef enum ParserNodeType_
{
  NT_TERMINAL_SYMBOL = 0,
  NT_OTHER = 1,
  NT_INTEGER = 2,
  NT_FLOAT = 3,
  NT_SPACE = 4,
  NT_CUSTOMSPACE = 5,
  NT_FONT = 6,
  NT_MATH = 7,
  NT_FUNCTION = 8,
  NT_OPERATORNAME = 9,
  NT_SYMBOL = 10,
  NT_GROUP = 11,
  NT_GENFRAC = 12,
  NT_AUTO_DELIM = 13,
  NT_AUTO_DELIM_INNER = 14,
  NT_OVERLINE = 15,
  NT_C_OVER_C = 16,
  NT_ACCENT = 17,
  NT_SQRT = 18,
  NT_SUBSUPER = 19,
  NT_LATEXTEXT = 20
} ParserNodeType;

typedef struct MathNode_
{
  size_t previous;
  size_t token;
} MathNode;

typedef struct OperatorNameNode_
{
  size_t previous;
  size_t token;
} OperatorNameNode;

typedef struct Overline_
{
  size_t body;
} Overline;

typedef struct Group_
{
  size_t previous;
  size_t token;
} Group;

typedef struct Subsuper_
{
  char operator;
  size_t token;
} Subsuper;

typedef struct Accent_
{
  size_t token;
} Accent;

typedef struct Sqrt_
{
  const char *index_start;
  size_t index_length;
  size_t token;
} Sqrt;

typedef struct Genfrac_
{
  const char *left_delim_start;
  size_t left_delim_length;
  const char *right_delim_start;
  size_t right_delim_length;
  double thickness;
  const char *style_text_start;
  size_t style_text_length;
  size_t numerator_group;
  size_t denominator_group;
} Genfrac;

typedef struct AutoDelim_
{
  const char *left_delim_start;
  size_t left_delim_length;
  const char *right_delim_start;
  size_t right_delim_length;
  size_t inner_node_index;
} AutoDelim;

typedef struct AutoDelimInner_
{
  size_t previous;
  size_t token;
} AutoDelimInner;

typedef struct ParserNode_
{
  size_t index;
  union
  {
    MathNode math;
    OperatorNameNode operatorname;
    Group group;
    Overline overline;
    Genfrac genfrac;
    Subsuper subsuper;
    AutoDelim autodelim;
    AutoDelimInner autodeliminner;
    Accent accent;
    Sqrt sqrt;
  } u;
  ParserNodeType type;
  const char *source;
  size_t length;
} ParserNode;

extern size_t result_parser_node_index;

size_t copy_parser_node(ParserNode node);

ParserNode *get_parser_node(size_t node_index);


#endif