aboutsummaryrefslogtreecommitdiff
path: root/src/cljcc/symbol.clj
blob: c410dacb45b890c87bcb27fec68a36fcd3444436 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
(ns cljcc.symbol)

;; Contains functions related to symbol table manipulation.

(defn create-symbol [type attribute]
  {:type type
   :attribute attribute})

(defn local-attribute []
  {:type :local})

(defn static-attribute [initial-value global?]
  {:type :static
   :initial-value initial-value
   :global? global?})

(defn fun-attribute [defined? global?]
  {:type :fun
   :defined? defined?
   :global? global?})

(defn no-initializer-iv []
  {:type :no-initializer})

(defn tentative-iv []
  {:type :tentative})

(defn initial-iv [static-init]
  {:type :initial
   :static-init static-init})

(defn int-init [v]
  {:type :int-init
   :value v})

(defn uint-init [v]
  {:type :uint-init
   :value v})

(defn long-init [v]
  {:type :long-init
   :value v})

(defn ulong-init [v]
  {:type :ulong-init
   :value v})

(defn double-init [v]
  {:type :double-init
   :value v})