exit with error on csml brace mismatch
This commit is contained in:
parent
56094fbf56
commit
5485e6bdd7
@ -8,7 +8,7 @@
|
|||||||
#include "html_special.hpp"
|
#include "html_special.hpp"
|
||||||
#include "global.hpp"
|
#include "global.hpp"
|
||||||
|
|
||||||
static std::stack<std::string> tag_stack;
|
std::stack<std::string> tag_stack;
|
||||||
static std::string tag_candidate = "";
|
static std::string tag_candidate = "";
|
||||||
|
|
||||||
static
|
static
|
||||||
|
@ -3,4 +3,5 @@ enum {
|
|||||||
UNKNOWN_OPTION = 1,
|
UNKNOWN_OPTION = 1,
|
||||||
IO_ERROR = 2,
|
IO_ERROR = 2,
|
||||||
UNKNOWN_SET = 3,
|
UNKNOWN_SET = 3,
|
||||||
|
POPULATED_STACK = 4, // most likely signals that more tags were opened than closed, ie the user forgot adding a '}' somewhere
|
||||||
};
|
};
|
||||||
|
@ -5,12 +5,15 @@
|
|||||||
#include <libgen.h>
|
#include <libgen.h>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <stack>
|
||||||
#include <map>
|
#include <map>
|
||||||
|
|
||||||
#include "cli.hpp"
|
#include "cli.hpp"
|
||||||
#include "scanner.hpp"
|
#include "scanner.hpp"
|
||||||
#include "exit_values.hpp"
|
#include "exit_values.hpp"
|
||||||
|
|
||||||
|
extern std::stack<std::string> tag_stack;
|
||||||
|
|
||||||
#define DECLARE_LEXER(x) \
|
#define DECLARE_LEXER(x) \
|
||||||
extern FILE * x ## in; \
|
extern FILE * x ## in; \
|
||||||
extern FILE * x ## out; \
|
extern FILE * x ## out; \
|
||||||
@ -149,6 +152,9 @@ signed main(int argc, char * * argv) {
|
|||||||
switch (input_type) {
|
switch (input_type) {
|
||||||
case input_type_t::CSML: {
|
case input_type_t::CSML: {
|
||||||
yylex(csmlin, csmlout, csmllex);
|
yylex(csmlin, csmlout, csmllex);
|
||||||
|
if (not tag_stack.empty()) {
|
||||||
|
exit(POPULATED_STACK);
|
||||||
|
}
|
||||||
} break;
|
} break;
|
||||||
case input_type_t::XML: {
|
case input_type_t::XML: {
|
||||||
yylex(xmlin, xmlout, xmllex);
|
yylex(xmlin, xmlout, xmllex);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user