タグ

lexに関するyusuketのブックマーク (7)

  • 第9章 速習yacc

    概要 パーサとスキャナ プログラム言語のパーサの書きかたは昔からしつこく研究されてきており、 かなりしっかりした定石がある。よほど変な(または曖昧な)文法でない 限り、定石にのっていけば解決できるものだ。 まず最底辺には文字列を単語(トークンとも言う)の列に切り出す部 分がある。これをスキャナ(scanner)とかレクサ(lexer)と言 う。日語で言うと字句解析器だが、言いにくいのでスキャナと呼ぼう。 スキャナというものが出てくる根底にはそもそも「単語の区切りには空白ある でしょ」という常識がある。そして実際にたいていのプログラミング 言語はそういう仕様になっている。そのほうが楽だからだ。 例えば古いFortranでは空白が意味を持たなかった。つまり空白を入れても 単語区切りとは限らないし、変数の途中で何の前触れもなく空白を挿入したり することもできた。ところが解析が恐ろしく面倒なもの

  • http://edu.net.c.dendai.ac.jp/ad/1/2004/11/index.xml

  • Cコンパイラ設計(yacc・lexの応用)

    この章では、いくつかの事柄を統合している。すなわち、yacc入力される文法、構文解析プログラムlexの仕様、さらに簡単な記号テーブルの機能を結び付け、言語認識プログラムを作成する。ここでの例で示されるように、このような言語認識は、整ったプリンタ出力を行なうプログラムなどに利用することができる。 まず最初に、yaccが文法を入力とし、ファイルy.tab.cに出力し、またファイルy.outputにその解説を出力するパーサの働きを理解しなければならない。この背景を明確にするために、3.2節では、samp1eCの言語認識においてそれらが実際にどのように結び付けられるかを示す。 ここでは、認識プログラムを起動するためのmain()プログラムと、入力に誤りがあった場合にパーサから呼ばれるyyerror()が示される。3.3節では、コンパイラの前にCプリプロセッサを呼ぶことができるような高機能のmain

  • その4 「電卓を作ってみよう」 - C YOTA BANASHI

    電卓が欲しい! PCで文書作成とかしていて、ちょっと電卓が使いたくなることは、 ちょくちょくあります。 Windowsなら、スタートメニューからGUIベースの電卓が起動できますが、 立派なキーボードが付いてるPCで、 マウスで一所懸命ボタンをクリックするのなんて、 冷静に考えるとなんかバカです。 もちろんあの電卓でもキーボードから入力することは出来ますが、 演算子の優先順位は見てくれませんし、括弧を使った計算もできません。 それに、一般に、電卓で何十個もの数値を足す場合などは、 「ああ、入力ミスしてないかなあ」と途中で不安になるものです。 また、途中で入力ミスに気付いた場合、 最後の入力だけクリアして入れ直すことは一応出来るようなんですが、 どこまでどうクリアされてるのかよくわからなくて、 結局最初から入れ直したりしてません? 私は(プログラマの癖に)機械オンチなので、よく最初から入れ直し

  • Flex - Table of Contents

    字句スキャナ生成プログラム Flex 2.3.7、1.03版 1993年2月 G. T. Nicol 著 序 プログラムの実例について Flex入門 問題解決手段としてのFlex 一般的なプログラミング・ツールとしてのFlex Flexの起動 コマンドライン・オプション コマンドライン・オプション(Flex 2.5の補足情報) Flex記述言語 コメント オプションのCコード 定義 %% ルール パターン・セクション 文字 Flexにおける文字列 Flexにおける文字のグループ化 Flexにおける文字のグループ化(Flex 2.5の補足情報) 正規表現 スタート状態 スタート状態の説明 状態の活性化 スタート状態に関する注 スタート状態に関する注(Flex 2.5の補足情報) スタート状態の使用例 %option(Flex 2.5の補足情報) Flexとのインターフェイス FlexとC F

  • Lex and YACC primer/HOWTO

    PowerDNS BV (bert hubert <bert@powerdns.com>) v0.8 $Date: 2002/07/22 14:02:09 $ 大西 大樹 (daiki onishi <onishi@mbc.nifty.com>) v0.8j 2003/02/08 ドキュメントは Lex と YACC の基的な使い方について記述します 1. イントロダクション 1.1 ドキュメントに含まれないもの 1.2 ダウンロード 1.3 ライセンスについて 2. Lex と YACC でできること 2.1 それぞれのプログラムのやっていること 3. Lex 3.1 正規表現でのマッチ 3.2 C のようなシンタックスをもつもう少し高度な例 3.3 おさらい 4. YACC 4.1 単純な温度調節器 4.2 引数を扱えるように拡張した、温度調節器 4.3 設定ファイルの構文解析

  • プログラミング言語処理

    プログラミング言語処理 講義資料 一覧 全講義資料 pdf版(version 1.1, 108ページ)は、 こちら 言語処理系とは インタプリタとコンパイラ 言語処理系の基構成 例題:式の評価 BNFと構文木 解釈実行:インタプリター コンパイラとは ソースコード 字句解析の基礎:正規表現によるパターンマッチ 字句解析と正規表現 自動字句解析生成プログラム:lex 数式の構文解析:top-down parserの作り方 構文規則 top-down parser の作り方 構文解析の基礎 top-down parserとbottom-up parser 上向き構文解析と還元 演算子順位構文解析法 LR構文解析法 構文解析生成プログラムyacc tiny Cについて tiny Cの言語仕様 tiny C

  • 1