AutorÃa | Ultima modificación | Ver Log |
<?phpnamespace PhpOffice\PhpSpreadsheet\Calculation;/*** PARTLY BASED ON:* Copyright (c) 2007 E. W. Bachtal, Inc.** Permission is hereby granted, free of charge, to any person obtaining a copy of this software* and associated documentation files (the "Software"), to deal in the Software without restriction,* including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,* and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,* subject to the following conditions:** The above copyright notice and this permission notice shall be included in all copies or substantial* portions of the Software.** The software is provided "as is", without warranty of any kind, express or implied, including but not* limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In* no event shall the authors or copyright holders be liable for any claim, damages or other liability,* whether in an action of contract, tort or otherwise, arising from, out of or in connection with the* software or the use or other dealings in the software.** https://ewbi.blogs.com/develops/2007/03/excel_formula_p.html* https://ewbi.blogs.com/develops/2004/12/excel_formula_p.html*/class FormulaToken{// Token typesconst TOKEN_TYPE_NOOP = 'Noop';const TOKEN_TYPE_OPERAND = 'Operand';const TOKEN_TYPE_FUNCTION = 'Function';const TOKEN_TYPE_SUBEXPRESSION = 'Subexpression';const TOKEN_TYPE_ARGUMENT = 'Argument';const TOKEN_TYPE_OPERATORPREFIX = 'OperatorPrefix';const TOKEN_TYPE_OPERATORINFIX = 'OperatorInfix';const TOKEN_TYPE_OPERATORPOSTFIX = 'OperatorPostfix';const TOKEN_TYPE_WHITESPACE = 'Whitespace';const TOKEN_TYPE_UNKNOWN = 'Unknown';// Token subtypesconst TOKEN_SUBTYPE_NOTHING = 'Nothing';const TOKEN_SUBTYPE_START = 'Start';const TOKEN_SUBTYPE_STOP = 'Stop';const TOKEN_SUBTYPE_TEXT = 'Text';const TOKEN_SUBTYPE_NUMBER = 'Number';const TOKEN_SUBTYPE_LOGICAL = 'Logical';const TOKEN_SUBTYPE_ERROR = 'Error';const TOKEN_SUBTYPE_RANGE = 'Range';const TOKEN_SUBTYPE_MATH = 'Math';const TOKEN_SUBTYPE_CONCATENATION = 'Concatenation';const TOKEN_SUBTYPE_INTERSECTION = 'Intersection';const TOKEN_SUBTYPE_UNION = 'Union';/*** Value.*/private string $value;/*** Token Type (represented by TOKEN_TYPE_*).*/private string $tokenType;/*** Token SubType (represented by TOKEN_SUBTYPE_*).*/private string $tokenSubType;/*** Create a new FormulaToken.** @param string $tokenType Token type (represented by TOKEN_TYPE_*)* @param string $tokenSubType Token Subtype (represented by TOKEN_SUBTYPE_*)*/public function __construct(string $value, string $tokenType = self::TOKEN_TYPE_UNKNOWN, string $tokenSubType = self::TOKEN_SUBTYPE_NOTHING){// Initialise values$this->value = $value;$this->tokenType = $tokenType;$this->tokenSubType = $tokenSubType;}/*** Get Value.*/public function getValue(): string{return $this->value;}/*** Set Value.*/public function setValue(string $value): void{$this->value = $value;}/*** Get Token Type (represented by TOKEN_TYPE_*).*/public function getTokenType(): string{return $this->tokenType;}/*** Set Token Type (represented by TOKEN_TYPE_*).*/public function setTokenType(string $value): void{$this->tokenType = $value;}/*** Get Token SubType (represented by TOKEN_SUBTYPE_*).*/public function getTokenSubType(): string{return $this->tokenSubType;}/*** Set Token SubType (represented by TOKEN_SUBTYPE_*).*/public function setTokenSubType(string $value): void{$this->tokenSubType = $value;}}