Guest User

Untitled

a guest
Jan 18th, 2018
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.74 KB | None | 0 0
  1. return (X[0]**2 - X[1]**2, 2*X[0]*X[1])
  2.  
  3. import ampl, sys
  4.  
  5. class AMPLToPythonConverter:
  6. def __init__(self, stream):
  7. self.stream = stream
  8.  
  9. def visit_reference(self, expr):
  10. self.stream.write(expr.name)
  11.  
  12. def visit_binary(self, expr):
  13. expr.lhs.accept(self)
  14. self.stream.write(' {} '.format(expr.op))
  15. expr.rhs.accept(self)
  16.  
  17. def visit_decl(self, decl):
  18. if decl.kind == 'minimize':
  19. self.stream.write("def {}(x):n".format(decl.name))
  20. self.stream.write(" return ");
  21. decl.body.accept(self)
  22. self.stream.write('n')
  23.  
  24. compound_stmt = ampl.parse(
  25. """
  26. var x;
  27. minimize f: x * x;
  28. """, "input")
  29.  
  30. for node in compound_stmt.nodes:
  31. node.accept(AMPLToPythonConverter(sys.stdout))
  32.  
  33. def f(x):
  34. return x * x
Add Comment
Please, Sign In to add comment