Spicy
Public Member Functions | List of all members
spicy::detail::codegen::production::Variable Class Reference

#include <variable.h>

Inheritance diagram for spicy::detail::codegen::production::Variable:
spicy::detail::codegen::ProductionBase spicy::trait::isTerminal spicy::trait::isProduction

Public Member Functions

 Variable (const std::string &symbol, spicy::Type type, const Location &l=location::None)
 
spicy::Type type () const
 
bool nullable () const
 
bool eodOk () const
 
bool atomic () const
 
bool supportsSynchronize () const
 
std::string render () const
 
- Public Member Functions inherited from spicy::detail::codegen::ProductionBase
 ProductionBase (std::string symbol, Location l=location::None)
 
bool hasSize () const
 
bool maySynchronize () const
 
const Locationlocation () const
 
const std::string & symbol () const
 
void setSymbol (const std::string &s)
 
std::optional< Expression > filter () const
 
void setFilter (const Expression &filter)
 
std::optional< Expression > sink () const
 
void setSink (const Expression &sink)
 
const production::Metameta () const
 
void setMeta (production::Meta m)
 
std::shared_ptr< production::Meta_metaInstance () const
 
void _setMetaInstance (std::shared_ptr< production::Meta > m)
 

Detailed Description

A variable. A variable is a terminal that will be parsed from the input stream according to its type, yet is not recognizable as such in advance by just looking at the available bytes. If we start parsing, we assume it will match (and if not, generate a parse error).


The documentation for this class was generated from the following file: