タグ

構文解析に関するlike_futsalのブックマーク (6)

  • C#静的解析によるコーディング規約チェッカーを作った話

    はじめに はじめまして。 「ボーイフレンド(仮)きらめき☆ノート」(以降、ボイきら)でUnityエンジニアをしております、田村です。 ボイきらでは、コードがコーディング規約に準拠しているかを自動でチェックするツールを自作し、導入しております。 今回は、チェックツールを作った経緯から、具体的なチェックツールの実装方法まで紹介したいと思います。 ボイきらでは、ゲーム開発エンジンとしてUnity、開発言語としてC#が採用されておりますので、今回の話の対象となる言語はC#となります。 コーディング規約チェッカーを作った経緯 コーディング規約とは コーディング規約とは、プログラムの際の決め事です。 実際ボイきらでは、 命名規則は正しいか 全てのクラス、フィールド、メソッドの宣言にコメントが有るか フォーマットされているか(MonoDevelopの自動フォーマット機能を利用) といったコーディング規約

    C#静的解析によるコーディング規約チェッカーを作った話
  • JavaCC 始めてみました。 - 趣味はデバッグ……

    この記事は Java Advent Calendar 2011 の22日の記事です。 昨日は zinbe さんでjsoupとMicrosoft Translator APIを使ってJSRの日語リストを作るでした。明日は yamadamn さんでencodeURLとencodeRedirectURLAdd Starです。 JavaCC って何するもの? Java Compiler Compiler の略で、設定ファイルから Lexer (字句解析器)と Parser (構文解析器)の Java コードを生成してくれるソフトです。と、そんなこと言葉でつらつら書いてても読んでてもおもしろくないので手を動かしましょう。 入手先 JavaCC Home が公式サイトですね。インストールはダウンロードして展開してパスを通せば終わりのようです。ようです、って書いてるのは、僕の場合 Ubuntu で s

    JavaCC 始めてみました。 - 趣味はデバッグ……
  • プログラミング言語を作る。1時間で。 - Qiita

    あなたは、プログラミング言語を作ったことがありますか? エッ!?ない!? それはいけない。いますぐ作りましょう。1時間ぐらいで。 10/3追記 続編を書きました。 http://qiita.com/shuetsu@github/items/23d5194cf821402bfadf どんな言語を作るのか オレの言語なので、名前はorelangです。 orelangはJavaで作ります。他の言語でも作れると思います。 文法は1種類しかありません。これで十分です。 (operator arg1 arg2...) オペレータ(operator)に、引数(argN)を渡して呼び出します。ネスト可能です。 例えば以下のようなイメージになります。 (+ 1 2 (* 3 4)) => 15 // 1 + 2 + 3 * 4 を計算 +や、*が、オペレータです。 後々ちゃんと、流れ制御文とかも作ります。1

    プログラミング言語を作る。1時間で。 - Qiita
  • Spaghetti Source - 再帰下降型構文解析 ( LL(1) )

    説明 再帰下降型構文解析は BNF で与えられた文法を解析する手法である.与えられた BNF を直接書き下すことでパーシングを行うことができる.ここでは LL(1) パーザの例として四則演算パーザを題材に,作成法を示す. 1. BNF を書く 再帰下降型のパーザを書くためには,まず BNF を書かなければならない.BNF でかける文法は二型文法(文脈自由文法)とよばれるクラスになる.これは実用上最も有用なクラスなので,多くの用途にはこれで足りる. 四則演算の BNF は次のようになる.どうせ自分でパーザを書くので BNF のきちんとしたルールに従っていなくても書ける気がすれば適当なルールを追加してよい. equation := equation + factor | factor factor := factor * term | term term := (equation) | Num

  • 構文解析 Howto

    こうぶん、かいせきー 構文解析なんてやるだけゲーです。99%やるだけゲーです。問題はそれがどれぐらい大 きいのかとか、それと複合してほかの問題を解かなければいけない(しかも方程式を解 いたりするものがおおい)とかそんなのばっかです。一問だけ難しい構文解析ゲーがあ りますが、AOJで未だに一人しかACしてないです。そんなの解けなくてもいいです。 ただ、構文解析には人によって、書き方みたいなのがいくつかあるらしくて、基的な 方針は同じなのに、複雑になっていたりします。このHowtoは複雑なのをできるだけ避 ける書き方をしてみたいと思います。 方針 構文解析というと、字句解析をして、構文木をつくってみたいなガチなのが思いだされ ますが、ICPCで出る構文解析は99%そんなことしなくてもいいはずなので、省きます。 直接文字列をパースして、結果を直接作ります。 例題として普通の四則演算をやりましょ

    構文解析 Howto
  • 構文解析 - アルゴリズム講習会

    構文解析 再帰下降構文解析 構文解析にはいろいろな手法がありますが、プログラミングコンテストでは実装が単純かつそこそこ強力な(LL(1)文法を処理できる)再帰下降構文解析がよく使われます。 これは、関数の再帰を使って構文を小さな領域に分割していき、末端から値を確定させていく手法です。 四則演算の構文解析 例として、四則演算の構文解析を考えます。 ここでは四則演算は数字と括弧、+-*/の4つの演算子から成り立っているとします。演算子の優先順位も実際の四則演算の通り、掛け算と割り算が優先されます。ただし、全ての演算は整数だとします。以下は式の一例です。 まずは、四則演算の構文をBNF記法で表します。 BNF記法をあまり厳格に記述する必要はありませんが、演算子の優先順位はきっちり判別できるようにしておく必要があります。 最初に、式全体をexprという変数(非終端記号)で表すとします。 exprの

  • 1