Skip to content

[status] 現状の進捗 #7

Description

@opaopa6969

親issue: opaopa6969/issue-hub#49

現状の進捗

リリース・バージョン

  • Maven Central 公開中: org.unlaxer:tinyexpression:1.4.10(Java 21+ / Maven 3.8+)
  • 依存: unlaxer-common 3.0.1unlaxer-dsl 3.0.1(pom.xml 確認済み)
  • 直近の重要 chore: unlaxer 2.8.0 / 3.0.1 に更新、NoneChildCollectingParser 移行

対応演算子・関数(実装確認済み)

カテゴリ 内容
算術 + - * /
比較 == != > >= < <=
論理 & | ^ not()
三項 condition ? value : value
制御 if/elsematch/case/default
Math sin cos sqrt min(可変引数) max(可変引数) 他14関数
文字列 +(結合)、.toUpperCase() .toLowerCase() .trim() .length() .indexOf() .startsWith() .endsWith() .contains() .in()、スライス $s[0:3]
変換 toNum(string, precision)
null チェック isPresent($var)
時間 inTimeRange(h1,h2) inDayTimeRange(DOW1,h1,DOW2,h2)
外部呼び出し external returning as TYPE classMethod($var)
内部メソッド call methodName($arg) + 宣言 float methodName($p as number){...}
副作用 @side:Class.method(args)

バックエンド(6種)

Backend クラス 状態
JAVA_CODE JavaCodeCalculatorV3 本番ベースライン
JAVA_CODE_LEGACY_ASTCREATOR LegacyAstCreatorJavaCodeCalculator 凍結(比較用)
AST_EVALUATOR AstEvaluatorCalculator DSL 代替経路
DSL_JAVA_CODE DslJavaCodeCalculator ネイティブエミッタ部分対応
P4_AST_EVALUATOR P4AstEvaluatorCalculator UBNF 生成 + AST 評価
P4_DSL_JAVA_CODE P4DslJavaCodeCalculator UBNF 生成 + DSL Java 生成

直近の主要コミット(上位10件)

  1. chore: unlaxer 2.8.0 → 3.0.1 に更新、NoneChildCollectingParser 移行
  2. fix: adapt SliceExpr usage to Optional<BinaryExpr> fields after P4 regeneration
  3. refactor: P4TypedAstEvaluator is PRIMARY, fallback chain is SAFETY NET
  4. feat: String slice — LAST FEATURE GAP CLOSED. Full parity achieved.
  5. feat: FormulaInfo LSP Phase 2 + IncrementalParseCache LSP integration
  6. feat: String concatenation (+) + inTimeRange/inDayTimeRange
  7. feat: MethodInvocation + External invocations in P4TypedAstEvaluator — fallback eliminated
  8. docs: add backend-coverage-matrix and feature-parity-diff to INDEX
  9. docs: backend coverage matrix — identifies fallback gaps
  10. feat: String predicates (startsWith/endsWith/contains) + isPresent

IDE 連携進捗(VS Code LSP/DAP)

  • 旧拡張 (calculator-lsp-vscode): VSIX 0.2.31 — TE001〜TE024 診断 + 18種以上クイックフィックス、変数カタログ連携(外部ファイル tinyExpression-catalog-v1 対応)
  • 新 P4 拡張 (tinyexpression-p4-lsp-vscode): VSIX 0.2.3 — P4 型安全パーサー使用、ScopeStore によるスコープ診断(未宣言・重複宣言)、go-to-definition / find-references / documentSymbol / codeLens / hover 等実装済み
  • LSP Phase 2 完了: FormulaInfo メタデータ補完、dependsOn 検証、IncrementalParseCache 統合
  • LSP CodeAction: if ↔ ternary 双方向変換クイックフィックス
  • P4 機能ギャップTINYEXPRESSION-P4-FEATURE-GAP-ANALYSIS.md より): 変数カタログ連携未実装、クイックフィックスは TE001 の 1 種のみ、import フル補完が欠如(P4 現行は import キーワードまで)
  • DAP: runtimeMode=token/ast/dsl-javacode をサポート、backend parity probe(全6バックエンド比較)が DAP variables に表示される

ドキュメント整備状況

  • docs/ に 20 件以上の設計・実装ドキュメント(BACKEND-CONTRACT、DESIGN-BACKLOG、FINAL-GAP-AUDIT 等)
  • specs/ に language.md / type-system.md / backends.md / open-questions.md など仕様文書
  • railroad SVG 自動生成(mvn compile 時に docs/railroad/ へ出力)
  • P4 UBNF 2 種: draft(239行)/ 拡張版(321行、source of truth)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions