Class: SiSU_Sem::Tags

Inherits:
Object
  • Object
show all
Defined in:
lib/sisu/shared_sem.rb

Instance Method Summary collapse

Constructor Details

#initialize(para, md) ⇒ Tags

Returns a new instance of Tags.



58
59
60
# File 'lib/sisu/shared_sem.rb', line 58

def initialize(para,md)
  @para,@md=para,md
end

Instance Method Details

#allObject



143
144
145
146
147
148
149
# File 'lib/sisu/shared_sem.rb', line 143

def all
  if @md.sem_tag
    sem_marker_parts
    sem_marker_added_extra_parts
  end
  @para
end

#each_cObject



68
69
70
# File 'lib/sisu/shared_sem.rb', line 68

def each_c
  /(?:[a-z]+(?:[_:.][a-z]+)+|[a-z]*):\{|\}:[a-z]+(?:[_:.][a-z]+)*/m
end

#each_cscObject



65
66
67
# File 'lib/sisu/shared_sem.rb', line 65

def each_csc
  /(?:;|(?:[a-z]+(?:[_:.][a-z]+)+|[a-z]*):)\{|\}[:;][a-z]+(?:[_:.][a-z]+)*/m
end

#each_csc_aeObject



86
87
88
# File 'lib/sisu/shared_sem.rb', line 86

def each_csc_ae
  /(?:;|(?:[a-z]+(?:[_:.][a-z]+)+)*:|[a-z]*:)\[|\][:;](?:[a-z]+(?:[_:.][a-z]+)+|[a-z]+)/m
end

#each_scObject



71
72
73
# File 'lib/sisu/shared_sem.rb', line 71

def each_sc
  /(?:[a-z]+(?:[_:.][a-z]+)+|[a-z]*);\{|\};[a-z]+(?:[_:.][a-z]+)*/m
end

#excludeObject



62
63
64
# File 'lib/sisu/shared_sem.rb', line 62

def exclude
  /^(?:<:code>|%+ )/
end

#if_pair_cObject



102
103
104
105
106
# File 'lib/sisu/shared_sem.rb', line 102

def if_pair_c
  if @para=~/([a-z](?:[a-z_:.]+?[a-z])?)+(?::\{(.+?)\}:\1)/m
    puts "#{$1}:{ #{$2} }:#{$1}"
  end
end

#if_pair_scObject



107
108
109
110
111
# File 'lib/sisu/shared_sem.rb', line 107

def if_pair_sc
  if @para=~/;\{\s*(.+?)\s*\};([a-z]+(?:[_:.][a-z]+)*)/
    puts ";{ #{$1} };#{$2}"
  end
end

#match_pair_cObject



112
113
114
115
116
# File 'lib/sisu/shared_sem.rb', line 112

def match_pair_c
  matched=[]
  matched=rgx.pair_c.match(@para)[1] if @para =~ rgx.pair_c
  puts matched unless matched.nil?
end

#match_pair_scObject



117
118
119
120
121
# File 'lib/sisu/shared_sem.rb', line 117

def match_pair_sc
  matched=[]
  matched=rgx.pair_sc.match(@para)[1] if @para =~ rgx.pair_sc
  puts matched unless matched.nil?
end

#matchingObject



122
123
124
# File 'lib/sisu/shared_sem.rb', line 122

def matching
  scan_pair_c
end

#pair_cObject



77
78
79
# File 'lib/sisu/shared_sem.rb', line 77

def pair_c
  /(([a-z]+(?:[_:.][a-z]+)*)(?::\{(.+?)\}:\2)|:\{(.+?)\}:[a-z]+(?:[_:.][a-z]+)*)/m
end

#pair_cscObject



74
75
76
# File 'lib/sisu/shared_sem.rb', line 74

def pair_csc
  /(([a-z]+(?:[_:.][a-z]+)+|[a-z]+)(?::\{(.+?)\}:\2)|([:;])\{(.+?)\}\4[a-z]+(?:[_:.][a-z]+)*)/m
end

#pair_scObject



80
81
82
# File 'lib/sisu/shared_sem.rb', line 80

def pair_sc
  /(;\{.+?\};[a-z]+(?:[_:.][a-z]+)*)/m
end


91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
# File 'lib/sisu/shared_sem.rb', line 91

