30 Mart 2017 Perşembe

spirit lex lexer Sınıfı

Giriş
Şu satırı dahil ederiz.
#include <boost/spirit/include/lex_lexer.hpp>
#include <boost/spirit/include/lex_lexertl.hpp>
#include <boost/spirit/include/lex.hpp>
Şu satırı dahil ederiz.
#include <boost/spirit/include/lex_lexertl.hpp>
Tanımlama
Örnek 1
Token'a bir sayı verir. Şöyle yaparız
// Token ids
enum token_ids {
    ID_EOL= 100
};

// Token definition
template <typename Lexer>
struct var_replace_tokens : boost::spirit::lex::lexer<Lexer> {
  var_replace_tokens() {
    this->self.add ("\n", ID_EOL); // newline characters
  }
};
Örnek 2
Şöyle yaparız.
namespace lex = boost::spirit::lex;

template <typename... T>
struct Lexer : lex::lexer<T...> {
  Lexer() {
    
    // adding it to the lexer
    this->self += ...;
  }
  ...
};

Hiç yorum yok:

Yorum Gönder