トピック
MIKI ifconfig

式の優先順位

+1 : syntax error ' 単項演算子 + は無し 2*-not!1 = 2 '単項演算子 > * 1 or 2 and 4 = 1 'and > or ・and > xor 1 and 1 xor 2 = 3 2 xor 1 and 1 = 3 ・or と xor は同じ優先度・左結合 1 or 1 xor 1 = 0 1 xor 1 or 1 = 1 ・== と > は同じ優先度・左結合 1 == 2 > 1 = 0 1 > 2 == 1 = 0
17そうだね
プレイ済み
返信[1]
親投稿
say sayer.exe
読めるけど地味に難儀したので もそっと詳しくお願いします^_^;;
1そうだね
プレイ済み
返信[2]
親投稿
say sayer.exe
ちなみにおいらは、優先順位に関わらず括弧でくくって逃げて、傍目にムダなことしちゃってます
6そうだね
プレイ済み
返信[3]
親投稿
シュナ S_S_Schneider
sayさん > 括弧をつけてムダなことをしている っと仰いましたが 決して無駄ではないと 思います。 ソースの読みやすさを考慮して 優先順位が変わらなくても 括弧をつけることは よくあることですし。 まぁ 出来るだけ短いプログラムの作成でしたら 話は別ですが……
0そうだね
プレイ済み
返信[4]
親投稿
見やすくするためにあえて括弧をいれるのは有効だと思いますよ。括弧のせいで見にくくなるようだったら、その時には優先度を意識して整理した方がいいとは思いますが…。 また滅多に使わない記号などで優先度に不安がある場合に括弧をつけちゃうと言うのはありますね。
1そうだね
プレイ済み
返信[5]
親投稿
say sayer.exe
ツッコミありがとう いや、そうじゃなくて、みきちゃんの解説してくれーのぅ
0そうだね
プレイ済み
返信[6]
親投稿
れい rei-nntnd
say氏に必要と思えないのでみんなシカトしてんじゃないかな
0そうだね
プレイ済み
返信[7]
親投稿
MIKI ifconfig
説明書の 31 BASIC基本仕様 (1) ()で囲まれた部分 (2) - not ! (3) * / div mod (4) + - (5) << >> (6) == != < <= > >= (7) and or xor (8) && || とあるけど、実際には
0そうだね
プレイ済み
返信[8]
親投稿
MIKI ifconfig
(1) ()で囲まれた部分 (2) - not ! (3) * / div mod (4) + - (5) << >> (6) == != < <= > >= (左結合) (7-1) and (7-2) or xor (左結合) (8-1) && (8-2) || だというお話です。 たなかさんみたく互換パーサ作ろうと思い、第一歩として式の検証しました。 && || あるから一度中間コードにコンパイルしてからじゃないとダメ。 a/b-c/d で d,c,b,aの順に評価されるのはかなり厄介だ・・・
2そうだね
プレイ済み
返信[9]
親投稿
MIKI ifconfig
以上をふまえて factor: constant var var [ indexes ] func ( arguments ) ( lor-expr ) constant: floating-constant # identifier
0そうだね
プレイ済み
返信[10]
親投稿
MIKI ifconfig
var: identifier func: identifier indexes: lor-expr indexes , lor-expr arguments: lor-expr arguments , lor-expr unary-expr: factor unary-ope unary-expr
0そうだね
プレイ済み
返信[11]
親投稿
MIKI ifconfig
unary-ope: - | not | ! term: unary-expr term mul-ope unary-expr mul-ope: * | / | div | mod add-expr: mul-expr add-expr + mul-expr add-expr - mul-expr
0そうだね
プレイ済み
返信[12]
親投稿
MIKI ifconfig
shift-expr: add-expr shift-expr << add-expr shift-expr >> add-expr rel-expr: shift-expr rel-expr rel-ope shift-expr rel-ope: == | != | < | <= | > | >=
0そうだね
プレイ済み
返信[13]
親投稿
MIKI ifconfig
and-expr: rel-expr and-expr and rel-expr or-expr: and-expr or-expr or and-epr or-expr xor and-epr
0そうだね
プレイ済み
返信[14]
親投稿
MIKI ifconfig
land-expr: or-expr land-exp && or-expr lor-expr: land-expr expr || land-expr
0そうだね
プレイ済み
返信[15]
親投稿
MIKI ifconfig
忘れてた constant: hexadecimal-constant binary-constant var: var ( "identifer" ) factor: call ( "identifier" ) call ( "identifier" , arguments )
0そうだね
プレイ済み