|
KiCad PCB EDA Suite
|
#include <pcbexpr_evaluator.h>
Public Member Functions | |
| PCBEXPR_UCODE () | |
| virtual | ~PCBEXPR_UCODE () |
| virtual std::unique_ptr< LIBEVAL::VAR_REF > | CreateVarRef (const wxString &aVar, const wxString &aField) override |
| virtual LIBEVAL::FUNC_CALL_REF | CreateFuncCall (const wxString &aName) override |
| bool | HasGeometryDependentFunctions () const |
| bool | RequiresPairItems () const |
| void | AddOp (UOP *uop) |
| void | MarkHasJumps () |
| Flag that this ucode contains short-circuit jumps, so Run() uses the jump-aware loop. | |
| int | GetSize () const |
| Index of the next op to be added (used to backpatch short-circuit jump targets). | |
| VALUE * | Run (CONTEXT *ctx) |
| wxString | Dump () const |
Protected Attributes | |
| std::vector< UOP * > | m_ucode |
| bool | m_hasJumps = false |
Private Attributes | |
| bool | m_hasGeometryDependentFunctions = false |
| bool | m_requiresPairItems = false |
Definition at line 65 of file pcbexpr_evaluator.h.
|
inline |
Definition at line 68 of file pcbexpr_evaluator.h.
|
inlinevirtual |
Definition at line 69 of file pcbexpr_evaluator.h.
|
inlineinherited |
Definition at line 482 of file libeval_compiler.h.
References m_ucode.
Referenced by LIBEVAL::COMPILER::generateUCode().
|
overridevirtual |
Reimplemented from LIBEVAL::UCODE.
Definition at line 658 of file pcbexpr_evaluator.cpp.
References PCBEXPR_BUILTIN_FUNCTIONS::Get(), PCBEXPR_BUILTIN_FUNCTIONS::Instance(), PCBEXPR_BUILTIN_FUNCTIONS::IsGeometryDependent(), and m_hasGeometryDependentFunctions.
|
overridevirtual |
Reimplemented from LIBEVAL::UCODE.
Definition at line 671 of file pcbexpr_evaluator.cpp.
References PCBEXPR_VAR_REF::ClassifyProperty(), PCBEXPR_VAR_REF::ExpressionType(), PROPERTY_MANAGER::GetAllClasses(), PROPERTY_MANAGER::GetProperty(), PROPERTY_MANAGER::Instance(), PROPERTY_MANAGER::IsOfType(), m_requiresPairItems, PARENT, TYPE_HASH, LIBEVAL::VT_NULL, LIBEVAL::VT_PARSE_ERROR, and LIBEVAL::VT_UNDEFINED.
|
inherited |
Definition at line 206 of file libeval_compiler.cpp.
References m_ucode.
Referenced by LIBEVAL::COMPILER::generateUCode().
|
inlineinherited |
Index of the next op to be added (used to backpatch short-circuit jump targets).
Definition at line 491 of file libeval_compiler.h.
References m_ucode.
Referenced by LIBEVAL::COMPILER::generateUCode().
|
inline |
Definition at line 75 of file pcbexpr_evaluator.h.
References m_hasGeometryDependentFunctions.
Referenced by BOOST_AUTO_TEST_CASE().
|
inlineinherited |
Flag that this ucode contains short-circuit jumps, so Run() uses the jump-aware loop.
Definition at line 488 of file libeval_compiler.h.
References m_hasJumps.
Referenced by LIBEVAL::COMPILER::generateUCode().
|
inline |
Definition at line 76 of file pcbexpr_evaluator.h.
References m_requiresPairItems.
Referenced by BOOST_AUTO_TEST_CASE().
Definition at line 1420 of file libeval_compiler.cpp.
References m_hasJumps, m_ucode, next(), LIBEVAL::CONTEXT::Pop(), LIBEVAL::CONTEXT::SP(), LIBEVAL::CONTEXT::StoreValue(), and VALUE.
Referenced by PCBEXPR_EVALUATOR::Evaluate(), MULTICHANNEL_TOOL::findComponentsInRuleArea(), MULTICHANNEL_TOOL::findOtherItemsInRuleArea(), MULTICHANNEL_TOOL::findRoutingInRuleArea(), DIALOG_FIND_BY_PROPERTIES::selectMatchingFromQuery(), testEvalExpr(), and testEvalExpr().
|
private |
Definition at line 79 of file pcbexpr_evaluator.h.
Referenced by CreateFuncCall(), and HasGeometryDependentFunctions().
|
protectedinherited |
Definition at line 508 of file libeval_compiler.h.
Referenced by MarkHasJumps(), and Run().
|
private |
Definition at line 80 of file pcbexpr_evaluator.h.
Referenced by CreateVarRef(), and RequiresPairItems().
|
protectedinherited |