ALib C++ Library
Library Version: 2402 R1
Documentation generated by doxygen
Loading...
Searching...
No Matches
expressions.hpp File Reference

Description:


This header file is part of module ALib Expressions of the ALib C++ Library .

© 2013-2024 A-Worx GmbH, Germany. Published under Boost Software License.

Definition in file expressions.hpp.

Include dependency graph for expressions.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  ERBinaryOperator
 
struct  EROperatorAlias
 
class  Expressions
 
struct  FToLiteral
 
struct  Signatures
 
struct  Types
 

Namespaces

namespace  alib
 
namespace  alib::expressions
 

Typedefs

using ArgIterator = std::vector<Box>::iterator
 
using CallbackDecl = Box (*)( Scope& scope, ArgIterator argsBegin, ArgIterator argsEnd )
 
using Type = const alib::boxing::Box&
 

Enumerations

enum class  Compilation {
  DefaultUnaryOperators = (1 << 1) , DefaultBinaryOperators = (1 << 2) , DefaultAlphabeticOperatorAliases = (1 << 3) , AlphabeticOperatorsIgnoreCase = (1 << 4) ,
  AllowSubscriptOperator = (1 << 5) , AliasEqualsOperatorWithAssignOperator = (1 << 6) , AllowBitwiseBooleanOperators = (1 << 7) , AllowOmittingParenthesesOfParameterlessFunctions = (1 << 8) ,
  AllowEmptyParenthesesForIdentifierFunctions = (1 << 9) , AllowCompileTimeNestedExpressions = (1 << 10) , AllowIdentifiersForNestedExpressions = (1 << 11) , CaseSensitiveNamedExpressions = (1 << 12) ,
  PluginExceptionFallThrough = (1 << 13) , CallbackExceptionFallThrough = (1 << 14) , NoOptimization = (1 << 20) , DEFAULT
}
 
enum class  CompilePriorities {
  NONE = 0 , ElvisOperator = 100 , AutoCast = 200 , Strings = 300 ,
  Arithmetics = 400 , Math = 500 , DateAndTime = 600 , Custom = 1000
}
 
enum class  DefaultAlphabeticBinaryOperatorAliases {
  And , Or , Sm , Smaller ,
  SmEq , SmallerOrEqual , Gt , Greater ,
  GtEq , GreaterOrEqual , Eq , Equals ,
  NEq , NotEqual
}
 
enum class  DefaultAlphabeticUnaryOperatorAliases { Not }
 
enum class  DefaultBinaryOperators {
  NONE , Subscript , Multiply , Divide ,
  Modulo , Add , Subtract , ShiftLeft ,
  ShiftRight , Smaller , SmallerOrEqual , Greater ,
  GreaterOrEqual , Equal , NotEqual , BitAnd ,
  BitXOr , BitOr , BoolAnd , BoolOr ,
  Assign , Elvis
}
 
enum class  DefaultUnaryOperators {
  NONE , Positive , Negative , BoolNot ,
  BitNot , Indirection
}
 
enum class  Exceptions {
  SyntaxError =1 , ExpressionInfo = -1 , StdExceptionInfo =-2 , EmptyExpressionString =2 ,
  SyntaxErrorExpectation =5 , UnknownUnaryOperatorSymbol =6 , UnknownBinaryOperatorSymbol =7 , UnknownIdentifier =14 ,
  UnknownFunction =15 , FunctionHint =-15 , UnaryOperatorNotDefined =16 , BinaryOperatorNotDefined =17 ,
  MissingFunctionParentheses =22 , IdentifierWithFunctionParentheses =23 , IncompatibleTypesInConditional =25 , ExceptionInPlugin =30 ,
  ExceptionInCallback =40 , NamedExpressionNotConstant =50 , NamedExpressionNotFound =51 , NestedExpressionNotFoundCT =52 ,
  NestedExpressionCallArgumentMismatch =53 , NestedExpressionNotFoundET =54 , WhenEvaluatingNestedExpression =-54 , NestedExpressionResultTypeError = 55 ,
  CircularNestedExpressions = 56 , CircularNestedExpressionsInfo =-56 , InExpressionFormatter =-500
}
 
enum class  Normalization : uint64_t {
  ReplaceFunctionNames = (1LLU << 1) , ReplaceAliasOperators = (1LLU << 2) , ReplaceVerbalOperatorsToSymbolic = (1LLU << 3) , ReplaceVerbalOperatorsToLowerCase = (1LLU << 4) ,
  ReplaceVerbalOperatorsToUpperCase = (1LLU << 5) , ReplaceVerbalOperatorsToDefinedLetterCase = (1LLU << 6) , QuoteUnaryNestedExpressionOperatorArgument = (1LLU << 7) , RemoveRedundantUnaryOpsOnNumberLiterals = (1LLU << 8) ,
  UnaryOpSpace = (1LLU << 9) , UnaryOpSpaceIfUnaryFollows = (1LLU << 10) , UnaryOpSpaceIfBracketFollows = (1LLU << 11) , UnaryOpInnerBracketSpace = (1LLU << 12) ,
  RedundantBracketsBetweenTwoUnaryOps = (1LLU << 13) , RedundantUnaryOpBrackets = (1LLU << 14) , BinaryOpSpaces = (1LLU << 15) , InnerBracketSpace = (1LLU << 16) ,
  OuterBracketSpace = (1LLU << 17) , RedundantRhsBracketsIfRhsIsStrongerBinaryOp = (1LLU << 18) , RedundantBracketsIfLhsAndRhsAreBinaryOps = (1LLU << 19) , RedundantBinaryOpBrackets = (1LLU << 20) ,
  ConditionalOpSpaceBeforeQM = (1LLU << 21) , ConditionalOpSpaceAfterQM = (1LLU << 22) , ConditionalOpSpaceBeforeColon = (1LLU << 23) , ConditionalOpSpaceAfterColon = (1LLU << 24) ,
  RedundantConditionalOpBrackets = (1LLU << 25) , FunctionSpaceBeforeOpeningBracket = (1LLU << 26) , FunctionInnerBracketSpace = (1LLU << 27) , FunctionInnerBracketSpaceIfNoArguments = (1LLU << 28) ,
  FunctionSpaceBeforeComma = (1LLU << 29) , FunctionSpaceAfterComma = (1LLU << 30) , SubscriptSpaceBeforeBrackets = (1LLU << 31) , SubscriptInnerBracketSpace = (1LLU << 32) ,
  KeepScientificFormat = (1LLU << 33 ) , ForceHexadecimal = (1LLU << 34 ) , ForceOctal = (1LLU << 35 ) , ForceBinary = (1LLU << 36 ) ,
  NONE = 0L , COMPACT = 0L , DEFAULT
}