Module: NlgXmlRealiserBuilder::PhraseSpecs

Included in:
DSL
Defined in:
lib/nlg_xml_realiser_builder/phrase_specs.rb

Constant Summary collapse

SPEC_METHODS =
%i(sp np vp adj adv cp pp)

Instance Method Summary collapse

Instance Method Details

#adj(tag = :coord, adjective = nil, options = {}, &block) ⇒ Object



27
28
29
30
31
# File 'lib/nlg_xml_realiser_builder/phrase_specs.rb', line 27

def adj(tag = :coord, adjective = nil, options = {}, &block)
  abstract_spec('AdjPhraseSpec', tag, options, block) do
    head(adjective, 'ADJECTIVE') if adjective
  end
end

#adv(tag = :coord, adverb = nil, options = {}, &block) ⇒ Object



33
34
35
36
37
# File 'lib/nlg_xml_realiser_builder/phrase_specs.rb', line 33

def adv(tag = :coord, adverb = nil, options = {}, &block)
  abstract_spec('AdvPhraseSpec', tag, options, block) do
    head(adjective, 'ADVERB') if adjective
  end
end

#cp(tag = :vp, options = { conj: ',' }, &block) ⇒ Object



39
40
41
# File 'lib/nlg_xml_realiser_builder/phrase_specs.rb', line 39

def cp(tag = :vp, options = { conj: ',' }, &block)
  abstract_spec('CoordinatedPhraseElement', tag, options, block)
end

#np(tag = :subj, noun = nil, options = {}, &block) ⇒ Object



10
11
12
13
14
15
16
17
18
19
# File 'lib/nlg_xml_realiser_builder/phrase_specs.rb', line 10

def np(tag = :subj, noun = nil, options = {}, &block)
  determiner = options.delete(:determiner)
  cat        = options.delete(:cat) || 'NOUN'
  determiner, noun = noun if noun.is_a?(Array)

  abstract_spec('NPPhraseSpec', tag, options, block) do
    head(noun, cat)  if noun
    spec(determiner) if determiner
  end
end

#pp(tag = :compl, preposition = nil, options = {}, &block) ⇒ Object



43
44
45
46
47
# File 'lib/nlg_xml_realiser_builder/phrase_specs.rb', line 43

def pp(tag = :compl, preposition = nil, options = {}, &block)
  abstract_spec('PPPhraseSpec', tag, options, block) do
    head(preposition, 'PREPOSITION') if preposition
  end
end

#sp(tag = :child, options = {}, &block) ⇒ Object



6
7
8
# File 'lib/nlg_xml_realiser_builder/phrase_specs.rb', line 6

def sp(tag = :child, options = {}, &block)
  abstract_spec('SPhraseSpec', tag, options, block)
end

#vp(tag = :vp, verb = nil, options = {}, &block) ⇒ Object



21
22
23
24
25
# File 'lib/nlg_xml_realiser_builder/phrase_specs.rb', line 21

def vp(tag = :vp, verb = nil, options = {}, &block)
  abstract_spec('VPPhraseSpec', tag, options, block) do
    head(verb, 'VERB') if verb
  end
end