Filtering out commets at the start of parsing. (#1)
All checks were successful
CI / build-and-test (push) Successful in 53s

This commit is contained in:
Johannes Janssen 2025-04-06 23:19:08 +02:00
parent 713ebb1f89
commit d78980316e
5 changed files with 19 additions and 10 deletions

View File

@ -1,5 +1,6 @@
project('oak', ['cpp'],
version: '0.1.0',
default_options : ['cpp_std=c++20'],
)
add_project_arguments('-fPIC', language: 'cpp')

View File

@ -51,4 +51,6 @@ private:
protected:
};
typedef Lexer<FaustTokens>::Lexeme FaustLexeme;
} // namespace faust

View File

@ -6,10 +6,11 @@
#include <stdexcept>
#include "unicode/regex.h"
#include "unicode/utypes.h"
#include "faust-lib/common/core.h"
#include "faust-lib/common/vector.h"
#include "unicode/utypes.h"
namespace faust {

View File

@ -1,5 +1,10 @@
#include "parser.h"
faust::Parser::Parser(String input) {
// TODO: Implement
faust::AstNodePtr faust::parseFaustProgram(const std::vector<faust::FaustLexeme> &tokens) {
auto filteredTokens = tokens;
std::erase_if(filteredTokens, [](const faust::FaustLexeme &lexeme) {
return lexeme.token == faust::FaustTokens::TK_COMMENT || lexeme.token == faust::FaustTokens::TK_MULTILINE_COMMENT;
});
return nullptr;
}

View File

@ -1,15 +1,15 @@
#pragma once
#include "faust-lib/common/string.h"
#include <memory>
#include "faust-lib/common/core.h"
#include "faust-lib/parser/faustLexer.h"
namespace faust {
class Parser {
public:
Parser(String input);
class AstNode;
typedef std::shared_ptr<AstNode> AstNodePtr;
private:
protected:
};
AstNodePtr parseFaustProgram(const Vector<FaustLexeme> &tokens);
} // namespace faust