README

PHP 数学分词器

Integrity check codecov Latest Stable Version Latest Unstable Version License: MIT PHPStan Enabled

Mathematicator 分词器是一个简单的库,可以将字符串数学公式转换为具有 LaTeX 支持的标记流。

安装

composer require mathematicator-core/tokenizer

功能

  • 将所有数学公式转换为标记流
  • 将用户数学输入转换为 LaTeX
  • 渲染标记树以进行调试

用法

通过DI注入Tokenizer服务并分词查询。

use \Mathematicator\Tokenizer\Tokenizer;

$tokenizer = new Tokenizer(/* some dependencies */);

// Convert math formula to an array of tokens:
$tokens = $tokenizer->tokenize('(5+3)*(2/(7+3))');

// Now you can convert tokens to a more useful format:
$objectTokens = $tokenizer->tokensToObject($tokens);

var_dump($objectTokens); // Return typed tokens with meta data

// Render to LaTeX
echo $tokenizer->tokensToLatex($objectTokens);

// Render to debug tree (extremely fast):
echo $tokenizer->renderTokensTree($objectTokens);

配置

分词器使用基于 DI 的自动配置。只需使用 DI 容器,服务将完全可用。

Mathematicator 框架工具结构

最大的优势是可以选择最适合您需求的一层,并立即在上面构建,无需从头创建一切。我们的工具经过错误测试和性能调优,因此您可以节省大量的时间、金钱和精力。

框架尽可能模块化,因此您应该能够在每一层及其子层上创建扩展。

Mathematicator 框架层 从最具体到最抽象的顺序

第三方包

⚠️ 不保证!

贡献

请通过发送 Pull request 来帮助改进此文档。

测试

所有新贡献都应该在 /tests 目录中包含单元测试。

在发送 PR 之前,请确保所有测试都通过。

此包使用 Nette Tester。您可以通过以下命令运行测试

composer test

对于基准测试,我们使用 phpbench。您可以这样运行基准测试

composer global require phpbench/phpbench @dev # only the first time
phpbench run

在 PR 之前,请通过以下命令运行完整的代码检查

composer cs:install # only first time
composer fix # otherwise pre-commit hook can fail