Bve5_Parsing 1.0.0

BveTrainsim5.7 Syntax parsing library.
Bve5.7構文のパーサライブラリです。

Install-Package Bve5_Parsing -Version 1.0.0
dotnet add package Bve5_Parsing --version 1.0.0
<PackageReference Include="Bve5_Parsing" Version="1.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Bve5_Parsing --version 1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Build Status
All Contributors
NuGet version
MIT License

Bve5_Parsing

BveTrainSim5構文の.NETパーサライブラリです。
入力された文字列やファイルを解析し、プログラム上で利用しやすい形式に変換します。
現在マップファイルとシナリオファイル構文に対応しています。

Supported Syntaxes

  • Scenario File
    • Bve5の全構文に対応
  • Map File
    • マップファイルのバージョン1.00から2.02に対応。
    • 数式や変数、Includeディレクティブにも対応しています。

その他は今後作っていきます👍

Requirements

  • .Net Standard 2.0 or .Net framework 4.0

Installation

NugetでBve5_Parsingとしてパッケージを公開しています。

  • コマンドラインからインストールする場合

    nuget install Bve5_Parsing
    
  • VisualStudioからインストールする場合

    1. ツール > Nugetパッケージマネージャ > ソリューションのNugetパッケージの管理をクリック
    2. 参照タブでBve5_Parsingを検索
    3. インストールをクリック

Usage for C#

C#でマップファイルのパースを行う場合

using Bve5_Parsing.MapGrammar;
using Bve5_Parsing.MapGrammar.EvaluateData;
using System.Linq;

...
    string input; //String to be analyzed
    MapGrammarParser parser = new MapGrammarParser();

    // 文字列をマップ構文としてパースする
    MapData mapData = parser.Parse(input);
    // マップファイルへのファイルパスを指定してパースする
    MapData mapData2 = parser.ParseFromFile(@"PATH/TO/MAP/FILE");
    // Include構文の参照先を再帰的にパースする
    MapData mapDataWithInclude = parser.ParseFromFile(@"PATH/TO/MAP/FILE", MapGrammarParserOption.ParseIncludeSyntaxRecursively)
    // AST(抽象構文木)にパースする
    MapData ast = parser.ParseToAst(input, @"PATH/TO/FILE/PATH");

    // パースエラーの取得
    if (parser.ParseErrors.Any()) {
      // error handling
    }

    // 旧形式でステートメントのデータを取得する場合(通常は必要ありません)
    var syntaxData = mapData.Statements.Select(state => state.ToSyntaxData());

    mapData.Version //マップ構文のバージョン情報
    mapData.Encoding // マップ構文のエンコーディング指定
    foreach(var statement in mapData.Statements) {
      /* 各構文情報 */
      statement.Distance; //構文の距離程
      statement.FunctionName; //構文の関数名
    }
...

パース処理に成功した場合、結果はMapDataクラスで返ってきます。例えば、ファイルヘッダのバージョン情報はMapData.Versionに格納されています。また、構文解析のエラーはMapGrammarParser.ParserErrorsに格納されています。MapGrammarParser.ParserErrorsではエラーの種別(警告かエラーか)やエラーとなった構文の位置、エラーメッセージが取得出来ます。独自のエラーメッセージを実装する場合は、ParserErrorListenerを継承したカスタムクラスを実装し、MapGrammarParser.ErrorListenerに指定して下さい。

Bve5_Parsing.slnに含まれているParseSampleAppプロジェクトからは、コンソール上でパーサの動作を確かめることができます。Bve5_Parsingの実装例として適宜利用して下さい。

Used Librarys

Bve5_Parsing is using the following library.

ANTLR v4

The BSD License (3-clause BSD License)

Copyright (c) 2012 Terence Parr and Sam Harwell

ReadJEnc

The MIT License (MIT)

Copyright (c) 2017 hnx8

License

The MIT License (MIT)

