builders.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. package poet
  2. import "github.com/kyleconroy/sqlc/internal/python/ast"
  3. func Alias(name string) *ast.Node {
  4. return &ast.Node{
  5. Node: &ast.Node_Alias{
  6. Alias: &ast.Alias{
  7. Name: name,
  8. },
  9. },
  10. }
  11. }
  12. func Await(value *ast.Node) *ast.Node {
  13. return &ast.Node{
  14. Node: &ast.Node_Await{
  15. Await: &ast.Await{
  16. Value: value,
  17. },
  18. },
  19. }
  20. }
  21. func Attribute(value *ast.Node, attr string) *ast.Node {
  22. return &ast.Node{
  23. Node: &ast.Node_Attribute{
  24. Attribute: &ast.Attribute{
  25. Value: value,
  26. Attr: attr,
  27. },
  28. },
  29. }
  30. }
  31. func Comment(text string) *ast.Node {
  32. return &ast.Node{
  33. Node: &ast.Node_Comment{
  34. Comment: &ast.Comment{
  35. Text: text,
  36. },
  37. },
  38. }
  39. }
  40. func Expr(value *ast.Node) *ast.Node {
  41. return &ast.Node{
  42. Node: &ast.Node_Expr{
  43. Expr: &ast.Expr{
  44. Value: value,
  45. },
  46. },
  47. }
  48. }
  49. func Is() *ast.Node {
  50. return &ast.Node{
  51. Node: &ast.Node_Is{
  52. Is: &ast.Is{},
  53. },
  54. }
  55. }
  56. func Name(id string) *ast.Node {
  57. return &ast.Node{
  58. Node: &ast.Node_Name{
  59. Name: &ast.Name{Id: id},
  60. },
  61. }
  62. }
  63. func Return(value *ast.Node) *ast.Node {
  64. return &ast.Node{
  65. Node: &ast.Node_Return{
  66. Return: &ast.Return{
  67. Value: value,
  68. },
  69. },
  70. }
  71. }
  72. func Yield(value *ast.Node) *ast.Node {
  73. return &ast.Node{
  74. Node: &ast.Node_Yield{
  75. Yield: &ast.Yield{
  76. Value: value,
  77. },
  78. },
  79. }
  80. }