VapourSynth-llvmexpr
Loading...
Searching...
No Matches
Preprocessor.cpp File Reference
#include "Preprocessor.hpp"
#include "StandardLibrary.hpp"
#include <algorithm>
#include <cctype>
#include <cmath>
#include <cstdint>
#include <deque>
#include <format>
#include <ranges>
#include <set>
#include <sstream>
#include <stdexcept>
#include <string_view>
#include <unordered_map>
#include <utility>
#include <variant>
Include dependency graph for Preprocessor.cpp:

Go to the source code of this file.

Classes

struct  infix2postfix::preprocessor_detail::Token
class  infix2postfix::preprocessor_detail::PreprocessorTokenizer
struct  infix2postfix::preprocessor::Macro
class  infix2postfix::preprocessor::MacroTable
class  infix2postfix::preprocessor::TokenStream
class  infix2postfix::preprocessor::Evaluator
class  infix2postfix::preprocessor::Expander
class  infix2postfix::Preprocessor::Impl

Namespaces

namespace  infix2postfix
namespace  infix2postfix::preprocessor_detail
namespace  infix2postfix::preprocessor

Typedefs

using infix2postfix::Token = preprocessor_detail::Token
using infix2postfix::TokenType = preprocessor_detail::TokenType
using infix2postfix::PreprocessorTokenizer = preprocessor_detail::PreprocessorTokenizer

Enumerations

enum class  infix2postfix::preprocessor_detail::TokenType : std::uint8_t {
  infix2postfix::preprocessor_detail::Identifier , infix2postfix::preprocessor_detail::Number , infix2postfix::preprocessor_detail::Plus , infix2postfix::preprocessor_detail::Minus ,
  infix2postfix::preprocessor_detail::Multiply , infix2postfix::preprocessor_detail::Divide , infix2postfix::preprocessor_detail::Modulo , infix2postfix::preprocessor_detail::Power ,
  infix2postfix::preprocessor_detail::Equal , infix2postfix::preprocessor_detail::NotEqual , infix2postfix::preprocessor_detail::Greater , infix2postfix::preprocessor_detail::GreaterEqual ,
  infix2postfix::preprocessor_detail::Less , infix2postfix::preprocessor_detail::LessEqual , infix2postfix::preprocessor_detail::LogicalAnd , infix2postfix::preprocessor_detail::LogicalOr ,
  infix2postfix::preprocessor_detail::LogicalNot , infix2postfix::preprocessor_detail::BitAnd , infix2postfix::preprocessor_detail::BitOr , infix2postfix::preprocessor_detail::BitXor ,
  infix2postfix::preprocessor_detail::BitNot , infix2postfix::preprocessor_detail::Lparen , infix2postfix::preprocessor_detail::Rparen , infix2postfix::preprocessor_detail::Lbracket ,
  infix2postfix::preprocessor_detail::Rbracket , infix2postfix::preprocessor_detail::Lbrace , infix2postfix::preprocessor_detail::Rbrace , infix2postfix::preprocessor_detail::Comma ,
  infix2postfix::preprocessor_detail::Dot , infix2postfix::preprocessor_detail::Question , infix2postfix::preprocessor_detail::Colon , infix2postfix::preprocessor_detail::Semicolon ,
  infix2postfix::preprocessor_detail::Assign , infix2postfix::preprocessor_detail::AtDefine , infix2postfix::preprocessor_detail::AtUndef , infix2postfix::preprocessor_detail::AtIfdef ,
  infix2postfix::preprocessor_detail::AtIfndef , infix2postfix::preprocessor_detail::AtIf , infix2postfix::preprocessor_detail::AtElse , infix2postfix::preprocessor_detail::AtEndif ,
  infix2postfix::preprocessor_detail::AtError , infix2postfix::preprocessor_detail::AtRequires , infix2postfix::preprocessor_detail::At , infix2postfix::preprocessor_detail::Whitespace ,
  infix2postfix::preprocessor_detail::Newline , infix2postfix::preprocessor_detail::Comment , infix2postfix::preprocessor_detail::EndOfFile , infix2postfix::preprocessor_detail::Concat ,
  infix2postfix::preprocessor_detail::BeginMacroExpansion , infix2postfix::preprocessor_detail::EndMacroExpansion
}

Functions

std::string infix2postfix::preprocessor_detail::tokensToString (const std::vector< Token > &tokens, bool preserve_whitespace=false)
std::vector< Tokeninfix2postfix::preprocessor_detail::trimTokens (const std::vector< Token > &tokens)
bool infix2postfix::preprocessor_detail::isSkippable (const Token &t)