Skip to content

Commit

Permalink
Fix forward reference
Browse files Browse the repository at this point in the history
  • Loading branch information
feeley committed Jan 5, 2018
1 parent e3d46a9 commit f2db45d
Show file tree
Hide file tree
Showing 2 changed files with 76 additions and 74 deletions.
76 changes: 76 additions & 0 deletions gsc/_t-univ-2.scm
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,82 @@

;;----------------------------------------------------------------------------

(define (univ-class
root-name
properties
extends
class-fields
instance-fields
class-methods
instance-methods
class-classes
constructor
inits)
(vector 'class
root-name
properties
extends
class-fields
instance-fields
class-methods
instance-methods
class-classes
constructor
inits))

(define (univ-class-root-name class-descr) (vector-ref class-descr 1))
(define (univ-class-properties class-descr) (vector-ref class-descr 2))
(define (univ-class-extends class-descr) (vector-ref class-descr 3))
(define (univ-class-class-fields class-descr) (vector-ref class-descr 4))
(define (univ-class-instance-fields class-descr) (vector-ref class-descr 5))
(define (univ-class-class-methods class-descr) (vector-ref class-descr 6))
(define (univ-class-instance-methods class-descr) (vector-ref class-descr 7))
(define (univ-class-class-classes class-descr) (vector-ref class-descr 8))
(define (univ-class-constructor class-descr) (vector-ref class-descr 9))
(define (univ-class-inits class-descr) (vector-ref class-descr 10))

(define (univ-method
name
properties
result-type
params
#!optional
(attribs '())
(body #f))
(vector 'method
name
properties
result-type
params
attribs
body))

(define (univ-method-name method-descr) (vector-ref method-descr 1))
(define (univ-method-properties method-descr) (vector-ref method-descr 2))
(define (univ-method-result-type method-descr) (vector-ref method-descr 3))
(define (univ-method-params method-descr) (vector-ref method-descr 4))
(define (univ-method-attribs method-descr) (vector-ref method-descr 5))
(define (univ-method-body method-descr) (vector-ref method-descr 6))

(define (univ-method? x) (eq? (vector-ref x 0) 'method))

(define (univ-field name type #!optional (init #f) (properties '()))
(vector 'field name properties type init))

(define (univ-field-name field-descr) (vector-ref field-descr 1))
(define (univ-field-properties field-descr) (vector-ref field-descr 2))
(define (univ-field-type field-descr) (vector-ref field-descr 3))
(define (univ-field-init field-descr) (vector-ref field-descr 4))

(define (univ-field-inherited? field-descr)
(memq 'inherited (univ-field-properties field-descr)))

(define (univ-decl-properties decl) (vector-ref decl 2))

(define (univ-def-kind x) (if (vector? x) (vector-ref x 0) 'init))

;;----------------------------------------------------------------------------

(define univ-rtlib-feature-table (make-table))

(define (univ-rtlib-feature ctx feature)
Expand Down
74 changes: 0 additions & 74 deletions gsc/_t-univ-3.scm
Original file line number Diff line number Diff line change
Expand Up @@ -73,80 +73,6 @@
(loop (cdr lst) (univ-defs-combine defs (car lst)))
defs)))

(define (univ-def-kind x) (if (vector? x) (vector-ref x 0) 'init))

(define (univ-class
root-name
properties
extends
class-fields
instance-fields
class-methods
instance-methods
class-classes
constructor
inits)
(vector 'class
root-name
properties
extends
class-fields
instance-fields
class-methods
instance-methods
class-classes
constructor
inits))

(define (univ-class-root-name class-descr) (vector-ref class-descr 1))
(define (univ-class-properties class-descr) (vector-ref class-descr 2))
(define (univ-class-extends class-descr) (vector-ref class-descr 3))
(define (univ-class-class-fields class-descr) (vector-ref class-descr 4))
(define (univ-class-instance-fields class-descr) (vector-ref class-descr 5))
(define (univ-class-class-methods class-descr) (vector-ref class-descr 6))
(define (univ-class-instance-methods class-descr) (vector-ref class-descr 7))
(define (univ-class-class-classes class-descr) (vector-ref class-descr 8))
(define (univ-class-constructor class-descr) (vector-ref class-descr 9))
(define (univ-class-inits class-descr) (vector-ref class-descr 10))

(define (univ-method
name
properties
result-type
params
#!optional
(attribs '())
(body #f))
(vector 'method
name
properties
result-type
params
attribs
body))

(define (univ-method-name method-descr) (vector-ref method-descr 1))
(define (univ-method-properties method-descr) (vector-ref method-descr 2))
(define (univ-method-result-type method-descr) (vector-ref method-descr 3))
(define (univ-method-params method-descr) (vector-ref method-descr 4))
(define (univ-method-attribs method-descr) (vector-ref method-descr 5))
(define (univ-method-body method-descr) (vector-ref method-descr 6))

(define (univ-method? x) (eq? (vector-ref x 0) 'method))

(define (univ-field name type #!optional (init #f) (properties '()))
(vector 'field name properties type init))

(define (univ-field-name field-descr) (vector-ref field-descr 1))
(define (univ-field-properties field-descr) (vector-ref field-descr 2))
(define (univ-field-type field-descr) (vector-ref field-descr 3))
(define (univ-field-init field-descr) (vector-ref field-descr 4))

(define (univ-field-inherited? field-descr)
(memq 'inherited (univ-field-properties field-descr)))

(define (univ-decl-properties decl) (vector-ref decl 2))

(define (univ-emit-var-decl ctx var-descr)
(case (target-name (ctx-target ctx))

Expand Down

0 comments on commit f2db45d

Please sign in to comment.