Code Monkey home page Code Monkey logo

pl-processing-system's Introduction

welcome Project Hiyo

プログラミング言語 長期課題2「言語処理系の開発」 ここには2021年度秋学期情報理工学部専門科目プログラミング言語長期課題2の全てがまとめられています。

成果物の在処とドキュメント群について

ドキュメントは Document/index.html を開き、Webページ形式で閲覧できます。 全ての成果物は https://github.com/NekoZ-Meow/PL-Processing-System に保管されています。 設計図はドキュメントから確認することができますが、vm_design フォルダに入っているastahファイルや、vm_design/svg 内のsvgファイルから直接見ることもできます。

言語仕様について

言語仕様については bnf/('8'*).ebnf にEBNFが入っています。 bnf/diagrams に構文図式が入っています。構文図式をすべてまとめたものや、EBNMFと構文図式のまとめの図、細かく分類されたものまで様々な形式で入っています。構文図式はRailroad Diagram Generator (https://www.bottlecaps.de/rr/ui) で作成しています。

parserについて

この言語を定義し、yaccとlexを用いて構文解析をするparserは parser フォルダにあり、make test で木構造を出力することができます。コンパイルしてできたファイル群をもとに戻す時は make clean で実行できます。make testで解析されるソースコードはsrc.txtです。

仮想マシンについて

仮想マシンのpythonによるソースコードは hiyo フォルダに入っています。PL-Processing-Systemで make を使ってビルドできます。詳しくはドキュメントのマニュアルをご覧ください。 make clean でダウンロードした初期の状態に戻せます。

アプリケーションについて

アプリケーションを起動するには make prepare を行う必要があります。詳しくはドキュメントの「マニュアル」をご覧ください。

テストケースについて

test_txt フォルダにテストケース群が入っています。これらはテストのために使用しました。詳しくはドキュメントの「テスト」をご覧ください。実際に行われたテストのソースコードはtest_txt フォルダの中身を見ることで確認できます。また、テストを実行するには make test-files で行えます。

make コマンドについて

  • make all

    • lex、yaccを使用して構文解析器を生成したのち、プロジェクトのディレクトリにコピーします。
  • make test

    • ('8'*)のインタラクティブシェルを起動します。
  • make open

    • アプリケーション('8'*)を実行します。
  • make test-files

    • テスト用ソースプログラムを('8'*)で実行します。
  • make install

    • アプリケーションに('8'*)をインストールします。
  • make lint

    • pylintを実行します。
  • make clean

    • __pycache__などの一時的に生成されるファイルを削除します。
  • make doc

    • pydocを実行し、ターミナル上で表示します。
  • make pydoc

    • pydocを実行し、ブラウザ上で表示します。
  • make prepare

    • ('8'*)の実行に必要なパッケージをインストールします。

CopyRight

2022 Project Hiyo

pl-processing-system's People

Contributors

nekoz-meow avatar yun-ridukiyua avatar

Watchers

 avatar

pl-processing-system's Issues

エスケープ問題発生

>>> 📝 ( '~' )         
syntax error at 1: nearby "'"
>>>  📝 ( '\~' )
\~
>>>  📝 ( '\'' )
'

やばいです!

設計書ドキュメント問題

処理系の基本設計詳細設計は分かる
2)開発したプログラミング言語の言語仕様『MyLanguage.png:PNGファイル』
:構文図式を適当な図形エディタで描き、それを画像化したもの。
3)開発した言語処理系の設計図『MyLanguage.asta:ASTAファイル』
:astah(システム設計&ソフトウェア開発支援ツール)のファイル。
こいつらはドキュメントのどこに入るんだ?
言語仕様はマニュアルという名の公式リファレンス的なものにいれようかな?BNFと共に

テスト問題

単体テストだの
結合テストだのどうしますか
lintはpylintでいける
htmlとcssのlintもいける

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.