• 締切済み

yaccプログラムの実行手順。

yaccプログラムの実行手順。 最近yaccプログラムを勉強を始めたのですが、 windowsなのでCygwinを用いてyaccプログラムを実行を試みています。 まずは本にある初歩のプログラムをそのまま実行してみたいと思っているのですが、 Cygwin自体初めて触れるのでどう扱ってよいのか全く分かりません。 まずyaccプログラムが書かれた拡張子.yの文法ファイルを作る必要がありますが これはどのようにつくるのでしょうか? メモ帳にソースコードを打ち込んで拡張子を.yとするわけではありませんよね? いくら調べても初歩的過ぎるのか見つかりません どうかyaccプログラムの実行手順の解説をよろしくお願いします

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

いや, 「メモ帳にソースコードを打ち込んで拡張子を.yとする」でいいです. もちろん他のエディタを使ってもまったくかまいません.

milliongod724
質問者

お礼

なるほど、助かりました。 有難うございました。

関連するQ&A

  • yacc&lexの実行の仕方がよくわかりません。

    いま、yaccとlexのプログラムを作ってみたんですが、実行方法がわかりません。yacc hogehoge.yとcygwinで打っても「コマンド ノット ファウンド」って表示されます。 初歩的な質問で申し訳ありませんが、回答よろしくお願いします。

  • YaccとLex

    macのターミナルでYaccとLexのプログラムを実行しようと思っています。Yaccプログラム(ren.y)は bison -y ren.y の後 gcc y.tab.c -ly -o a.exe の後更に ./a.exe でしっかり実行できます。しかし、YaccとLexのプログラム(Yaccプログラムはren1.y、Lexプログラムはren2.l)において、bison -dv -y ren1.y の後、flex -l ren2.l までのコンパイルはできるのですが、gcc y.tab.c lex.yy.c -ly -lfl -lm -o a でコンパイルリンクしようとすると、 ld: library not found for -lfl clang: error: linker command failed with exit code 1 (use -v to see invocation) と表示されエラーが生じてしまいます。 macにはXcodeもインストールしてあります。 どうしてy.tab.cとlex.yy.cのコンパイルリンクと実行プログラムaの作成に失敗するのでしょうか?

  • yaccプログラムにExpr.l Expr.yの実装(ダウンロード?)

    yaccプログラムにExpr.l Expr.yの実装(ダウンロード?)の仕方が さっぱりわかりません。 何度か調べてみてもかえって分からなくなってしまったので すいませんが、手順のようなものを教えてください

  • プログラムを実行すると、なぜかメモ帳が起動してしまうのですが・・・

    まったくの初心者です。 コンパイラまではうまくいっているのですが、そのあとプログラムを実行すると、メモ帳が起動してしまいます。(ファイルの指定は間違ってないです。)起動されたメモ帳には、ソースコードが書かれています。 コマンドプロンプトには、実行結果が表示されません。使っているエディタはTeraPadを使っています。 なぜ、メモ帳が起動して、実行結果が表示されないのかわかりません。 どなたか、わかる方がいましたらよろしくお願いします。

  • メモ帳でプログラムを作っても・・

    以前Cygwinでgccが使えないという大変初歩的な質問をいたしましたが・・・ gccはインストールできたのですが、今度はメモ帳でプログラムを書いても、コンパイルできないのです。ファイルがない、といわれてしまいます。 Windows XPを使っているのですが、メモ帳で書いた後どうしたらよいか教えてください。 すごく初歩的な質問ですみません。 でもなんとか家で使えるようにならないと授業についていけないんです・・(涙)お願いします。

  • 他人のプログラムを実行すると、「実行できません」のエラーが出ます

    VisualC++初心者です。 移植のため、他人のプログラムをそのまま貰って解析しろと言われています。 ところが、そのままビルドして実行しても、ビルドでエラーは出ないのですが、「プログラムを実行できません」メッセージが出てしまいます。ステップ実行しようとすると、「*.exeファイルが見つかりません。」エラーが出ます。 リソースでSDIのDialogBoxを持っていますが、ソースはすべて拡張子.cで.cppファイルは有りません。 とっかかりが掴めず困っています。 どうすれば実行できるようになるでしょう?

  • 複数のソースからなるプログラムの実行

    windowsで、Cを勉強中のプログラミング初心者です。 複雑なプログラムっていくつかの名前で、複数のソースから成っていますよね。そういうプログラムを動かしたいのですが、どうやってコンパイル、実行したら良いのですか? 以下のサイトのサンプルを、ソースコードから動かしたいと思っています。 http://www.oreilly.co.jp/books/9784873113395/download.html

  • yacc,lexで作ったプログラムが正しく動きません。

    加減乗除ができ、平方根や常用対数を計算でき、PIが円周率3.14159265に変換される、負の数、浮動小数点数を扱える電卓のインタプリタ(数式を入力すると計算結果を表示して終了するプログラム)をyacc構文解析とlex字句解析を用いて以下のようにしました。 yacc %{ #include<stdio.h> #include<math.h> int yyerror(char* s); %} %union{ double num; } %type<num> E T F %token<num> NUM SQRT LOG10 PI %% program: E {printf("%lf\n", $1); } E : E'+'T {$$=$1+$3; } |E'-'T {$$=$1-$3; } |T {$$=$1; } ; T : T'*'F {$$=$1*$3; } |T'/'F {$$=$1/$3; } |F {$$=$1; } ; F : '('E')' {$$=$2; } |SQRT'('E')' {$$=sqrt($3); } |LOG10'('E')' {$$=log10($3); } |PI {$$=3.14159265; } |NUM {$$=$1; } |'-'F {$$=$2*(-1); } ; %% main(){ yyparse(); } yyerror(char* s){ fprintf(stderr, "%s\n", s); } lex %{ #include "j5_13y.h" %} D 0|1|2|3|4|5|6|7|8|9 DEZ 1|2|3|4|5|6|7|8|9 %% "+" {return *yytext; } "-" {return *yytext; } "*" {return *yytext; } "/" {return *yytext; } "(" {return *yytext; } ")" {return *yytext; } "sqrt" {return SQRT; } "log10" {return LOG10; } "PI" {return PI; } ({DEZ}{D}*|0)|({DEZ}{D}*|0).{D}* {yylval.num=atof(yytext); return NUM; } . {yyerror("invalid character"); exit(1); } %% int yywrap(){return 1; } コンパイルは通り、実行時エラーも出ません。 しかし、数式を入力してエンターキーを押すと、何も表示せず入力待ち状態が続き、ここでの入力は前の入力に連結されて処理されます。 (例)入力1.0+2.0(Enter)      ↓    改行して入力待ち状態      ↓    入力-log10(100.0)(Enter)      ↓    改行して入力待ち      ↓    入力+sqrt(4.0)(Enter)      ↓    改行して入力待ち      ↓    入力-2.0*PI(Enter)      ↓    改行して入力待ち      ↓    入力2.0-1.0      ↓    syntax error表示し終了 上記コードのどこが悪いのでしょうか。よろしくお願いします。

  • javaプログラムの実行時間

    某javaベースのウェブサービスのプログラムをやってます。antでプログラムの実行を行っているので、処理時間を測定したくてSystem.currentTimeMillis()をソースコードに入れても端末には何も表示されませんでした。初心者で申し訳ないが、このようなのをどうすれぼ良いですか。

  • PHPで、C#のプログラムを実行するには、

    PHPで、C#のプログラムを実行するには、    example.php>> <form id="form" method="post" action="cpg.php"> <label> <input type="submit" name="button" id="button" value="C#実行" /> </label> </form> ↑ cpg.php にどういうソースを書けば、  C:\WinSockC(.sln←拡張子)のプログラムを実行することができますか?

    • ベストアンサー
    • PHP

専門家に質問してみよう