func insert(list:@node; new:string):@node
p:=list
prev := @nil
- while ?p and then p@.this < new:
+ while ?p and then p.this < new:
prev = p
- p = p@.next
+ p = p.next
if ?prev:
- prev@.next = @new()
- prev@.next@.next = p
- prev@.next@.this = new
+ prev.next = @new()
+ prev.next.next = p
+ prev.next.this = new
else
list = @new()
- list@.next = p
- list@.this = new
+ list.next = p
+ list.this = new
use list
func printlist(list:@node)
func freelist(list:@node)
if list != @nil:
- freelist(list@.next)
+ freelist(list.next)
@free = list
func main(argv:[ac::]string)
.tmp.code:29:12: error: have number but need string
.tmp.code:7:8: info: variable 'c' was set as string here.
.tmp.code:32:8: error: variable used but not declared: foo
- .tmp.code:32:8: error: field reference attempted on none, not a struct
+ .tmp.code:32:8: error: field reference on none is not supported
.tmp.code:32:16: error: expected none found number
- .tmp.code:33:14: error: field reference attempted on string, not a struct
+ .tmp.code:33:14: error: field reference on string is not supported
.tmp.code:34:14: error: cannot find requested field in foo
.tmp.code:35:17: error: have string but need number
.tmp.code:38:29: error: expected number (labels not permitted) found Boolean
ref2:@string
num:number = @new()
print num@
- if num == @nil or ref == ref2 or ref == 2:
+ if num == @nil or ref == ref2 or ref == 2 or ref.foo:
@free = num
###### output: ref_err2
.tmp.code:7:33: error: expected @number but variable 'ref2' is @string
.tmp.code:4:8: info: this is where 'ref2' was set to @string
.tmp.code:7:48: error: expected @number found number
+ .tmp.code:7:53: error: field reference on number is not supported
+ .tmp.code:7:56: error: have none but need Boolean
.tmp.code:8:17: error: @free can only be assigned a reference, not number
.tmp.code:8:17: error: @free can only be assigned a reference, not number
oceani: type error in program - not running.