wxMaxima
Loading...
Searching...
No Matches
SyntaxErrorLocation.h
Go to the documentation of this file.
1// -*- mode: c++; c-file-style: "linux"; c-basic-offset: 2; indent-tabs-mode: nil -*-
2//
3// Copyright (C) 2026 Gunter Königsmann <wxMaxima@physikbuch.de>
4//
5// This program is free software; you can redistribute it and/or modify
6// it under the terms of the GNU General Public License as published by
7// the Free Software Foundation; either version 2 of the License, or
8// (at your option) any later version.
9//
10// This program is distributed in the hope that it will be useful,
11// but WITHOUT ANY WARRANTY; without even the implied warranty of
12// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13// GNU General Public License for more details.
14//
15//
16// You should have received a copy of the GNU General Public License
17// along with this program; if not, write to the Free Software
18// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19//
20// SPDX-License-Identifier: GPL-2.0+
21
54#ifndef SYNTAXERRORLOCATION_H
55#define SYNTAXERRORLOCATION_H
56
57#include <wx/string.h>
58#include <optional>
59
60namespace wxm {
61
63struct TextRange {
64 size_t start;
65 size_t end;
66 bool operator==(const TextRange &o) const {
67 return start == o.start && end == o.end;
68 }
69};
70
78std::optional<wxString> SyntaxErrorEcho(const wxString &maximaOutput);
79
91std::optional<TextRange> LocateSyntaxError(const wxString &maximaOutput,
92 const wxString &cellText,
93 TextRange statement);
94
95} // namespace wxm
96
97#endif // SYNTAXERRORLOCATION_H
std::optional< TextRange > LocateSyntaxError(const wxString &maximaOutput, const wxString &cellText, TextRange statement)
Where in a cell the syntax error Maxima reported is.
Definition: SyntaxErrorLocation.cpp:125
std::optional< wxString > SyntaxErrorEcho(const wxString &maximaOutput)
The line Maxima echoes under its first "incorrect syntax:" message.
Definition: SyntaxErrorLocation.cpp:101
A range of characters in a cell's text: [start, end)
Definition: SyntaxErrorLocation.h:63