Euphoria
tracery.cc File Reference
#include "core/tracery.h"
#include "jsonh/jsonh.h"
#include "assert/assert.h"
#include "base/stringutils.h"
#include "base/stringbuilder.h"
#include "io/json.h"
#include "base/random.h"
#include "core/textfileparser.h"

Go to the source code of this file.

Classes

struct  eu::core::tracery::GeneratorArgument
 
struct  eu::core::tracery::LiteralStringNode
 
struct  eu::core::tracery::ActionRule
 
struct  eu::core::tracery::CallSymbolNode
 
struct  eu::core::tracery::english::FunctionModifier< TFunc >
 

Namespaces

 eu
 
 eu::core
 
 eu::core::tracery
 
 eu::core::tracery::english
 

Macros

#define EMPTY_STRING(str, err)
 
#define EXPECT_CHAR(chr, err)
 

Functions

Result eu::core::tracery::from_json (Symbol *rule, const jsonh::Value &value, const jsonh::Document *doc)
 
std::string eu::core::tracery::to_string (const Result &r)
 
Result eu::core::tracery::parse_error (TextfileParser *parser)
 
std::string eu::core::tracery::read_tracery_ident (TextfileParser *parser)
 
bool eu::core::tracery::english::is_vowel (char c)
 
bool eu::core::tracery::english::is_alpha_num (char c)
 
std::string eu::core::tracery::english::capitalize_all (const std::string &s)
 
std::string eu::core::tracery::english::capitalize (const std::string &s)
 
std::string eu::core::tracery::english::add_prefix_with_a_or_an (const std::string &s)
 
std::string eu::core::tracery::english::add_postfix_plural (const std::string &s)
 
std::string eu::core::tracery::english::add_postfix_ed (const std::string &s)
 useful for converting walk -> walked More...
 
template<typename T >
std::shared_ptr< Modifier > eu::core::tracery::english::make_modifier (T func)
 
void eu::core::tracery::english::register_on_grammar (Grammar *g)
 

Macro Definition Documentation

◆ EMPTY_STRING

#define EMPTY_STRING (   str,
  err 
)
Value:
do \
{ \
if(str.empty()) \
{ \
return parse_error(&parser) << err; \
} \
} while(false)
Result parse_error(TextfileParser *parser)
Definition: tracery.cc:223

◆ EXPECT_CHAR

#define EXPECT_CHAR (   chr,
  err 
)
Value:
do \
{ \
if(false == parser.expect_char(chr)) \
{ \
return parse_error(&parser) << err; \
} \
} while(false)