Copyright(c) 2017-2019 aoisupersix

Build Status
All Contributors
NuGet version
MIT License

Bve5_Parsing

BveTrainSim5構文の.NETパーサライブラリです。
入力された文字列やファイルを解析し、プログラム上で利用しやすい形式に変換します。
現在マップファイルとシナリオファイル構文に対応しています。

Supported Syntaxes

  • Scenario File
    • Bve5の全構文に対応
  • Map File
    • マップファイルのバージョン1.00から2.02に対応。
    • 数式や変数、Includeディレクティブにも対応しています。

その他は今後作っていきます👍

Requirements

  • .Net Standard 2.0 or .Net framework 4.0

Installation

NugetでBve5_Parsingとしてパッケージを公開しています。

  • コマンドラインからインストールする場合

    nuget install Bve5_Parsing
    
  • VisualStudioからインストールする場合

    1. ツール > Nugetパッケージマネージャ > ソリューションのNugetパッケージの管理をクリック
    2. 参照タブでBve5_Parsingを検索
    3. インストールをクリック

Usage for C#

C#でマップファイルのパースを行う場合

using Bve5_Parsing.MapGrammar;
using Bve5_Parsing.MapGrammar.EvaluateData;
using System.Linq;

...
    string input; //String to be analyzed
    MapGrammarParser parser = new MapGrammarParser();

    // 文字列をマップ構文としてパースする
    MapData mapData = parser.Parse(input);
    // マップファイルへのファイルパスを指定してパースする
    MapData mapData2 = parser.ParseFromFile(@"PATH/TO/MAP/FILE");
    // Include構文の参照先を再帰的にパースする
    MapData mapDataWithInclude = parser.ParseFromFile(@"PATH/TO/MAP/FILE", MapGrammarParserOption.ParseIncludeSyntaxRecursively)
    // AST(抽象構文木)にパースする
    MapData ast = parser.ParseToAst(input, @"PATH/TO/FILE/PATH");

    // パースエラーの取得
    if (parser.ParseErrors.Any()) {
      // error handling
    }

    // 旧形式でステートメントのデータを取得する場合(通常は必要ありません)
    var syntaxData = mapData.Statements.Select(state => state.ToSyntaxData());

    mapData.Version //マップ構文のバージョン情報
    mapData.Encoding // マップ構文のエンコーディング指定
    foreach(var statement in mapData.Statements) {
      /* 各構文情報 */
      statement.Distance; //構文の距離程
      statement.FunctionName; //構文の関数名
    }
...

パース処理に成功した場合、結果はMapDataクラスで返ってきます。例えば、ファイルヘッダのバージョン情報はMapData.Versionに格納されています。また、構文解析のエラーはMapGrammarParser.ParserErrorsに格納されています。MapGrammarParser.ParserErrorsではエラーの種別(警告かエラーか)やエラーとなった構文の位置、エラーメッセージが取得出来ます。独自のエラーメッセージを実装する場合は、ParserErrorListenerを継承したカスタムクラスを実装し、MapGrammarParser.ErrorListenerに指定して下さい。

Bve5_Parsing.slnに含まれているParseSampleAppプロジェクトからは、コンソール上でパーサの動作を確かめることができます。Bve5_Parsingの実装例として適宜利用して下さい。

Used Librarys

Bve5_Parsing is using the following library.

ANTLR v4

The BSD License (3-clause BSD License)

Copyright (c) 2012 Terence Parr and Sam Harwell

ReadJEnc

The MIT License (MIT)

Copyright (c) 2017 hnx8

License

The MIT License (MIT)

Copyright(c) 2017-2019 aoisupersix

Version History

Version Downloads Last updated
1.0.0 47 4/27/2019
0.8.1 60 4/13/2019
0.8.0 58 4/10/2019
0.7.0 69 2/25/2019
0.6.2 107 10/23/2018
0.6.1 94 10/23/2018
0.6.0 98 10/22/2018