examples/

directory
v1.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 30, 2025 License: Apache-2.0

README

Parser Combinator Examples

このディレクトリには、Go Parser Combinator ライブラリの実用的なサンプルが含まれています。

ディレクトリ構成

basic/

基本的なパーサーコンビネータの使用例

  • zeroormore_example.go: ZeroOrMore コンビネータの使用例
    • コンマ区切りの数値リストをパースする例
    • 空のリストと非空のリストの両方をサポート
    • パーサーコンビネータの基本的な使い方を学ぶのに最適
interpreter/

インタプリタの実装例

  • simple_calculator.go: 数式を直接評価する電卓
    • 数式をパースして即座に結果を計算
    • 演算子の優先度をサポート(* / > + -)
    • 左結合で演算を処理
    • 四則演算(+, -, *, /)をサポート
    • ゼロ除算エラーの適切な処理
compiler/

コンパイラの実装例

  • simple_math_to_json.go: 数式をJSON ASTに変換
    • 数式をパースしてJSONフォーマットのAST(抽象構文木)を生成
    • 演算子の優先度と左結合性を正しく表現
    • 構造化されたデータ形式での出力
    • さらなる処理(最適化、コード生成など)への基盤

実行方法

各サンプルは独立したGoプログラムとして実行できます:

# 基本例の実行
cd basic
go run zeroormore_example.go

# インタプリタ例の実行
cd interpreter
go run simple_calculator.go

# コンパイラ例の実行
cd compiler
go run simple_math_to_json.go

学習の流れ

  1. basic/: まず基本的なパーサーコンビネータの概念を理解
  2. interpreter/: パースした結果を直接評価する方法を学習
  3. compiler/: パース結果をASTという中間表現に変換する方法を学習

特徴

  • 実用的: 実際のユースケースに基づいた例
  • 段階的: 簡単なものから複雑なものへと段階的に学習可能
  • 完全: それぞれが独立して動作する完全なプログラム
  • エラーハンドリング: 適切なエラー処理の例を含む

応用

これらの例を基に、以下のような応用が可能です:

  • 設定ファイルパーサー: JSON、YAML、INIファイルなどの解析
  • ドメイン固有言語(DSL): 特定の目的に特化した小さな言語の実装
  • データバリデーション: 構造化データの検証とパース
  • プロトコル解析: 通信プロトコルやファイルフォーマットの解析

各例は拡張可能で、より複雑な機能(括弧サポート、変数、関数など)を追加する出発点として活用できます。

Directories

Path Synopsis
ZeroOrMore Example - コンマ区切りの数値リストをパースする例
ZeroOrMore Example - コンマ区切りの数値リストをパースする例
Simple Math Expression to JSON AST Compiler - シンプルな数式→JSON AST コンパイラ
Simple Math Expression to JSON AST Compiler - シンプルな数式→JSON AST コンパイラ
Simple Calculator Interpreter - 数式を直接評価する電卓
Simple Calculator Interpreter - 数式を直接評価する電卓

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL