1 # $Id: types.rb,v 1.2 2011/12/08 22:54:35 machan Exp $
2
3 require 'tmdoc/tmstd'
4 require 'tmdoc/constant'
5 require 'tmdoc/environment'
6 require 'tmdoc/model/core'
7 require 'tmdoc/reader/ruby1.8/scanner'
8
9
10 module TmDoc
11
12 module Reader::Ruby18
13
14 module Parser
15
16 class Context < TmStd::Lsm::Product::Abstract
17 def initialize(in_unique_class = false, in_module_func = false)
18 ASSERT.boolean in_unique_class
19 ASSERT.boolean in_module_func
20
21 @in_unique_class = in_unique_class
22 @in_module_func = in_module_func
23 end
24
25
26 def in_unique_class?
27 @in_unique_class
28 end
29
30
31 def in_module_func?
32 @in_module_func
33 end
34
35
36 def update_unique_class(in_unique_class)
37 ASSERT.boolean in_unique_class
38
39 Context.new(in_unique_class, self.in_module_func?)
40 end
41
42
43 def update_module_func(in_module_func)
44 ASSERT.boolean in_module_func
45
46 Context.new(self.in_unique_class?, in_module_func)
47 end
48 end
49
50
51
52 class Argument < TmStd::Lsm::Product::Abstract
53 attr_reader :name, :line_num
54
55
56 def initialize(name, line_num)
57 ASSERT.kind_of name, String
58 ASSERT.kind_of line_num, Integer
59
60 @name = name
61 @line_num = line_num
62 end
63 end
64
65
66 class SeqOfArgument < TmStd::Lsm::Collection::Sequence::Abstract
67 include TmStd::Lsm::Collection::Sequence::Mutable
68
69 LSM_ELEMENT_CLASS = Argument
70 end
71
72 end # TmDoc::Reader::Ruby18::Parser
73
74 end # TmDoc::Reader::Ruby18
75
76 end # TmDoc