Class: Object
- Inherits:
- BasicObject
- Defined in:
- lib/rubimc/preprocessor.rb,
lib/rubimc/ruby_classes.rb
Overview
ЗАДАЧА ПРЕПРОЦЕССОРА: 1. (готово) замена оператора присваивания: “=” на “.c_assign=” 2. (готово )замена всех цифр(целые, дробные, отриц.) 3a. (не готово) Замена условий (find_far_pos - возвращать позицию с учетом длины идентификатора) 3b. (готово) Замена циклов 3c. Замена управляющих структур: break, next, redo, retry 4. замена строк “123” => UserVariable.new(“123”) - строки “это_строка” и ‘это_строка’ 5. Поиск необъявленных переменных и выдача ошибок 6. Предупреждение об использовании зарезервированных переменных и методов все они начинаются на “__rubim__” (напр. __rubim__times или __rubim__classparams) 7. Предупреждение об использовании зарезервированных классов UserClass, UserArray (лучше заменить на RubimClass, RubimArray) 8. Добавление предка к пользовательским классам 9. Замена return на __rubim_return 10. Сохранить все пользовательские комментарии в генерируемом коде 11. Цикл for - хз-чо делать…
Instance Method Summary collapse
Instance Method Details
#has_parent?(name) ⇒ Boolean
6 7 8 9 |
# File 'lib/rubimc/ruby_classes.rb', line 6 def has_parent?(name) return false unless self.respond_to? :ancestors self!=name and self.ancestors.include?(name) end |
#in?(array) ⇒ Boolean
26 27 28 29 |
# File 'lib/rubimc/preprocessor.rb', line 26 def in?(array) array.each {|x| return true if x == self} return false end |
#not_nil? ⇒ Boolean
2 3 4 |
# File 'lib/rubimc/ruby_classes.rb', line 2 def not_nil? !self.nil? end |
#to_rubim ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/rubimc/ruby_classes.rb', line 11 def to_rubim type = case self.class.name when "Fixnum" then 'int' when "Float" then 'float' when "String" then 'string' else nil end if type.nil? or self.to_s.nil? RubimCode.perror "Неизвестный тип переменной" end UserVariable.new(self.to_s, type) end |