ab.com コミュニティ https://www.activebasic.com/forum/ |
|
標準では未定義の演算子の導入に関する提案 https://www.activebasic.com/forum/viewtopic.php?t=1935 |
ページ 1 / 1 |
作成者: | konisi [ 2007年5月08日(火) 00:02 ] |
記事の件名: | 標準では未定義の演算子の導入に関する提案 |
下のような、演算子の追加定義方法を思いついたんですが、どうでしょうか? 定義の書式 Sub/Function Operator "NewOperatorName" (...) [As ...] {[priority:"OldOperatorName"],[unit:Direction]} NewOperatorName ・・・演算子の名前 OldOperatorName・・・演算の優先順位が等価である演算子の名前。省略時:As(例) Direction・・・演算子の結合性。値:LEFT,RIGHT 省略時:LEFT(例) OldOperatorNameが代入演算子系の場合は必ず省略or無視(例) 例(これだけだと導入するだけ無駄に見えるが、応用範囲はかなり広いであろう。) コード: Class Foo Public a As Long Sub Operator "addto" (foo As Foo) {priority:"+="} a += foo.a End Sub End Class #console Dim A As Foo,B As Foo A.a=1 B.a=3 A addto B Print A.a Sleep(10000)例2 コード: Class Foo Public x As Double y As Double Sub Operator "span" (cita As Double) {priority:"*="} Dim sx As Double,sy As Double Dim x2 As Double,y2 As Double cita*=Math.PI()/180 sx=Math.Cos(cita) sy=Math.Sin(cita) x2=x*sx-y*sy y2=x*sy+y*sx x=x2 y=y2 End Sub End Class #console Dim A As Foo A.x=1 A.y=0 A span 45 Print A.x Print A.y Sleep(10000)例とかは今手打ちで書いたのでおかしいところもあると思います。指摘してやってください。 |
作成者: | tak [ 2007年5月08日(火) 00:12 ] |
記事の件名: | |
新しい種類の演算子の定義は、コンセプトとしては有用なものであることは認めます。 ただそれを実装するのにどれだけ手間がかかるか想像してみてください。 もちろんコンパイラを制作しているのは山本さんなので、山本さんが出来ると仰れば反対する理由はありませんが。 |
ページ 1 / 1 | 全ての表示時間は UTC+09:00 です |
Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |