Advertisement
Guest User

Untitled

a guest
Aug 21st, 2019
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.80 KB | None | 0 0
  1. proc handleSetSeq(oId: NimNode, pnId: NimNode, sId: NimNode, name: string, dtype: NimNode): NimNode =
  2. let
  3. seqKind = dtype.nodeToVal().strVal
  4. fieldName = ident(name)
  5. eceId = ident"e"
  6. bnId = ident"b"
  7.  
  8. var forBody = newStmtList()
  9. case seqKind
  10. of "floatVal":
  11. forBody.add quote do:
  12. `bnId`.add nkFloatLit.newFloatNode(val)
  13. of "intVal":
  14. forBody.add quote do:
  15. `bnId`.add nkIntLit.newIntNode(val)
  16. of "strVal":
  17. forBody.add quote do:
  18. `bnId`.add nkStrLit.newStrNode(val)
  19. forBody.add quote do:
  20. `eceId`.add `bnId`
  21. result = quote do:
  22. var `eceId` = nkExprColonExpr.newTree(
  23. newSymNode(`sId`),
  24. )
  25. var `bnId` = nkBracket.newTree()
  26. forBody = quote do:
  27. for val in `oid`.`fieldName`:
  28. `forBody`
  29. result.add quote do:
  30. `pnId`.add `eceId`
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement