質問編集履歴

2

説明の補足と実行するpl'0のプログラムの記述

2022/11/22 11:25

投稿

gorizo
gorizo

スコア0

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,4 @@
1
- visualstudioでPL0コンパイラを編集しています。新しくswich文を追加しようと思いコンパイラ編集したのですが、うまく動作しませんでした。Switchとcaseの値が一致した時み実行したいのですが、うまく比較するがわかりません。わかる方いましたら教えていただきたいです。
1
+ visualstudioでPL0コンパイラを編集しています。pl'0で新しくswich文を使用できるようにしようと思いコンパイラ編集したのですが、どのよにコードを書けば実装できるか見当がつきませんでした。特にswitchの後の式の値とcaseの後の値の比較の仕方がわかりません。わかる方いましたら教えていただきたいです。なおgetSourceファイルcファイル、headerファイルにはswitch,case共に記述してあります。
2
2
  出典 : 田中育男氏のホームページ > コンパイラ > PL0'コンパイラのソースリスト
3
3
  http://www.k.hosei.ac.jp/~nakata/oCompiler/PL0compiler/prog_proc1.html
4
4
  http://www.k.hosei.ac.jp/~nakata/oCompiler/PL0compiler/compile.c
@@ -18,3 +18,25 @@
18
18
  else{
19
19
  genCodeV(jmp,backP2);
20
20
 
21
+
22
+ 実行するpl'0ファイル
23
+ function multiply(x,y)
24
+ var a,b,c;
25
+ begin
26
+ a:=x; b:=y; c:=0;
27
+ switch a+1
28
+ begin
29
+ case 1: c:=a+b; break;
30
+ case 2: c:=a-b; break;
31
+ end;
32
+
33
+ return c;
34
+ end;
35
+
36
+ const m=1,n=2;
37
+ var x,y;
38
+
39
+ begin
40
+ x:=m y:=n;
41
+ writeln; write multiply(x,y); writeln
42
+ end;

1

わからないところを説明のところで少し明確にしました。

2022/11/17 02:37

投稿

gorizo
gorizo

スコア0

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,4 @@
1
- visualstudioでPL0コンパイラを編集しています。新しくswich文を追加しようと思いコンパイラ編集したのですが、うまく動作しませんでした。わかる方いましたら教えていただきたいです。
1
+ visualstudioでPL0コンパイラを編集しています。新しくswich文を追加しようと思いコンパイラ編集したのですが、うまく動作しませんでした。Switchとcaseの値が一致した時のみ実行したいのですが、うまく比較する方法がわかりません。わかる方いましたら教えていただきたいです。
2
2
  出典 : 田中育男氏のホームページ > コンパイラ > PL0'コンパイラのソースリスト
3
3
  http://www.k.hosei.ac.jp/~nakata/oCompiler/PL0compiler/prog_proc1.html
4
4
  http://www.k.hosei.ac.jp/~nakata/oCompiler/PL0compiler/compile.c