|
VapourSynth-llvmexpr
|
#include <cstdint>#include <optional>#include <string>#include <string_view>#include <variant>#include <vector>

Go to the source code of this file.
Classes | |
| struct | TokenPayloadNumber |
| struct | TokenPayloadVar |
| struct | TokenPayloadLabel |
| struct | TokenPayloadStackOp |
| struct | TokenPayloadClipAccess |
| struct | TokenPayloadPropAccess |
| struct | TokenPayloadClipAccessPlane |
| struct | TokenPayloadStoreAbsPlane |
| struct | TokenPayloadPropStore |
| struct | TokenPayloadPlaneDim |
| struct | TokenPayloadClipDim |
| struct | TokenPayloadClipPlaneDim |
| struct | TokenPayloadArrayOp |
| struct | TokenPayloadBufferAccess |
| struct | Token |
| struct | TokenBehavior |
| struct | TokenDefinition |
Typedefs | |
| using | DynamicBehaviorFn = TokenBehavior (*)(const Token&) |
| using | BehaviorResolver = std::variant<TokenBehavior, DynamicBehaviorFn> |
| using | TokenParser = std::optional<Token> (*)(std::string_view) |
Functions | |
| constexpr int | parse_std_clip_idx (char c) |
| std::vector< Token > | tokenize (const std::string &expr, int num_inputs, ExprMode mode=ExprMode::Expr, int num_intermediate_inputs=0) |
| TokenBehavior | get_token_behavior (const Token &token) |
| using BehaviorResolver = std::variant<TokenBehavior, DynamicBehaviorFn> |
Definition at line 240 of file Tokenizer.hpp.
| using DynamicBehaviorFn = TokenBehavior (*)(const Token&) |
Definition at line 239 of file Tokenizer.hpp.
| using TokenParser = std::optional<Token> (*)(std::string_view) |
Definition at line 256 of file Tokenizer.hpp.
|
strong |
| Enumerator | |
|---|---|
| Expr | |
| SingleExpr | |
| VkExpr | |
Definition at line 242 of file Tokenizer.hpp.
|
strong |
| Enumerator | |
|---|---|
| Float | |
| Int | |
| AutoInt | |
| AutoFloat | |
| Delete | |
Definition at line 180 of file Tokenizer.hpp.
|
strong |
Copyright (C) 2025 yuygfgg
This file is part of Vapoursynth-llvmexpr.
Vapoursynth-llvmexpr is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
Vapoursynth-llvmexpr is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with Vapoursynth-llvmexpr. If not, see https://www.gnu.org/licenses/.
Definition at line 30 of file Tokenizer.hpp.
| TokenBehavior get_token_behavior | ( | const Token & | token | ) |
Definition at line 1054 of file Tokenizer.cpp.
References Token::type.
Referenced by infix2postfix::compute_postfix_stack_effect(), analysis::BlockAnalysisPass::run(), analysis::ConstPropPass::run(), and analysis::StaticArrayOptPass::run().
|
constexpr |
Definition at line 249 of file Tokenizer.hpp.
Referenced by infix2postfix::get_clip_index().
| std::vector< Token > tokenize | ( | const std::string & | expr, |
| int | num_inputs, | ||
| ExprMode | mode = ExprMode::Expr, | ||
| int | num_intermediate_inputs = 0 ) |
Definition at line 969 of file Tokenizer.cpp.
References BufferAbs, BufferCur, BufferRel, ClipAbs, ClipAbsPlane, ClipCur, ClipRel, and PropAccess.
Referenced by infix2postfix::compute_postfix_stack_effect().