1. Top » 
  2. スポンサー広告 » 
  3. コンパイラについてのメモ #9
  4. 大学関係 » 
  5. 計算機科学実験及実習 » 
  6. コンパイラについてのメモ #9

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  • Genre:

コンパイラについてのメモ #9

次々と文法について見てきます。

compound_statement:
LTK csopt RTK
;
複文は{}で囲まれています。

csopt:
|declaration_list
|statement_list
|declaration_list statement_list
;
複文の中身は空か、宣言だけか、文だけか、又は変数宣言と式の両方です

declaration_list:
declaration
|declaration_list declaration
;
宣言は一つの宣言の繰り返しです

statement_list:
statement
|statement_list statement
;
文は一つの文の繰り返しです

expression:
assignment_expr
|expression COMMA assignment_expr
;
式はassignment又はその繰り返しです

assignment_expr:
logical_OR_expr
|IDENTIFIER IN assignment_expr
;
assignment式はOR式か代入文です

logical_OR_expr:
logical_AND_expr
|logical_OR_expr OR logical_AND_expr
;
OR式はAND式かAND式とOR式のORです

logical_AND_expr:
equality_expr
|logical_AND_expr AND equality_expr
;
AND式は等式か等式とAND式のANDです

equality_expr:
relational_expr
|equality_expr EQ relational_expr
|equality_expr NEQ relational_expr
等式は関係式か等式か不等式です

relational_expr:
additive_expr
|relational_expr MT additive_expr
|relational_expr LT additive_expr
|relational_expr MTE additive_expr
|relational_expr LTE additive_expr
;
関係式は>か<か>=か<=です

additive_expr:
multiplicative_expr
|additive_expr ADD multiplicative_expr
|additive_expr SUB multiplicative_expr
その一つ一つの式は式の和か差です

multiplicative_expr:
unary_expr
|multiplicative_expr MUL unary_expr
|multiplicative_expr DIV unary_expr
;
一つ一つの和や差に出てくる式はかけ算か割り算です

unary_expr:
posifix_expr
|SUB unary_expr
;
かけ算割り算に出てくる一つ一つはある項か単項演算子のマイナスがついている項です

posifix_expr:
primary_expr
|IDENTIFIER LK RK
|IDENTIFIER LK argument_expression_list RK
;
一つ一つの項は識別子や関数呼び出しです

primary_expr:
IDENTIFIER
|CONSTANT
|LK expression RK
;
素項は変数か定数か式か、又は括弧の式です。

argument_expression_list:
assignment_expr
|argument_expression_list COMMA assignment_expr
;
関数への変数の渡す物は代入式などその他です



以上。
実に長い文法・・・とはいえ、結構短いですな。
実際にこれを作って

bison -d parser.y



などとしてファイルを通してみると、実際に文法チェックされます。
関連記事
スポンサーサイト

Comment

コメントフォーム
このエントリへコメントを書く
(任意)
(任意)
(任意)
(必須) HTMLタグは使用できません
(任意) ID生成と編集に使用します
(任意) 非公開コメントにする

Page Top

Trackback

Trackback URI
http://parabola0.blog86.fc2.com/tb.php/396-e42aed1f この記事にトラックバックする(FC2ブログユーザーのみ)

Page Top

訪問者

お引っこし。 http://parabola.sblog.jp/

プロフィール

parabola0

Author:parabola0
Twitter用ですが…。
プロフィール

最新記事
最新コメント
最新トラックバック
カテゴリ
月別アーカイブ
検索フォーム
リンク

このブログをリンクに追加する

QRコード
QRコード
RSSリンクの表示
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。