Reflection/Get source: Difference between revisions
Content deleted Content added
m →Programmatically: sp |
implement in nim lang |
||
Line 334: | Line 334: | ||
<lang nanoquery>import Nanoquery.IO |
<lang nanoquery>import Nanoquery.IO |
||
println new(File, __file__).readAll()</lang> |
println new(File, __file__).readAll()</lang> |
||
=={{header|Nim}}== |
|||
<lang nim>import macros, strformat |
|||
proc f(arg: int): int = arg+1 |
|||
macro getSource(source: static[string]) = |
|||
let module = parseStmt(source) |
|||
for node in module.children: |
|||
if node.kind == nnkProcDef: |
|||
echo(&"source of procedure {node.name} is:\n{toStrLit(node).strVal}") |
|||
proc g(arg: float): float = arg*arg |
|||
getSource(staticRead(currentSourcePath()))</lang> |
|||
{{out}} |
|||
<pre>source of procedure f is: |
|||
proc f(arg: int): int = |
|||
arg + 1 |
|||
source of procedure g is: |
|||
proc g(arg: float): float = |
|||
arg * arg |
|||
</pre> |
|||
=={{header|Phix}}== |
=={{header|Phix}}== |