term rewriting improvements
This commit is contained in:
parent
355ae07b8f
commit
b64eeeb430
18 changed files with 284 additions and 144 deletions
26
tests/patterns/tmatrix.nim
Normal file
26
tests/patterns/tmatrix.nim
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
discard """
|
||||
output: "21"
|
||||
"""
|
||||
|
||||
import macros
|
||||
|
||||
type
|
||||
TMat = object
|
||||
dummy: int
|
||||
|
||||
proc `*`(a, b: TMat): TMat = nil
|
||||
proc `+`(a, b: TMat): TMat = nil
|
||||
proc `-`(a, b: TMat): TMat = nil
|
||||
proc `$`(a: TMat): string = result = $a.dummy
|
||||
|
||||
macro optOps{ (`+`|`-`|`*`) *| a }(a: varargs[TMat]): expr =
|
||||
result = newIntLitNode(21)
|
||||
|
||||
#macro optPlus{ `+` * a }(a: varargs[TMat]): expr =
|
||||
# result = newIntLitNode(21)
|
||||
|
||||
var x, y, z: TMat
|
||||
|
||||
echo x + y * z - x
|
||||
|
||||
#echo x + y + z
|
||||
Loading…
Add table
Add a link
Reference in a new issue