def print
  def scan_pair_c
    if @para =~ rgx.pair_c
      matched=@para.scan(rgx.pair_c).flatten
      puts matched[0] unless matched[0].nil?
    end
  end
  def scan_pair_sc
    matched=@para.scan(rgx.pair_sc).flatten
    puts matched[0] unless matched[0].nil?
  end
  def if_pair_c
    if @para=~/([a-z](?:[a-z_:.]+?[a-z])?)+(?::\{(.+?)\}:\1)/m
      puts "#{$1}:{ #{$2} }:#{$1}"
    end
  end
  def if_pair_sc
    if @para=~/;\{\s*(.+?)\s*\};([a-z]+(?:[_:.][a-z]+)*)/
      puts ";{ #{$1} };#{$2}"
    end
  end
  def match_pair_c
    matched=[]
    matched=rgx.pair_c.match(@para)[1] if @para =~ rgx.pair_c
    puts matched unless matched.nil?
  end
  def match_pair_sc
    matched=[]
    matched=rgx.pair_sc.match(@para)[1] if @para =~ rgx.pair_sc
    puts matched unless matched.nil?
  end
  def matching
    scan_pair_c
  end
  self
end

#rgxObject



61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# File 'lib/sisu/shared_sem.rb', line 61

def rgx
  def exclude
    /^(?:<:code>|%+ )/
  end
  def each_csc
    /(?:;|(?:[a-z]+(?:[_:.][a-z]+)+|[a-z]*):)\{|\}[:;][a-z]+(?:[_:.][a-z]+)*/m
  end
  def each_c
    /(?:[a-z]+(?:[_:.][a-z]+)+|[a-z]*):\{|\}:[a-z]+(?:[_:.][a-z]+)*/m
  end
  def each_sc
    /(?:[a-z]+(?:[_:.][a-z]+)+|[a-z]*);\{|\};[a-z]+(?:[_:.][a-z]+)*/m
  end
  def pair_csc
    /(([a-z]+(?:[_:.][a-z]+)+|[a-z]+)(?::\{(.+?)\}:\2)|([:;])\{(.+?)\}\4[a-z]+(?:[_:.][a-z]+)*)/m
  end
  def pair_c
    /(([a-z]+(?:[_:.][a-z]+)*)(?::\{(.+?)\}:\2)|:\{(.+?)\}:[a-z]+(?:[_:.][a-z]+)*)/m
  end
  def pair_sc
    /(;\{.+?\};[a-z]+(?:[_:.][a-z]+)*)/m
  end
  def whole_csc_ae
    /(([a-z]+(?:[_.][a-z]+)+|[a-z]*)(?::\[(.+?)\]:\2)|;\{(.+?)\};(?:[a-z]+(?:[_:.][a-z]+)+|[a-z]+)\b)/m
  end
  def each_csc_ae
    /(?:;|(?:[a-z]+(?:[_:.][a-z]+)+)*:|[a-z]*:)\[|\][:;](?:[a-z]+(?:[_:.][a-z]+)+|[a-z]+)/m
  end
  self
end

#rmObject



127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
# File 'lib/sisu/shared_sem.rb', line 127

def rm
  def sem_marker_parts
    unless @para =~ rgx.exclude
      @para.gsub!(rgx.each_csc,'')
    end
    @para
  end
  def sem_marker_added_extra_parts
    unless @para =~ rgx.exclude
      @para.gsub!(rgx.whole_csc_ae,'')
      if @para =~rgx.each_csc_ae
        STDERR.puts "WARNING semantic tagging error: #{@para}"
      end
    end
    @para
  end
  def all
    if @md.sem_tag
      sem_marker_parts
      sem_marker_added_extra_parts
    end
    @para
  end
  self
end

#scan_pair_cObject



92
93
94
95
96
97
# File 'lib/sisu/shared_sem.rb', line 92

def scan_pair_c
  if @para =~ rgx.pair_c
    matched=@para.scan(rgx.pair_c).flatten
    puts matched[0] unless matched[0].nil?
  end
end

#scan_pair_scObject



98
99
100
101
# File 'lib/sisu/shared_sem.rb', line 98

def scan_pair_sc
  matched=@para.scan(rgx.pair_sc).flatten
  puts matched[0] unless matched[0].nil?
end

#sem_marker_added_extra_partsObject



134
135
136
137
138
139
140
141
142
# File 'lib/sisu/shared_sem.rb', line 134

def sem_marker_added_extra_parts
  unless @para =~ rgx.exclude
    @para.gsub!(rgx.whole_csc_ae,'')
    if @para =~rgx.each_csc_ae
      STDERR.puts "WARNING semantic tagging error: #{@para}"
    end
  end
  @para
end

#sem_marker_partsObject



128
129
130
131
132
133
# File 'lib/sisu/shared_sem.rb', line 128

def sem_marker_parts
  unless @para =~ rgx.exclude
    @para.gsub!(rgx.each_csc,'')
  end
  @para
end

#whole_csc_aeObject



83
84
85
# File 'lib/sisu/shared_sem.rb', line 83

def whole_csc_ae
  /(([a-z]+(?:[_.][a-z]+)+|[a-z]*)(?::\[(.+?)\]:\2)|;\{(.+?)\};(?:[a-z]+(?:[_:.][a-z]+)+|[a-z]+)\b)/m
end