|
|
@ -3,12 +3,18 @@ |
|
|
|
#include <fmt/core.h> |
|
|
|
#include <fmt/core.h> |
|
|
|
#include <iostream> |
|
|
|
#include <iostream> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
enum { |
|
|
|
|
|
|
|
PLAIN=0, |
|
|
|
|
|
|
|
TITLE=1, |
|
|
|
|
|
|
|
ENUM=2 |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
#line 45 "md_parser.rl" |
|
|
|
|
|
|
|
|
|
|
|
#line 66 "md_parser.rl" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#line 7 "md_parser.cpp" |
|
|
|
#line 13 "md_parser.cpp" |
|
|
|
static const char _Parser_actions[] = { |
|
|
|
static const char _Parser_actions[] = { |
|
|
|
0, 1, 0, 1, 1, 1, 2, 1,
|
|
|
|
0, 1, 0, 1, 1, 1, 2, 1,
|
|
|
|
3, 1, 4, 1, 5, 1, 6, 1,
|
|
|
|
3, 1, 4, 1, 5, 1, 6, 1,
|
|
|
@ -97,7 +103,7 @@ static const int Parser_error = 0; |
|
|
|
static const int Parser_en_main = 1; |
|
|
|
static const int Parser_en_main = 1; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#line 48 "md_parser.rl" |
|
|
|
#line 69 "md_parser.rl" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool Parser::parse(const std::string& input) { |
|
|
|
bool Parser::parse(const std::string& input) { |
|
|
@ -110,14 +116,14 @@ bool Parser::parse(const std::string& input) { |
|
|
|
std::string tk; |
|
|
|
std::string tk; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#line 105 "md_parser.cpp" |
|
|
|
#line 111 "md_parser.cpp" |
|
|
|
{ |
|
|
|
{ |
|
|
|
cs = Parser_start; |
|
|
|
cs = Parser_start; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#line 60 "md_parser.rl" |
|
|
|
#line 81 "md_parser.rl" |
|
|
|
|
|
|
|
|
|
|
|
#line 108 "md_parser.cpp" |
|
|
|
#line 114 "md_parser.cpp" |
|
|
|
{ |
|
|
|
{ |
|
|
|
int _klen; |
|
|
|
int _klen; |
|
|
|
unsigned int _trans; |
|
|
|
unsigned int _trans; |
|
|
@ -192,44 +198,59 @@ _match: |
|
|
|
switch ( *_acts++ ) |
|
|
|
switch ( *_acts++ ) |
|
|
|
{ |
|
|
|
{ |
|
|
|
case 0: |
|
|
|
case 0: |
|
|
|
#line 12 "md_parser.rl" |
|
|
|
#line 14 "md_parser.rl" |
|
|
|
{ start = p; } |
|
|
|
{ start = p; } |
|
|
|
break; |
|
|
|
break; |
|
|
|
case 1: |
|
|
|
case 1: |
|
|
|
#line 13 "md_parser.rl" |
|
|
|
#line 15 "md_parser.rl" |
|
|
|
{ fmt::println("TITLE"); } |
|
|
|
{ last = TITLE; } |
|
|
|
break; |
|
|
|
break; |
|
|
|
case 2: |
|
|
|
case 2: |
|
|
|
#line 14 "md_parser.rl" |
|
|
|
#line 17 "md_parser.rl" |
|
|
|
{ fmt::println("ENUM"); } |
|
|
|
{ last = ENUM; } |
|
|
|
break; |
|
|
|
break; |
|
|
|
case 3: |
|
|
|
case 3: |
|
|
|
#line 15 "md_parser.rl" |
|
|
|
#line 19 "md_parser.rl" |
|
|
|
{ |
|
|
|
{ |
|
|
|
tk = input.substr(start - begin, p - start); |
|
|
|
if(last == TITLE) { |
|
|
|
std::cout << "CONTENT:" << std::quoted(tk) << '\n'; |
|
|
|
title = input.substr(start - begin, p - start); |
|
|
|
|
|
|
|
} else if(last == ENUM) { |
|
|
|
|
|
|
|
content += "* " + input.substr(start - begin, p - start); |
|
|
|
|
|
|
|
content += "\n"; |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
content += input.substr(start - begin, p - start); |
|
|
|
|
|
|
|
content += "\n"; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
last = PLAIN; |
|
|
|
} |
|
|
|
} |
|
|
|
break; |
|
|
|
break; |
|
|
|
case 4: |
|
|
|
case 4: |
|
|
|
#line 19 "md_parser.rl" |
|
|
|
#line 32 "md_parser.rl" |
|
|
|
{ |
|
|
|
{ |
|
|
|
tk = input.substr(start - begin, p - start); |
|
|
|
tk = input.substr(start - begin, p - start); |
|
|
|
std::cout << "META:" << std::quoted(tk) << '\n'; |
|
|
|
deck->config = json::parse(tk); |
|
|
|
|
|
|
|
std::cout << "META:" << deck->config << '\n'; |
|
|
|
} |
|
|
|
} |
|
|
|
break; |
|
|
|
break; |
|
|
|
case 5: |
|
|
|
case 5: |
|
|
|
#line 23 "md_parser.rl" |
|
|
|
#line 38 "md_parser.rl" |
|
|
|
{ fmt::println("----- START"); } |
|
|
|
{ fmt::println("----- START"); } |
|
|
|
break; |
|
|
|
break; |
|
|
|
case 6: |
|
|
|
case 6: |
|
|
|
#line 25 "md_parser.rl" |
|
|
|
#line 40 "md_parser.rl" |
|
|
|
{ fmt::println(">> START SLIDE"); } |
|
|
|
{ |
|
|
|
|
|
|
|
title.clear(); |
|
|
|
|
|
|
|
content.clear(); |
|
|
|
|
|
|
|
} |
|
|
|
break; |
|
|
|
break; |
|
|
|
case 7: |
|
|
|
case 7: |
|
|
|
#line 26 "md_parser.rl" |
|
|
|
#line 45 "md_parser.rl" |
|
|
|
{ fmt::println("<< END SLIDE"); } |
|
|
|
{ |
|
|
|
|
|
|
|
deck->slides.emplace_back(title, content, config); |
|
|
|
|
|
|
|
} |
|
|
|
break; |
|
|
|
break; |
|
|
|
#line 211 "md_parser.cpp" |
|
|
|
#line 232 "md_parser.cpp" |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -242,7 +263,7 @@ _again: |
|
|
|
_out: {} |
|
|
|
_out: {} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#line 61 "md_parser.rl" |
|
|
|
#line 82 "md_parser.rl" |
|
|
|
|
|
|
|
|
|
|
|
bool good = pe - p == 0; |
|
|
|
bool good = pe - p == 0; |
|
|
|
|
|
|
|
|
|
|
|