use updated lemon++.

This commit is contained in:
Kelvin Sherlock 2016-08-05 10:25:17 -04:00
parent 56f945ce29
commit 5b343cc7dd
4 changed files with 2 additions and 1103 deletions

View File

@ -66,10 +66,9 @@ RAGEL_TARGET(value value.rl value.cpp COMPILE_FLAGS "-p -G2")
# need to copy all OUTPUT file to the build dir
add_custom_command(
OUTPUT phase2-parser.cpp phase2-parser.h phase2-parser.out
COMMAND lemon++ -Tlempar.cxx phase2-parser.lemon
COMMAND lemon++ phase2-parser.lemon
COMMAND mv -f phase2-parser.cpp phase2-parser.h phase2-parser.out ${CMAKE_CURRENT_BINARY_DIR}/
MAIN_DEPENDENCY phase2-parser.lemon
DEPENDS lempar.cxx
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)

View File

@ -1,35 +0,0 @@
#ifndef __lemon_base_h__
#define __lemon_base_h__
#include <cstdio>
template<class TokenType>
class lemon_base {
public:
typedef TokenType token_type;
virtual ~lemon_base() = default;
#if 0
virtual typename std::enable_if<std::is_copy_constructible<TokenType>::value, void>::type
parse(int yymajor, const TokenType &yyminor) = 0;
#endif
//virtual typename std::enable_if<std::is_move_constructible<TokenType>::value, void>::type
virtual void parse(int yymajor, TokenType &&yyminor) = 0;
virtual void trace(FILE *, const char *) = 0;
protected:
virtual void parse_accept() {}
virtual void parse_failure() {}
virtual void stack_overflow() {}
virtual void syntax_error(int yymajor, TokenType &yyminor) {}
lemon_base() {}
private:
lemon_base(const lemon_base &) = delete;
lemon_base(lemon_base &&) = delete;
lemon_base &operator=(const lemon_base &) = delete;
lemon_base &operator=(lemon_base &&) = delete;
};
#endif

1065
lempar.cxx

File diff suppressed because it is too large Load Diff

View File

@ -8,7 +8,7 @@
#include <memory>
#include "command.h"
#include "lemon_base.h"
#include <lemon_base.h>
//typedef std::unique_ptr<struct command> command_ptr;
//typedef std::vector<command_ptr> command_ptr_vector;