タグ

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

  • flexで字句解析器(スキャナー)を作ってみる - 今日もスミマセン。

    最近、プログラム言語の字句解析とか構文解析してコードのメトリクスを計測するようなツールを作りたくていろいろ調べてる。 とりあえず、rubyのsaikuroみたいなのの VB6 版を作ってみようと思ってる。 saikuroではruby-lexというライブラリでrubyのコードの字句解析を行なうことでメトリクスの計測を行なっているっぽいことがわかった。 そこで、flexでVB6の字句解析器を作ってみるのをとりあえずの目標とする。 簡単なflexの使い方 以下のようなflexの定義ファイルをテキストエディタで作成する %% [A-Za-z0-9]+ printf("WORD: %s\n", yytext); これは、入力テキストの中*1に[A-Za-z0-9]+という正規表現のパターンに一致するものが現れたら、printf("WORD: %s\n", yytext);というコードを実行しなさいと

    flexで字句解析器(スキャナー)を作ってみる - 今日もスミマセン。
  • プログラミング言語を作る/yaccとlex

    yacc/lexとは Cでプログラミング言語の処理系を実装するのであれば、 多くの場合、yaccとlexというツールを使います。 実のところ、Cとyacc/lexで簡単なプログラミング言語を作る、というのは、 以前、「C言語ヨタ話 」で書いた「 電卓を作ってみよう」 の焼き直しになります。yaccとlexの説明もそちらに簡単に書いたので、 そちらを見てください――と言いたいところですが、 まあここでも軽く説明します。 内容的には重複、というかコピペしている部分もありますが。 プログラミング言語の処理系は、通常、以下のような手順を取ります。 字句解析 ソースプログラムを、「字句(トークン)」の並びに分割する処理です。 構文解析 トークンの並びから、解析木を構築する処理です。 この後、Cなどの機械語を吐くコンパイラや Javaのようなバイトコードを吐くコンパイラなら、 「コード生成」という処理

  • rply

  • PLY (Python Lex-Yacc)

    Welcome to the PLY homepage. PLY is an implementation of lex and yacc parsing tools for Python. If you don't have the slightest idea what that means, you're probably in the wrong place. Otherwise, keep reading. In a nutshell, PLY is nothing more than a straightforward lex/yacc implementation. Here is a list of its essential features: It's implemented entirely in Python. It uses LR-parsing which is

  • PLY (Python Lex-Yacc)

    原文 Documentation version: $Header: /cvs/projects/PLY/doc/ply.html,v 1.3 2004/05/27 17:30:56 beazley Exp $ PLY Version: 1.5 目次 Introduction PLY概要 Lexの例 Lex実装ノート 基的なパージング yaccの例 文法規則関数の結合 空生成規則 曖昧文法を扱う parser.out ファイルについて 構文エラーの処理 行番号の追跡 ASTの構築 Yacc 実装ノート パーサとLexer State Management Pythonの最適化モードを使用する 次にすべきこと Introduction PLYはポピュラーなコンパイラ構築ツールであるlexとyaccのピュアPython実装である。この実装は、先人の

  • プログラミング言語を作る yaccとlex

    yacc/lexとは Cでプログラミング言語の処理系を実装するのであれば、 多くの場合、yaccとlexというツールを使います。 実のところ、Cとyacc/lexで簡単なプログラミング言語を作る、というのは、 以前、「C言語ヨタ話 」で書いた「 電卓を作ってみよう」 の焼き直しになります。yaccとlexの説明もそちらに簡単に書いたので、 そちらを見てください――と言いたいところですが、 まあここでも軽く説明します。 内容的には重複、というかコピペしている部分もありますが。 プログラミング言語の処理系は、通常、以下のような手順を取ります。 字句解析 ソースプログラムを、「字句(トークン)」の並びに分割する処理です。 構文解析 トークンの並びから、解析木を構築する処理です。 この後、Cなどの機械語を吐くコンパイラや Javaのようなバイトコードを吐くコンパイラなら、 「コード生成」という処理

  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
    rokujyouhitoma
    rokujyouhitoma 2009/01/21
    現場の先輩が使っていたのを思い出して、調査中。
  • 1