NewLang Project
Yet another programm language
Loading...
Searching...
No Matches
term.h File Reference
#include <cstring>
#include "warning_push.h"
#include "location.hh"
#include "parser.h"
#include "warning_pop.h"
#include "dict.h"
#include "version.h"
Include dependency graph for term.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  newlang::StorageTerm
 
struct  newlang::ScopeVars
 
class  newlang::NameLookupStack
 
class  newlang::Term
 
class  newlang::ScopePush
 

Namespaces

namespace  newlang
 

Macros

#define INCLUDED_NEWLANG_TERM_
 
#define NL_TERMS(_)
 
#define DEFINE_ENUM(name)   name,
 
#define DEFINE_CASE(name)
 

Enumerations

enum class  newlang::TermID : uint8_t {
  newlang::END = 0 , newlang::DEFINE_ENUM , newlang::NONE , newlang::SPACE ,
  newlang::INDENT , newlang::COMMENT , newlang::CRLF , newlang::DOC_BEFORE ,
  newlang::DOC_AFTER , newlang::SEQUENCE , newlang::BLOCK , newlang::BLOCK_TRY ,
  newlang::BLOCK_PLUS , newlang::BLOCK_MINUS , newlang::INT_PLUS , newlang::INT_MINUS ,
  newlang::INT_REPEAT , newlang::NAME , newlang::LOCAL , newlang::STATIC ,
  newlang::MACRO , newlang::MODULE , newlang::NATIVE , newlang::MANGLED ,
  newlang::TYPE , newlang::INTEGER , newlang::NUMBER , newlang::COMPLEX ,
  newlang::RATIONAL , newlang::STRWIDE , newlang::STRCHAR , newlang::TEMPLATE ,
  newlang::EVAL , newlang::EMPTY , newlang::ARGS , newlang::ARGUMENT ,
  newlang::NEWLANG , newlang::TYPENAME , newlang::TYPECAST , newlang::TYPEDUCK ,
  newlang::UNKNOWN , newlang::SYMBOL , newlang::NAMESPACE , newlang::PARENT ,
  newlang::ESCAPE , newlang::MACRO_SEQ , newlang::MACRO_STR , newlang::MACRO_DEL ,
  newlang::MACRO_TOSTR , newlang::MACRO_CONCAT , newlang::MACRO_ARGUMENT , newlang::MACRO_ARGNAME ,
  newlang::MACRO_ARGPOS , newlang::MACRO_ARGCOUNT , newlang::MACRO_ATTR , newlang::MACRO_EXPR ,
  newlang::CREATE_NEW , newlang::CREATE_USE , newlang::ASSIGN , newlang::PURE_USE ,
  newlang::PURE_NEW , newlang::APPEND , newlang::SWAP , newlang::SYM_RULE ,
  newlang::FUNCTION , newlang::COROUTINE , newlang::ITERATOR , newlang::FOLLOW ,
  newlang::WHILE , newlang::DOWHILE , newlang::MATCHING , newlang::WITH ,
  newlang::TAKE , newlang::RANGE , newlang::ELLIPSIS , newlang::FILLING ,
  newlang::INDEX , newlang::FIELD , newlang::TENSOR , newlang::SET ,
  newlang::DICT , newlang::CLASS , newlang::OP_LOGICAL , newlang::OP_MATH ,
  newlang::OP_COMPARE , newlang::OP_BITWISE , newlang::EMBED
}
 

Functions

const char * newlang::toString (TermID type)
 
size_t newlang::IndexArg (TermPtr term)
 
std::string newlang::ParserMessage (std::string &buffer, int row, int col, const char *format,...)
 
static bool newlang::IsAnyCreate (TermID id)
 
std::ostream & newlang::operator<< (std::ostream &out, newlang::TermPtr &var)
 
std::ostream & newlang::operator<< (std::ostream &out, newlang::TermPtr var)
 

Macro Definition Documentation

◆ INCLUDED_NEWLANG_TERM_

#define INCLUDED_NEWLANG_TERM_

Definition at line 3 of file term.h.

◆ NL_TERMS

#define NL_TERMS ( _)

Definition at line 17 of file term.h.

Referenced by newlang::toString().

◆ DEFINE_ENUM

#define DEFINE_ENUM ( name)    name,

Definition at line 121 of file term.h.

◆ DEFINE_CASE

#define DEFINE_CASE ( name)
Value:
case TermID::name: \
return #name;