Class: Node

Inherits:
Object show all
Defined in:
lib/tecsgen/core/syntaxobj.rb

Overview

Node

Node の直接の子クラス: C_EXP, Type, BaseVal, BDNode(ほとんどのものは BDNode の子クラス) Node に (BDNodeにも) 入らないもの: Token, Import, Import_C, Generate

owner を持たないものが Node となる エラーは、cdl_error を通じて報告する (意味解析が構文解析後に行われる場合には、行番号が正しく出力できる

Instance Method Summary collapse

Constructor Details

#initializeNode

@locale
@file, @lineno, @col


53
54
55
# File 'lib/tecsgen/core/syntaxobj.rb', line 53

def initialize
  @locale = Generator.current_locale
end

Instance Method Details

#cdl_error(message, *arg) ⇒ Object

エラーを出力する



58
59
60
# File 'lib/tecsgen/core/syntaxobj.rb', line 58

def cdl_error(message, *arg)
  Generator.error2(@locale, message, *arg)
end

#cdl_error2(locale, message, *arg) ⇒ Object

エラーを出力する

locale

Array(locale info) : 構文解析中は無視される



64
65
66
# File 'lib/tecsgen/core/syntaxobj.rb', line 64

def cdl_error2(locale, message, *arg)
  Generator.error2(locale, message, *arg)
end

#cdl_error3(locale, message, *arg) ⇒ Object

エラーを出力する

locale

Array(locale info)

構文解析中 cdl_error2 では locale が無視されるため、別に locale を出力する



71
72
73
74
# File 'lib/tecsgen/core/syntaxobj.rb', line 71

def cdl_error3(locale, message, *arg)
  Generator.error(message, *arg)
  Console.puts "check: #{locale[0]}: line #{locale[1]} for above error"
end

#cdl_info(message, *arg) ⇒ Object

情報を表示する



87
88
89
# File 'lib/tecsgen/core/syntaxobj.rb', line 87

def cdl_info(message, *arg)
  Generator.info2(@locale, message, *arg)
end

#cdl_info2(locale, message, *arg) ⇒ Object

情報を表示する



92
93
94
# File 'lib/tecsgen/core/syntaxobj.rb', line 92

def cdl_info2(locale, message, *arg)
  Generator.info2(locale, message, *arg)
end

#cdl_warning(message, *arg) ⇒ Object

ウォーニング出力する



77
78
79
# File 'lib/tecsgen/core/syntaxobj.rb', line 77

def cdl_warning(message, *arg)
  Generator.warning2(@locale, message, *arg)
end

#cdl_warning2(locale, message, *arg) ⇒ Object

ウォーニング出力する



82
83
84
# File 'lib/tecsgen/core/syntaxobj.rb', line 82

def cdl_warning2(locale, message, *arg)
  Generator.warning2(locale, message, *arg)
end

#get_localeObject



96
97
98
# File 'lib/tecsgen/core/syntaxobj.rb', line 96

def get_locale
  @locale
end

#locale_strObject



104
105
106
# File 'lib/tecsgen/core/syntaxobj.rb', line 104

def locale_str
  "locale=( #{@locale[0]}, #{@locale[1]} )"
end

#set_locale(locale) ⇒ Object



100
101
102
# File 'lib/tecsgen/core/syntaxobj.rb', line 100

def set_locale(locale)
  @locale = locale
end