Hi,
I have written a script in Ruby version 1.6.7 running in Windows and it is
doing fine. But when I start it in Linux with Ruby version 1.8.4 there are
lot of error messages.
I minimized the script to that part, which will cause the errors.
Here it is:
···
*************************************************************************
#======================================================================
# class Block
#
# Block
# =====================================================================
class Block
UMLAUTE = ""<<0x84<<0x81<<0x94<<0x80<<0x99<<0x9A<<0xE1
REG_VAR_NAME = "[a-z]+[a-z0-9_#$"+"()" + "@." + UMLAUTE + "]*"
REG_PLAIN_NAME = "[a-z]+[a-z0-9_" + "." + UMLAUTE + "]*"
REG_PARAM_LIST = "[a-z]+[a-z0-9_#$," + UMLAUTE + "]*"
REG_STRUCT_NAME = "[a-z]+[a-z0-9_" + UMLAUTE + "]*"
#--------------------------------------------------------------------
# Block#adapt_param_list_with_types
#
# Change paramlist for use in c++ prototypes
#--------------------------------------------------------------------
def adapt_param_list_with_types(var_list)
out_list = String.new("")
vars = var_list.split(',')
vars.each do |var|
if var =~ /REF/
ref = "&"
else
ref = ""
end
case var
when Regexp.new("REF\s(#{REG_PLAIN_NAME)
[@]\sOF\s(#{REG_PLAIN_NAME})$")
out_list += "#{$2} *#{$1},"
when Regexp.new("(#{REG_PLAIN_NAME})#$")
out_list += "int " + ref + $1 + "_int,"
when Regexp.new("(#{REG_PLAIN_NAME})[$]$")
out_list += "str " + ref + $1 + "_str,"
when Regexp.new("(#{REG_PLAIN_NAME})$")
out_list += "double " + ref + $1 + ","
else
out_list += var + ","
end
end
out_list.chop!
#puts "var_list = " + var_list
#puts "out_list = " + out_list
return adapt_umlaut_in_var_names(out_list)
end
end
*************************************************************************
Here are the error messages:
*************************************************************************
ruby test.rb
test.rb:9: parse error, unexpected '(', expecting kEND
REG_VAR_NAME = "[a-z]+[a-z0-9_#$"+"()" + "@." + UMLAUTE + "]*"
^
test.rb:9: parse error, unexpected $undefined., expecting kEND
REG_VAR_NAME = "[a-z]+[a-z0-9_#$"+"()" + "@." + UMLAUTE + "]*"
^
test.rb:9: parse error, unexpected ']', expecting kEND
REG_VAR_NAME = "[a-z]+[a-z0-9_#$"+"()" + "@." + UMLAUTE + "]*"
^
test.rb:10: trailing `_' in number
REG_PLAIN_NAME = "[a-z]+[a-z0-9_" + "." + UMLAUTE + "]*"
^
test.rb:10: parse error, unexpected tSTRING_BEG, expecting ']'
REG_PLAIN_NAME = "[a-z]+[a-z0-9_" + "." + UMLAUTE + "]*"
^
test.rb:10: parse error, unexpected tSTRING_BEG
REG_PLAIN_NAME = "[a-z]+[a-z0-9_" + "." + UMLAUTE + "]*"
^
test.rb:10: parse error, unexpected ']', expecting kEND
REG_PLAIN_NAME = "[a-z]+[a-z0-9_" + "." + UMLAUTE + "]*"
^
test.rb:11: trailing `_' in number
REG_PARAM_LIST = "[a-z]+[a-z0-9_#$," + UMLAUTE + "]*"
^
test.rb:12: parse error, unexpected tCONSTANT, expecting ']'
REG_STRUCT_NAME = "[a-z]+[a-z0-9_" + UMLAUTE + "]*"
^
test.rb:33: parse error, unexpected tIDENTIFIER, expecting ')'
out_list += "int " + ref + $1 + "_int,"
^
test.rb:33: parse error, unexpected tIDENTIFIER, expecting kEND
out_list += "int " + ref + $1 + "_int,"
^
test.rb:34: parse error, unexpected '(', expecting tCOLON2 or '[' or '.'
when Regexp.new("(#{REG_PLAIN_NAME})[$]$")
^
test.rb:36: parse error, unexpected kWHEN, expecting kEND
when Regexp.new("(#{REG_PLAIN_NAME})$")
^
test.rb:38: parse error, unexpected kELSE, expecting kEND
else
^
test.rb:48: parse error, unexpected kEND, expecting $
*************************************************************************
Does anybody have an idea, why these erorr messages occur?
Siegward