添加更多Token
This commit is contained in:
parent
1aeef5016b
commit
3adf4811c0
@ -10,11 +10,13 @@ namespace JerryYan\DSL\Token\Factory;
|
||||
|
||||
|
||||
use JerryYan\DSL\Token\Token;
|
||||
use JerryYan\DSL\Token\TokenCurry;
|
||||
use JerryYan\DSL\Token\TokenDefine;
|
||||
use JerryYan\DSL\Token\TokenFake;
|
||||
use JerryYan\DSL\Token\TokenLogicAnd;
|
||||
use JerryYan\DSL\Token\TokenLogicEqual;
|
||||
use JerryYan\DSL\Token\TokenLogicFake;
|
||||
use JerryYan\DSL\Token\TokenLogicNotEqual;
|
||||
use JerryYan\DSL\Token\TokenLogicOr;
|
||||
use JerryYan\DSL\Token\TokenNumber;
|
||||
use JerryYan\DSL\Token\TokenUseVariable;
|
||||
@ -24,9 +26,11 @@ class DefaultFactory extends FactoryInterface
|
||||
{
|
||||
protected $tokenMap = [
|
||||
Token::FAKE => TokenFake::class,
|
||||
Token::CURRY => TokenCurry::class,
|
||||
Token::LOGIC_AND => TokenLogicAnd::class,
|
||||
Token::LOGIC_OR => TokenLogicOr::class,
|
||||
Token::LOGIC_EQUAL => TokenLogicEqual::class,
|
||||
Token::LOGIC_NOT_EQUAL => TokenLogicNotEqual::class,
|
||||
Token::LOGIC_FAKE => TokenLogicFake::class,
|
||||
Token::VARIABLE => TokenVariable::class,
|
||||
Token::NUMBER => TokenNumber::class,
|
||||
|
@ -40,6 +40,11 @@ final class Token
|
||||
const FAKE = "FAKE";
|
||||
const CURRY = "CURRY";
|
||||
const LOGIC_FAKE = "LOGIC_FAKE";
|
||||
// 括号
|
||||
const BRACKET_LEFT = "BRACKET_LEFT";
|
||||
const BRACKET_RIGHT = "BRACKET_RIGHT";
|
||||
const SQUARE_BRACKET_LEFT = "SQUARE_BRACKET_LEFT";
|
||||
const SQUARE_BRACKET_RIGHT = "SQUARE_BRACKET_RIGHT";
|
||||
// 运算符相关
|
||||
const OP_CONCAT = "OP_CONCAT";
|
||||
const OP_CONCAT_EQUAL = "OP_CONCAT_EQUAL";
|
||||
|
17
src/Token/TokenCurry.php
Normal file
17
src/Token/TokenCurry.php
Normal file
@ -0,0 +1,17 @@
|
||||
<?php
|
||||
/**
|
||||
* @filename TokenCurry.php
|
||||
* @author Jerry Yan <792602257@qq.com>
|
||||
* @date 2021/1/22 17:42
|
||||
*/
|
||||
|
||||
|
||||
namespace JerryYan\DSL\Token;
|
||||
|
||||
|
||||
class TokenCurry extends TokenInterface
|
||||
{
|
||||
public static $alias = [
|
||||
'与'
|
||||
];
|
||||
}
|
@ -12,6 +12,6 @@ namespace JerryYan\DSL\Token;
|
||||
class TokenLogicEqual extends TokenInterface
|
||||
{
|
||||
public static $alias = [
|
||||
'等于'
|
||||
'等于', '相等时', '相等'
|
||||
];
|
||||
}
|
17
src/Token/TokenLogicNotEqual.php
Normal file
17
src/Token/TokenLogicNotEqual.php
Normal file
@ -0,0 +1,17 @@
|
||||
<?php
|
||||
/**
|
||||
* @filename TokenLogicNotEqual.php
|
||||
* @author Jerry Yan <792602257@qq.com>
|
||||
* @date 2021/1/22 17:45
|
||||
*/
|
||||
|
||||
|
||||
namespace JerryYan\DSL\Token;
|
||||
|
||||
|
||||
class TokenLogicNotEqual extends TokenInterface
|
||||
{
|
||||
public static $alias = [
|
||||
'不等于', '不相等时', '不相等'
|
||||
];
|
||||
}
|
@ -9,10 +9,12 @@ namespace JerryYan\DSL\Test\Tokenizer;
|
||||
|
||||
use JerryYan\DSL\Reader\StringReader;
|
||||
use JerryYan\DSL\Token\Factory\DefaultFactory;
|
||||
use JerryYan\DSL\Token\TokenCurry;
|
||||
use JerryYan\DSL\Token\TokenLogicAnd;
|
||||
use JerryYan\DSL\Token\TokenInterface;
|
||||
use JerryYan\DSL\Token\TokenLogicEqual;
|
||||
use JerryYan\DSL\Token\TokenLogicFake;
|
||||
use JerryYan\DSL\Token\TokenLogicNotEqual;
|
||||
use JerryYan\DSL\Token\TokenLogicOr;
|
||||
use JerryYan\DSL\Token\TokenNumber;
|
||||
use JerryYan\DSL\Token\TokenVariable;
|
||||
@ -23,13 +25,14 @@ class TokenizerTest extends TestCase
|
||||
{
|
||||
protected $tokenizer;
|
||||
protected $reader;
|
||||
private $text = "当 这个 和 那个 或者 那个 和 这个 等于 -0.5 的时候";
|
||||
private $text = "当 另外那个 与 另外一个 不相等时 或者 那个 和 这个 等于 -0.5 的时候";
|
||||
/** @var class-string<TokenInterface>[] 预期的类型 */
|
||||
private $textTokenType = [
|
||||
TokenLogicFake::class,
|
||||
TokenVariable::class,
|
||||
TokenLogicAnd::class,
|
||||
TokenCurry::class,
|
||||
TokenVariable::class,
|
||||
TokenLogicNotEqual::class,
|
||||
TokenLogicOr::class,
|
||||
TokenVariable::class,
|
||||
TokenLogicAnd::class,
|
||||
|
Loading…
x
Reference in New Issue
Block a user