src/EasyFrameWork/RuleEngine/Scripting/Compiler/Tokenizer.cs
(开头部分) 13KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
/* http://www.zkea.net/
* Copyright (c) ZKEASOFT. All rights reserved.
* http://www.zkea.net/licenses */
using System;
using System.Collections.Generic;
using System.Text;
namespace Easy.RuleEngine.Scripting.Compiler
{
public class Tokenizer
{
private readonly string _expression;
private readonly StringBuilder _stringBuilder;
private int _index;
private int _startTokenIndex;
public Tokenizer(string expression)
{
_expression = expression;
_stringBuilder = new StringBuilder();
}
public Token NextToken()
{
while (true)
{
if (Eof())
return CreateToken(TokenKind.Eof);
_startTokenIndex = _index;
char ch = Character();
switch (ch)
{
case '(':
NextCharacter();
return CreateToken(TokenKind.OpenParen);
case ')':
NextCharacter();
return CreateToken(TokenKind.CloseParen);
case ',':
NextCharacter();
return CreateToken(TokenKind.Comma);
case '+':
NextCharacter();
return CreateToken(TokenKind.Plus);
case '-':
NextCharacter();
return CreateToken(TokenKind.Minus);
case '*':
NextCharacter();
return CreateToken(TokenKind.Mul);
case '/':
NextCharacter();
return CreateToken(TokenKind.Div);
case '"':
return LexStringLiteral();
case '\'':
return LexSingleQuotedStringLiteral();
case '!':
后面还有 405 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。