| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- #lang racket
- (provide zk_variable)
- (provide zk_constant)
- (provide zk_param)
- (provide zk_public)
- (provide zk_local)
- (provide zk_private)
- (provide zk_comment)
- (provide zk_set)
- (provide zk_add)
- (provide zk_sub)
- (provide zk_mul)
- (provide zk_divide)
- (provide zk_load)
- (provide zk_lc0_add)
- (provide zk_lc1_add)
- (provide zk_lc2_add)
- (provide zk_lc0_sub)
- (provide zk_lc1_sub)
- (provide zk_lc2_sub)
- (provide zk_lc0_add_coeff)
- (provide zk_lc1_add_coeff)
- (provide zk_lc2_add_coeff)
- (provide zk_lc0_add_one)
- (provide zk_lc1_add_one)
- (provide zk_lc2_add_one)
- (provide zk_enforce)
- (provide create_zk_output)
- (provide zk_contract_begin)
- (provide zk_contract_end)
- (define out '0)
- (define (create_zk_output filename)
- (set! out (open-output-file "jj.psm" #:exists 'truncate))
- )
- (struct zk_variable
- (name type)
- )
- (define (zk_constant name hex_value)
- (fprintf out "constant ~a ~a\n" name hex_value)
- name
- )
- (define (zk_contract_begin contract_name)
- (fprintf out "contract ~a\n" contract_name)
- )
- (define (zk_contract_end)
- (fprintf out "end\n")
- )
- (define (zk_param name)
- (fprintf out "param ~a\n" name)
- (zk_variable name 'param)
- )
- (define (zk_public name)
- (fprintf out "public ~a\n" name)
- (zk_variable name 'public)
- )
- (define (strings->string sts)
- (apply string-append sts))
- (define (apply_ns namespace name)
- (strings->string
- (append namespace
- (list "__" (symbol->string name))
- )))
- (define (zk_local namespace name)
- (let ([name (apply_ns namespace name)])
- (fprintf out "local ~a\n" name)
- (zk_variable name 'local)
- )
- )
- (define (zk_private namespace name)
- (let ([name (apply_ns namespace name)])
- (fprintf out "private ~a\n" name)
- (zk_variable name 'private)
- )
- )
- (define (zk_comment str)
- (fprintf out "# ~a\n" str)
- )
- (define (zk_set self other)
- (fprintf out "set ~a ~a\n" (zk_variable-name self) (zk_variable-name other))
- )
- (define (zk_add self other)
- (fprintf out "add ~a ~a\n" (zk_variable-name self) (zk_variable-name other))
- )
- (define (zk_sub self other)
- (fprintf out "sub ~a ~a\n" (zk_variable-name self) (zk_variable-name other))
- )
- (define (zk_mul self other)
- (fprintf out "mul ~a ~a\n" (zk_variable-name self) (zk_variable-name other))
- )
- (define (zk_divide self other)
- (fprintf out "divide ~a ~a\n"
- (zk_variable-name self) (zk_variable-name other))
- )
- (define (zk_load self constant)
- (fprintf out "load ~a ~a\n" (zk_variable-name self) constant)
- )
- (define (zk_lc0_add self)
- (fprintf out "lc0_add ~a\n" (zk_variable-name self)))
- (define (zk_lc1_add self)
- (fprintf out "lc1_add ~a\n" (zk_variable-name self)))
- (define (zk_lc2_add self)
- (fprintf out "lc2_add ~a\n" (zk_variable-name self)))
- (define (zk_lc0_sub self)
- (fprintf out "lc0_sub ~a\n" (zk_variable-name self)))
- (define (zk_lc1_sub self)
- (fprintf out "lc1_sub ~a\n" (zk_variable-name self)))
- (define (zk_lc2_sub self)
- (fprintf out "lc2_sub ~a\n" (zk_variable-name self)))
- (define (zk_lc0_add_coeff constant self)
- (fprintf out "lc0_add_coeff ~a ~a\n" constant (zk_variable-name self)))
- (define (zk_lc1_add_coeff constant self)
- (fprintf out "lc1_add_coeff ~a ~a\n" constant (zk_variable-name self)))
- (define (zk_lc2_add_coeff constant self)
- (fprintf out "lc2_add_coeff ~a ~a\n" constant (zk_variable-name self)))
- (define (zk_lc0_add_one)
- (fprintf out "lc0_add_one\n"))
- (define (zk_lc1_add_one)
- (fprintf out "lc1_add_one\n"))
- (define (zk_lc2_add_one)
- (fprintf out "lc2_add_one\n"))
- (define (zk_enforce)
- (fprintf out "enforce\n")
- )
|