import regex to parse keywords.

This commit is contained in:
wangjiacai 2022-01-14 18:40:48 +08:00
parent 747574948a
commit 2341abc93f

View File

@ -1,9 +1,11 @@
#include <boost/test/unit_test.hpp>
#include <iostream>
#include <fstream>
#include <sstream>
#include <script_parser.h>
#include <boost/test/unit_test.hpp>
#include <fstream>
#include <iostream>
#include <regex>
#include <sstream>
using namespace std;
using namespace boost::unit_test;
@ -12,11 +14,24 @@ int parseScript(const char* path) {
BOOST_TEST_REQUIRE(script.is_open(), "open script file failed!");
string line;
while(getline(script, line, '\n')) {
// cout << line <<endl;
while (getline(script, line, '\n')) {
regex comment_pattern(" *#.*");
if (regex_match(line, comment_pattern)) {
cout << line << endl;
continue;
}
smatch base_match;
regex keyword_pattern(" *([a-z]+) *.*");
regex_match(line, base_match, keyword_pattern);
if (base_match.size() >= 2) {
ssub_match match = base_match[1];
cout << match.str() << endl;
}
// switch()
string word;
istringstream iss(line);
while(getline(iss, word, ' ')) {
while (getline(iss, word, ' ')) {
cout << word << "+";
}
cout << endl;