lib "rubex/ruby"; end
struct mp3info
int id
char* title
end
class Music attach mp3info
def initialize(id, title)
mp3info* mp3 = data$.mp3info
mp3.id = id
mp3.title = title
end
def id
return data$.id
end
def title
return data$.title
end
cfunc void deallocate
xfree(data$.mp3info)
end
end
Output when compiling:
/home/jacob/.rvm/gems/ruby-2.4.1/gems/rubex-0.0.1/lib/rubex/ast/expression.rb:810:in
`analyse_command_type': Entry #<Rubex::AST::Expression::CommandCall:0x00000001592df0> does
not exist in #<Rubex::AST::Expression::ElementRef:0x000000018ff470>. (RuntimeError)
from [..]/gems/rubex-0.0.1/lib/rubex/ast/expression.rb:749:in `analyse_statement'
from [..]/gems/rubex-0.0.1/lib/rubex/ast/statement.rb:341:in `analyse_statement'
from [..]/gems/rubex-0.0.1/lib/rubex/ast/top_statement.rb:171:in `block in analyse_statement'
from [..]/gems/rubex-0.0.1/lib/rubex/ast/top_statement.rb:170:in `each'
from [..]/gems/rubex-0.0.1/lib/rubex/ast/top_statement.rb:170:in `analyse_statement'
from [..]/gems/rubex-0.0.1/lib/rubex/ast/top_statement.rb:253:in `analyse_statement'
from [..]/gems/rubex-0.0.1/lib/rubex/ast/top_statement.rb:437:in `block in analyse_statement'
from [..]/gems/rubex-0.0.1/lib/rubex/ast/top_statement.rb:433:in `each'
from [..]/gems/rubex-0.0.1/lib/rubex/ast/top_statement.rb:433:in `analyse_statement'
from [..]/gems/rubex-0.0.1/lib/rubex/ast/node.rb:147:in `block in analyse_statement'
from [..]/gems/rubex-0.0.1/lib/rubex/ast/node.rb:146:in `each'
from [..]/gems/rubex-0.0.1/lib/rubex/ast/node.rb:146:in `analyse_statement'
from [..]/gems/rubex-0.0.1/lib/rubex/ast/node.rb:14:in `process_statements'
from [..]/gems/rubex-0.0.1/lib/rubex/compiler.rb:50:in `generate_code'
from [..]/gems/rubex-0.0.1/lib/rubex/compiler.rb:9:in `compile'
from [..]/gems/rubex-0.0.1/bin/rubex:10:in `<top (required)>'
from [..]/bin/rubex:23:in `load'
from [..]/bin/rubex:23:in `<main>'
It compiles if I remove the #id and #title methods.
Output when compiling:
It compiles if I remove the
#id
and#title
methods.