<86>Dec 12 07:12:31 userdel[824]: delete user 'rooter'
<86>Dec 12 07:12:31 userdel[824]: removed shadow group 'rooter' owned by 'rooter'
<86>Dec 12 07:12:31 groupadd[895]: group added to /etc/group: name=rooter, GID=696
<86>Dec 12 07:12:31 groupadd[895]: group added to /etc/gshadow: name=rooter
<86>Dec 12 07:12:31 groupadd[895]: new group: name=rooter, GID=696
<86>Dec 12 07:12:31 useradd[909]: new user: name=rooter, UID=696, GID=696, home=/root, shell=/bin/bash
<86>Dec 12 07:12:31 userdel[947]: delete user 'builder'
<86>Dec 12 07:12:31 userdel[947]: removed group 'builder' owned by 'builder'
<86>Dec 12 07:12:31 userdel[947]: removed shadow group 'builder' owned by 'builder'
<86>Dec 12 07:12:31 groupadd[966]: group added to /etc/group: name=builder, GID=697
<86>Dec 12 07:12:31 groupadd[966]: group added to /etc/gshadow: name=builder
<86>Dec 12 07:12:31 groupadd[966]: new group: name=builder, GID=697
<86>Dec 12 07:12:31 useradd[996]: new user: name=builder, UID=697, GID=697, home=/usr/src, shell=/bin/bash
warning: Macro %update_setup_rb not found
warning: Macro %ruby_config not found
warning: Macro %ruby_build not found
warning: Macro %ruby_vendor not found
warning: Macro %ruby_test_unit not found
warning: Macro %ruby_install not found
warning: Macro %rdoc not found
warning: Macro %ruby_sitelibdir not found
warning: Macro %ruby_ri_sitedir not found
<13>Dec 12 07:12:34 rpmi: libidn2-2.0.5-alt1 1526923875 installed
<13>Dec 12 07:12:34 rpmi: libyaml2-0.2.1-alt1 sisyphus.214707.100 1539464411 installed
<13>Dec 12 07:12:34 rpmi: libruby-2.5.1-alt4 sisyphus.209945.120 1537061465 installed
<13>Dec 12 07:12:34 rpmi: libgdbm-1.8.3-alt10 1454943334 installed
<13>Dec 12 07:12:34 rpmi: libexpat-2.2.4-alt1 1503305345 installed
<13>Dec 12 07:12:34 rpmi: publicsuffix-list-dafsa-20181106-alt1 sisyphus.216228.100 1541611754 installed
<13>Dec 12 07:12:34 rpmi: libpsl-0.20.2-alt2 sisyphus.216228.200 1541611889 installed
<13>Dec 12 07:12:34 rpmi: libnghttp2-1.34.0-alt1 sisyphus.214524.100 1539249634 installed
<13>Dec 12 07:12:34 rpmi: libbrotlicommon-1.0.7-alt1 sisyphus.215491.100 1540428597 installed
<13>Dec 12 07:12:34 rpmi: libbrotlidec-1.0.7-alt1 sisyphus.215491.100 1540428597 installed
<13>Dec 12 07:12:34 rpmi: rsync-3.1.3-alt1 1518721086 installed
<13>Dec 12 07:12:34 rpmi: libverto-0.3.0-alt1_5 1525957714 installed
<13>Dec 12 07:12:34 rpmi: libkeyutils-1.6-alt2 sisyphus.217337.100 1544003161 installed
<13>Dec 12 07:12:34 rpmi: libcom_err-1.44.3-alt1 1532134732 installed
<13>Dec 12 07:12:34 rpmi: libedit3-3.1.20141030-alt1 1414760452 installed
<13>Dec 12 07:12:34 rpmi: less-481-alt2 1477575586 installed
<13>Dec 12 07:12:34 rpmi: diffstat-1.62-alt1 sisyphus.217172.100 1543712536 installed
<13>Dec 12 07:12:34 rpmi: libtasn1-4.13-alt2 1521133850 installed
<13>Dec 12 07:12:34 rpmi: libp11-kit-0.23.9-alt5 1525798298 installed
<13>Dec 12 07:12:34 rpmi: rpm-macros-alternatives-0.4.5-alt1.1 1404382149 installed
<13>Dec 12 07:12:34 rpmi: alternatives-0.4.5-alt1.1 1404382149 installed
<13>Dec 12 07:12:34 rpmi: ca-certificates-2018.11.12-alt1 sisyphus.216395.300 1542114035 installed
<13>Dec 12 07:12:34 rpmi: ca-trust-0.1.1-alt2 1515595785 installed
<13>Dec 12 07:12:34 rpmi: p11-kit-trust-0.23.9-alt5 1525798298 installed
<13>Dec 12 07:12:34 rpmi: libcrypto1.1-1.1.0j-alt1 sisyphus.216647.100 1542743878 installed
<13>Dec 12 07:12:34 rpmi: libssl1.1-1.1.0j-alt1 sisyphus.216647.100 1542743878 installed
<86>Dec 12 07:12:34 groupadd[14910]: group added to /etc/group: name=_keytab, GID=499
<86>Dec 12 07:12:34 groupadd[14910]: group added to /etc/gshadow: name=_keytab
<86>Dec 12 07:12:34 groupadd[14910]: new group: name=_keytab, GID=499
<13>Dec 12 07:12:34 rpmi: libkrb5-1.16.2-alt2 sisyphus.216877.200 1543483297 installed
<13>Dec 12 07:12:34 rpmi: libcrypto10-1.0.2p-alt2 1535474186 installed
<13>Dec 12 07:12:34 rpmi: libssl10-1.0.2p-alt2 1535474186 installed
<13>Dec 12 07:12:35 rpmi: ruby-stdlibs-2.5.1-alt4 sisyphus.209945.120 1537061465 installed
<13>Dec 12 07:12:35 rpmi: ruby-2.5.1-alt4 sisyphus.209945.120 1537061465 installed
<13>Dec 12 07:12:35 rpmi: ruby-tools-2.5.1-alt4 sisyphus.209945.120 1537061429 installed
<13>Dec 12 07:12:35 rpmi: ruby-test-unit-1:0.7-alt7 sisyphus.213689.100 1537966592 installed
<13>Dec 12 07:12:35 rpmi: ruby-bundler-1.17.1-alt1 sisyphus.215752.340 1540975080 installed
<86>Dec 12 07:12:35 groupadd[17325]: group added to /etc/group: name=sasl, GID=498
<86>Dec 12 07:12:35 groupadd[17325]: group added to /etc/gshadow: name=sasl
<86>Dec 12 07:12:35 groupadd[17325]: new group: name=sasl, GID=498
<13>Dec 12 07:12:35 rpmi: libsasl2-3-2.1.27-alt0.2 1535660695 installed
<13>Dec 12 07:12:35 rpmi: libldap-2.4.46-alt1 1535562135 installed
<13>Dec 12 07:12:35 rpmi: libcurl-7.62.0-alt3 sisyphus.216461.100 1542191614 installed
<13>Dec 12 07:12:35 rpmi: openssh-common-7.9p1-alt1 sisyphus.215513.200 1541525253 installed
<86>Dec 12 07:12:35 groupadd[17463]: group added to /etc/group: name=sshagent, GID=497
<86>Dec 12 07:12:35 groupadd[17463]: group added to /etc/gshadow: name=sshagent
<86>Dec 12 07:12:35 groupadd[17463]: new group: name=sshagent, GID=497
<13>Dec 12 07:12:35 rpmi: openssh-clients-7.9p1-alt1 sisyphus.215513.200 1541525253 installed
<13>Dec 12 07:12:35 rpmi: git-core-2.19.2-alt1 sisyphus.216711.100 1542851772 installed
<13>Dec 12 07:12:35 rpmi: ruby-tool-setup-3.4.1-alt13 sisyphus.213465.100 1537944495 installed
<13>Dec 12 07:12:35 rpmi: rpm-macros-ruby-1:0.7-alt7 sisyphus.213689.100 1537966592 installed
<13>Dec 12 07:12:35 rpmi: rpm-build-ruby-1:0.7-alt7 sisyphus.213689.100 1537966592 installed
Building target platforms: i586
Building for target i586
Wrote: /usr/src/in/nosrpm/ruby-rexical-1.0.5-alt3.1.nosrc.rpm
Installing ruby-rexical-1.0.5-alt3.1.src.rpm
Building target platforms: i586
Building for target i586
Executing(%prep): /bin/sh -e /usr/src/tmp/rpm-tmp.95358
+ umask 022
+ /bin/mkdir -p /usr/src/RPM/BUILD
+ cd /usr/src/RPM/BUILD
+ cd /usr/src/RPM/BUILD
+ rm -rf ruby-rexical-1.0.5
+ echo 'Source #0 (ruby-rexical-1.0.5.tar):'
Source #0 (ruby-rexical-1.0.5.tar):
+ /bin/tar -xf /usr/src/RPM/SOURCES/ruby-rexical-1.0.5.tar
+ cd ruby-rexical-1.0.5
+ /bin/chmod -c -Rf u+rwX,go-w .
+ echo 'Patch #1 (ruby-rexical-1.0.5-alt-pick-of-rubygems.patch):'
Patch #1 (ruby-rexical-1.0.5-alt-pick-of-rubygems.patch):
+ /usr/bin/patch -p1
patching file bin/rex
+ sed 's/ rex / rexical /g' README.ja README.rdoc DOCUMENTATION.en.rdoc DOCUMENTATION.ja.rdoc sample/sample1.rex sample/sample2.rex sample/xhtmlparser.rex
Rexical README
===========

  Rexical は Ruby のためのスキャナジェネレータです。
  lex の Ruby 版に相当します。
  Racc とともに使うように設計されています。


必要環境
--------

  *  ruby 1.8 以降


インストール
------------

  パッケージのトップディレクトリで次のように入力してください。
  ($ は通常ユーザ、# はルートのプロンプトです)

      $ ruby setup.rb config
      $ ruby setup.rb setup
     ($ su)
      # ruby setup.rb install

  これで通常のパスに Racc がインストールされます。自分の好き
  なディレクトリにインストールしたいときは、setup.rb config に
  各種オプションをつけて実行してください。オプションのリストは

      $ ruby setup.rb --help

  で見られます。


テスト
------

  sample/ 以下にいくつか Rexical の文法ファイルのサンプルが用意
  してあります。以下を実行してください。

      $ rexical  sample1.rex  --stub
      $ ruby sample1.rex.rb  sample1.c

      $ rexical  sample2.rex  --stub
      $ ruby sample2.rex.rb  sample2.bas

      $ racc calc3.racc
      $ rexical  calc3.rex
      $ ruby calc3.tab.rb

  Rexical の詳しい文法は doc/ ディレクトリ以下を見てください。
  また記述例は sample/ ディレクトリ以下を見てください。


ライセンス
----------

  ライセンスは GNU Lesser General Public License (LGPL) version 2
  です。ただしユーザが書いた規則ファイルや、Racc がそこから生成した
  Ruby スクリプトはその対象外です。好きなライセンスで配布してください。


バグなど
--------

  Rexical を使っていてバグらしき現象に遭遇したら、下記のアドレスまで
  メールをください。
  そのときはできるだけバグを再現できる文法ファイルを付けてください。


                                                   ARIMA Yasuhiro
                                         arima.yasuhiro@nifty.com
                            http://raa.ruby-lang.org/project/rex/
= Rexical

* http://github.com/tenderlove/rexical/tree/master

== DESCRIPTION

Rexical is a lexical scanner generator.
It is written in Ruby itself, and generates Ruby program.
It is designed for use with Racc.


== SYNOPSIS

Here is a sample lexical definition:

  class Sample
  macro
    BLANK         [\ \t]+
  rule
    BLANK         # no action
    \d+           { [:digit, text.to_i] }
    \w+           { [:word, text] }
    \n
    .             { [text, text] }
  end

Here is the command line usage:

  $ rexical  sample1.rex  --stub
  $ ruby sample1.rex.rb  sample1.c
  
  $ rexical  sample2.rex  --stub
  $ ruby sample2.rex.rb  sample2.bas
  
  $ racc calc3.racc
  $ rexical  calc3.rex
  $ ruby calc3.tab.rb

== REQUIREMENTS

*  ruby version 1.8.x or later.

== INSTALL

* sudo gem install rexical

== LICENSE

Rexical is distributed under the terms of the GNU Lesser General
Public License version 2. Note that you do NOT need to follow
LGPL for your own parser (Rexical outputs). You can provide those
files under any licenses you want.

= REX: Ruby Lex for Racc


== About

  Lexical Scanner Generator for Ruby, with Racc.


== Usage

  rexical [options] grammarfile

  -o  --output-file  filename   designated output filename.
  -s  --stub                    append stub main for debug.
  -i  --ignorecase              ignore char case
  -C  --check-only              syntax check only.
      --independent             independent mode.
  -d  --debug                   print debug information
  -h  --help                    print usage.
      --version                 print version.
      --copyright               print copyright.


== Default Output Filename

  It destinate from foo.rex  to foo.rex.rb.
  This name is for a follow description.

    require 'foo.rex' 


== Grammar File Format

  A definition is given in order of a header part, a rule part, 
  and the footer part.  One or more sections are included in a rule part.
  As for each section, the head of the sentence starts by the keyword.

  Summary:

    [Header Part]
    "class" Foo
    ["option"
      [options] ]
    ["inner"
      [methods] ]
    ["macro"
      [macro-name  regular-expression] ]
    "rule"
      [start-state]  pattern  [actions]
    "end"
    [Footer Part]


=== Grammar File Example

    class Foo
    macro
      BLANK         \s+
      DIGIT         \d+
    rule
      {BLANK}
      {DIGIT}       { [:NUMBER, text.to_i] }
      .             { [text, text] }
    end


== Header Part ( Optional )

  All the contents described before the definition of a rule part are 
  posted to head of the output file.


== Footer Part ( Optional )

  All the contents described after the definition of a rule part are 
  posted to tail of the output file.


== Rule Part

  Rule part is from the line which begins from the "class" keyword 
  to the line which begins from the "end" keyword.
  The class name outputted after a keyword "class" is specified.
  If embellished with a module name, it will become a class in a module.
  The class which inherited Racc::Parser is generated.


=== Rule Header Example

    class Foo
    class Bar::Foo


== Option Section ( Optional )

  "option" is start keyword.

    "ignorecase"  when pattern match, ignore char case.
    "stub"        append stub main for debug.
    "independent" independent mode, for it is not inherited Racc.


== Inner Section ( Optional )

  "inner" is start keyword.
  The contents defined here are defined by the inside of the class 
  of the generated scanner.


== Macro Section ( Optional )

  "macro" is start keyword.
  One regular expression is named.
  A blank character (0x20) can be included by escaping by \ .


=== Macro Section Example

    DIGIT         \d+
    IDENT         [a-zA-Z_][a-zA-Z0-9_]*
    BLANK         [\ \t]+
    REMIN         \/\*
    REMOUT        \*\/


== Rule Section

  "rule" is start keyword.

  [state]  pattern  [actions]


=== state: Start State ( Optional )

    A start state is expressed with the identifier which prefaces ":".
    When the continuing alphabetic character is a capital letter, 
    it will be in an exclusive start state.
    When it is a small letter, it will be in an inclusive start state.
    Initial value and default value of a start state is nil.


=== pattern: String Pattern

    The regular expression for specifying a character string.
    The macro definition bundled with { } can be used for description 
    of a regular expression.  A macro definition is used in order to use 
    a regular expression including a blank.


=== actions: Processing Actions ( Optional )

    Action is performed when a pattern is suited.
    The processing which creates a suitable token is defined.
    The arrangement whose token has the second clause of classification 
    and a value, or nil.
    The following elements can be used in order to create a token.

      lineno    Line number     ( Read Only )
      text      Matched string  ( Read Only )
      state     Start state     ( Read/Write )

    Action is bundled with { }.  It is the block of Ruby.
    Don't use the function to change the flow of control exceeding a block.
    ( return, exit, next, break, ... )
    If action is omitted, the character string which matched will be canceled 
    and will progress to the next scan.


=== Rule Part Example

        {REMIN}                 { state = :REM ; [:REM_IN, text] }
  :REM  {REMOUT}                { state = nil ; [:REM_OUT, text] }
  :REM  (.+)(?={REMOUT})        { [:COMMENT, text] }
        {BLANK}
        -?{DIGIT}               { [:NUMBER, text.to_i] }
        {WORD}                  { [:word, text] }
        .                       { [text, text] }

== Comment ( Optional )

  From "#" to the end of the line becomes a comment in each line.


== Usage for Generated Class

=== scan_setup()

    The event for initializing at the time of the execution start of a scanner.
    It is redefined and used.


=== scan_str( str )

    Parse the string described by the defined grammar.
    Token is stored in an inside.


=== scan_file( filename )

    Parse the file described by the defined grammar.
    Token is stored in an inside.


=== next_token

    One token stored in the inside is taken out.
    The last returns nil.


== Notice

  This specification is provisional and may be changed without a preliminary 
  announcement.


= REX: Ruby Lex for Racc


== 概要

  Racc と併用する Ruby 用の字句スキャナ生成ツール。


== 使い方

  rexical [options] grammarfile

  -o  --output-file  filename   出力ファイル名指定
  -s  --stub                    デバッグ用の主処理を付加
  -i  --ignorecase              大文字小文字を区別しない
  -C  --check-only              文法検査のみ
      --independent             非依存モード
  -d  --debug                   デバッグ情報表示
  -h  --help                    使い方の説明
      --version                 バージョン表明
      --copyright               著作権情報表示


== デフォルトの出力ファイル名

  foo.rex  について  foo.rex.rb  を出力する。
  以下のように利用されることを想定している。

    require 'foo.rex' 


== 入力ファイル構造

  頭部、規則部、脚部の順に定義する。
  規則部には、複数の節が含まれる。
  各節は、行頭がキーワードで始まる。

  概要:

    [頭部]
    "class" Foo
    ["option"
      [オプション] ]
    ["inner"
      [メソッド定義] ]
    ["macro"
      [マクロ名  正規表現] ]
    "rule"
      [スタート状態]  パターン  [アクション]
    "end"
    [脚部]


=== 入力ファイル記述例

    class Foo
    macro
      BLANK         \s+
      DIGIT         \d+
    rule
      {BLANK}
      {DIGIT}       { [:NUMBER, text.to_i] }
      .             { [text, text] }
    end


== 頭部(省略可能)

  規則部の定義以前に記述された内容は、すべて出力ファイル冒頭に転記される。


== 脚部(省略可能)

  規則部の定義以降に記述された内容は、すべて出力ファイル末尾に転記される。


== 規則部

  規則部は "class" キーワードから始まる行から "end" キーワードから始まる
  行までである。
  "class" キーワードに続けて出力するクラス名を指定する。
  モジュール名で修飾すると、モジュール内クラスとなる。
  Racc::Parser を継承したクラスを生成する。


=== 規則部定義例

    class Foo
    class Bar::Foo


== オプション(省略可能)

  この節は "option" キーワードで始まる。

    "ignorecase"  大文字小文字を区別しない。
    "stub"        デバッグ用の主処理を付加
    "independent" 非依存モード。Racc を継承しない。

== 内部ユーザコード(省略可能)

  この節は "inner" キーワードで始まる。
  ここで定義した内容は、生成したスキャナのクラスの内部で定義される。


== マクロ定義(省略可能)

  この節は "macro" キーワードで始まる。
  一綴りの正規表現に名前をつける。
  \ でエスケープすることで空白を含めることができる。

=== マクロ定義例

    DIGIT         \d+
    IDENT         [a-zA-Z_][a-zA-Z0-9_]*
    BLANK         [\ \t]+
    REMIN         \/\*
    REMOUT        \*\/


== 走査規則

  この節は "rule" キーワードで始まる。

  [state]  pattern  [actions]


=== state: スタート状態(省略可能)

    スタート状態は ":" を前置する識別子で表される。
    続く英字が大文字のとき、排他的スタート状態となる。
    小文字のとき、包含的スタート状態となる。
    スタート状態の初期値および省略時値は nil である。


=== pattern: 文字列パターン

    文字列を特定するための正規表現。
    正規表現の記述には、括弧で括ったマクロ定義を用いることができる。
    空白を含む正規表現を用いるには、マクロを使用する。


=== actions: アクション(省略可能)

    パターンに適合するときアクションは実行される。
    適切なトークンを作成する処理を定義する。
    トークンは、種別と値の二項を持つ配列、または nil である。
    トークンを作成するために以下の要素を利用できる。

      lineno  入力行番号     ( Read Only )
      text    検出した文字列 ( Read Only )
      state   スタート状態   ( Read/Write )

    アクションは { } で括った Ruby のブロックである。
    ブロックを越えて制御の流れを変える機能を使用してはいけない。
    ( return, exit, next, break, ... )
    アクションが省略されると、適合した文字列は破棄されて次の走査に進む。


=== 走査規則定義例

        {REMIN}                 { state = :REM ; [:REM_IN, text] }
  :REM  {REMOUT}                { state = nil ; [:REM_OUT, text] }
  :REM  (.+)(?={REMOUT})        { [:COMMENT, text] }
        {BLANK}
        -?{DIGIT}               { [:NUMBER, text.to_i] }
        {WORD}                  { [:word, text] }
        .                       { [text, text] }


== コメント(省略可能)

  各行において "#" から 行末までがコメントになる。


== 生成したクラスの使い方

=== scan_setup()

    スキャナの実行開始時に初期化するためのイベント。
    再定義して使用する。

=== scan_str( str )

    定義された文法によって記述された文字列を解釈する。
    token を内部に保持する。


=== scan_file( filename )

    定義された文法によって記述されたファイルを読み込む。
    token を内部に保持する。


=== next_token

    内部に保持する token をひとつずつ取り出す。
    最後は nil を返す。


== 注意

  本仕様は暫定的であり、予告なく変更される場合がある。

#
# sample1.rex
# lexical definition sample for rex
#
# usage
#  rexical  sample1.rex  --stub
#  ruby sample1.rex.rb  sample1.c
#

class Sample1
macro
  BLANK         \s+
  REM_IN        \/\*
  REM_OUT       \*\/
  REM           \/\/

rule

# [:state]  pattern  [actions]

# remark
                {REM_IN}        { state = :REMS; [:rem_in, text] }
  :REMS         {REM_OUT}       { state = nil;   [:rem_out, text] }
  :REMS         .*(?={REM_OUT}) {                [:remark, text] }
                {REM}           { state = :REM;  [:rem_in, text] }
  :REM          \n              { state = nil;   [:rem_out, text] }
  :REM          .*(?=$)         {                [:remark, text] }

# literal
                \"[^"]*\"       { [:string, text] } # "
                \'[^']\'        { [:character, text] } # '

# skip
                {BLANK}         # no action

# numeric
                \d+             { [:digit, text.to_i] }

# identifier
                \w+             { [:word, text] }
                .               { [text, text] }

end
#
# sample2.rex
# lexical definition sample for rex
#
# usage
#  rexical  sample2.rex  --stub
#  ruby sample2.rex.rb  sample2.bas
#

class Sample2
option
  ignorecase

macro
  BLANK         \s+
  REMARK        \'              # '

rule
                {REMARK}        { state = :REM;  [:rem_in, text] } # '
  :REM          \n              { state = nil;   [:rem_out, text] }
  :REM          .*(?=$)         {                [:remark, text] }

                \"[^"]*\"       { [:string, text] } # "

                {BLANK}         # no action

                INPUT           { [:input, text] }
                PRINT           { [:print, text] }

                \d+             { [:digit, text.to_i] }
                \w+             { [:word, text] }
                .               { [text, text] }
end
#
# xhtmlparser.rex
# lexical scanner definition for rex
#
# usage
#   rexical  xhtmlparser.rex  --stub
#   ruby xhtmlparser.rex.rb  sample.xhtml
#

class XHTMLParser
option
  ignorecase

macro
  BLANK         \s+
  TAG_IN        \<
  TAG_OUT       \>
  ETAG_IN       \<\/
  ETAG_OUT      \/\>
  XTAG_IN       \<\?
  XTAG_OUT      \?\>
  EXT           \!
  REM           \-\-
  EQUAL         \=
  Q1            \'
  Q2            \"

rule

# [:state]  pattern  [actions]
                {XTAG_IN}               { state = :TAG; [:xtag_in, text] }
                {ETAG_IN}               { state = :TAG; [:etag_in, text] }
                {TAG_IN}                { state = :TAG; [:tag_in, text] }
  :TAG          {EXT}                   { state = :EXT; [:ext, text] }

  :EXT          {REM}                   { state = :REM; [:rem_in, text] }
  :EXT          {XTAG_OUT}              { state = nil;  [:xtag_out, text] }
  :EXT          {TAG_OUT}               { state = nil;  [:tag_out, text] }
  :EXT          .+(?={REM})             {               [:exttext, text] }
  :EXT          .+(?={TAG_OUT})         {               [:exttext, text] }
  :EXT          .+(?=$)                 {               [:exttext, text] }
  :EXT          \n

  :REM          {REM}                   { state = :EXT; [:rem_out, text] }
  :REM          .+(?={REM})             {               [:remtext, text] }
  :REM          .+(?=$)                 {               [:remtext, text] }
  :REM          \n

  :TAG          {BLANK}
  :TAG          {XTAG_OUT}              { state = nil;  [:xtag_out, text] }
  :TAG          {ETAG_OUT}              { state = nil;  [:etag_out, text] }
  :TAG          {TAG_OUT}               { state = nil;  [:tag_out, text] }
  :TAG          {EQUAL}                 {               [:equal, text] }
  :TAG          {Q1}                    { state = :Q1;  [:quote1, text] } # '
  :Q1           {Q1}                    { state = :TAG; [:quote1, text] } # '
  :Q1           [^{Q1}]+(?={Q1})        {               [:value, text] }  # '
  :TAG          {Q2}                    { state = :Q2;  [:quote2, text] } # "
  :Q2           {Q2}                    { state = :TAG; [:quote2, text] } # "
  :Q2           [^{Q2}]+(?={Q2})        {               [:value, text] }  # "

  :TAG          [\w\-]+(?={EQUAL})      {               [:attr, text] }
  :TAG          [\w\-]+                 {               [:element, text] }

                \s+(?=\S)
                .*\S(?=\s*{ETAG_IN})    {               [:text, text] }
                .*\S(?=\s*{TAG_IN})     {               [:text, text] }
                .*\S(?=\s*$)            {               [:text, text] }
                \s+(?=$)

inner

end
+ cp /usr/share/ruby-setup/setup.rb setup.rb
+ exit 0
Executing(%build): /bin/sh -e /usr/src/tmp/rpm-tmp.72007
+ umask 022
+ /bin/mkdir -p /usr/src/RPM/BUILD
+ cd /usr/src/RPM/BUILD
+ cd ruby-rexical-1.0.5
+ /usr/bin/ruby -rvendor-specific setup.rb config
setup.rb:283: warning: key "bin-dir" is duplicated and overwritten on line 284
---> bin
<--- bin
---> lib
---> lib/rexical
<--- lib/rexical
<--- lib
+ /usr/bin/ruby -rvendor-specific setup.rb setup
setup.rb:283: warning: key "bin-dir" is duplicated and overwritten on line 284
---> bin
updating shebang: rex
<--- bin
---> lib
---> lib/rexical
<--- lib/rexical
<--- lib
+ pushd test
~/RPM/BUILD/ruby-rexical-1.0.5/test ~/RPM/BUILD/ruby-rexical-1.0.5
+ /usr/bin/ruby -rvendor-specific -I../lib
+ find . -name 'test*.rb' -print0
+ xargs -r0 -n 1 /usr/bin/testrb -I../lib -I./
/usr/bin/ruby -w -I"lib:../lib:./:test" -I"/usr/lib/ruby/gems/2.5.0/gems/rake-12.3.0/lib" "/usr/lib/ruby/gems/2.5.0/gems/rake-12.3.0/lib/rake/rake_test_loader.rb" "./test_generator.rb" 
/usr/src/RPM/BUILD/ruby-rexical-1.0.5/lib/rexical/generator.rb:370: warning: assigned but unused variable - f
/usr/src/RPM/BUILD/ruby-rexical-1.0.5/lib/rexical/rexcmd.rb:68: warning: assigned but unused variable - disp
/usr/src/RPM/BUILD/ruby-rexical-1.0.5/lib/rexical/rexcmd.rb:68: warning: assigned but unused variable - doc
Loaded suite /usr/lib/ruby/gems/2.5.0/gems/rake-12.3.0/lib/rake/rake_test_loader
Started
.............
Finished in 0.00806479 seconds.
-------------------------------------------------------------------------------
13 tests, 20 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
-------------------------------------------------------------------------------
1611.95 tests/s, 2479.92 assertions/s
+ popd
~/RPM/BUILD/ruby-rexical-1.0.5
+ exit 0
Executing(%install): /bin/sh -e /usr/src/tmp/rpm-tmp.47591
+ umask 022
+ /bin/mkdir -p /usr/src/RPM/BUILD
+ cd /usr/src/RPM/BUILD
+ /bin/chmod -Rf u+rwX -- /usr/src/tmp/ruby-rexical-buildroot
+ :
+ /bin/rm -rf -- /usr/src/tmp/ruby-rexical-buildroot
+ cd ruby-rexical-1.0.5
+ /usr/bin/ruby -rvendor-specific setup.rb install --prefix=/usr/src/tmp/ruby-rexical-buildroot
setup.rb:283: warning: key "bin-dir" is duplicated and overwritten on line 284
rm -f InstalledFiles
---> bin
mkdir -p /usr/src/tmp/ruby-rexical-buildroot/usr/bin
install rex /usr/bin/
<--- bin
---> lib
mkdir -p /usr/src/tmp/ruby-rexical-buildroot/usr/lib/ruby/site_ruby
install rexical.rb /usr/lib/ruby/site_ruby/
---> lib/rexical
mkdir -p /usr/src/tmp/ruby-rexical-buildroot/usr/lib/ruby/site_ruby/rexical
install rexcmd.rb /usr/lib/ruby/site_ruby/rexical
install generator.rb /usr/lib/ruby/site_ruby/rexical
<--- lib/rexical
<--- lib
install_gemspec: unable to find *.gemspec. Skipping.
+ mv /usr/src/tmp/ruby-rexical-buildroot/usr/bin/rex /usr/src/tmp/ruby-rexical-buildroot/usr/bin/rexical
+ rdoc -o /usr/src/tmp/ruby-rexical-buildroot/usr/share/ri/site --ri --all lib/
Parsing sources...
 33% [ 1/ 3]  lib/rexical.rb
 66% [ 2/ 3]  lib/rexical/generator.rb
100% [ 3/ 3]  lib/rexical/rexcmd.rb

Generating RI format into /usr/src/tmp/ruby-rexical-buildroot/usr/share/ri/site...


  Files:       3

  Classes:     3 ( 1 undocumented)
  Modules:     1 ( 1 undocumented)
  Constants:   7 ( 6 undocumented)
  Attributes: 11 (10 undocumented)
  Methods:    17 ( 7 undocumented)

  Total:      39 (25 undocumented)
   35.90% documented

  Elapsed: 0.2s

+ /usr/lib/rpm/brp-alt
Cleaning files in /usr/src/tmp/ruby-rexical-buildroot (auto)
Verifying and fixing files in /usr/src/tmp/ruby-rexical-buildroot (binconfig,pkgconfig,libtool,desktop)
Checking contents of files in /usr/src/tmp/ruby-rexical-buildroot/ (default)
Compressing files in /usr/src/tmp/ruby-rexical-buildroot (auto)
Adjusting library links in /usr/src/tmp/ruby-rexical-buildroot
./usr/lib:
Verifying ELF objects in /usr/src/tmp/ruby-rexical-buildroot (arch=normal,fhs=normal,lfs=relaxed,lint=relaxed,rpath=normal,stack=normal,textrel=normal,unresolved=normal)
Hardlinking identical .pyc and .pyo files
Processing files: ruby-rexical-1.0.5-alt3.1
Executing(%doc): /bin/sh -e /usr/src/tmp/rpm-tmp.57023
+ umask 022
+ /bin/mkdir -p /usr/src/RPM/BUILD
+ cd /usr/src/RPM/BUILD
+ cd ruby-rexical-1.0.5
+ DOCDIR=/usr/src/tmp/ruby-rexical-buildroot/usr/share/doc/ruby-rexical-1.0.5
+ export DOCDIR
+ rm -rf /usr/src/tmp/ruby-rexical-buildroot/usr/share/doc/ruby-rexical-1.0.5
+ /bin/mkdir -p /usr/src/tmp/ruby-rexical-buildroot/usr/share/doc/ruby-rexical-1.0.5
+ cp -prL README.rdoc DOCUMENTATION.en.rdoc /usr/src/tmp/ruby-rexical-buildroot/usr/share/doc/ruby-rexical-1.0.5
+ chmod -R go-w /usr/src/tmp/ruby-rexical-buildroot/usr/share/doc/ruby-rexical-1.0.5
+ chmod -R a+rX /usr/src/tmp/ruby-rexical-buildroot/usr/share/doc/ruby-rexical-1.0.5
+ exit 0
Finding Provides (using /usr/lib/rpm/find-provides)
Executing: /bin/sh -e /usr/src/tmp/rpm-tmp.zroe6p
find-provides: running scripts (alternatives,debuginfo,lib,pam,perl,pkgconfig,python,ruby,shell)
Finding Requires (using /usr/lib/rpm/find-requires)
Executing: /bin/sh -e /usr/src/tmp/rpm-tmp.XO3CCg
find-requires: running scripts (cpp,debuginfo,files,lib,pam,perl,pkgconfig,pkgconfiglib,python,rpmlib,ruby,shebang,shell,static,symlinks)
Requires: /usr/bin/ruby
Processing files: ruby-rexical-doc-1.0.5-alt3.1
Executing(%doc): /bin/sh -e /usr/src/tmp/rpm-tmp.31551
+ umask 022
+ /bin/mkdir -p /usr/src/RPM/BUILD
+ cd /usr/src/RPM/BUILD
+ cd ruby-rexical-1.0.5
+ DOCDIR=/usr/src/tmp/ruby-rexical-buildroot/usr/share/doc/ruby-rexical-doc-1.0.5
+ export DOCDIR
+ rm -rf /usr/src/tmp/ruby-rexical-buildroot/usr/share/doc/ruby-rexical-doc-1.0.5
+ /bin/mkdir -p /usr/src/tmp/ruby-rexical-buildroot/usr/share/doc/ruby-rexical-doc-1.0.5
+ cp -prL CHANGELOG.rdoc /usr/src/tmp/ruby-rexical-buildroot/usr/share/doc/ruby-rexical-doc-1.0.5
+ chmod -R go-w /usr/src/tmp/ruby-rexical-buildroot/usr/share/doc/ruby-rexical-doc-1.0.5
+ chmod -R a+rX /usr/src/tmp/ruby-rexical-buildroot/usr/share/doc/ruby-rexical-doc-1.0.5
+ exit 0
Finding Provides (using /usr/lib/rpm/find-provides)
Executing: /bin/sh -e /usr/src/tmp/rpm-tmp.Dq6mIi
find-provides: running scripts (alternatives,debuginfo,lib,pam,perl,pkgconfig,python,ruby,shell)
Finding Requires (using /usr/lib/rpm/find-requires)
Executing: /bin/sh -e /usr/src/tmp/rpm-tmp.NoP6FT
find-requires: running scripts (cpp,debuginfo,files,lib,pam,perl,pkgconfig,pkgconfiglib,python,rpmlib,ruby,shebang,shell,static,symlinks)
warning: Installed (but unpackaged) file(s) found:
    /usr/share/ri/site/cache.ri
    /usr/share/ri/site/created.rid
Wrote: /usr/src/RPM/RPMS/noarch/ruby-rexical-1.0.5-alt3.1.noarch.rpm
Wrote: /usr/src/RPM/RPMS/noarch/ruby-rexical-doc-1.0.5-alt3.1.noarch.rpm
6.02user 0.60system 0:10.68elapsed 61%CPU (0avgtext+0avgdata 13724maxresident)k
0inputs+0outputs (0major+147011minor)pagefaults 0swaps
16.33user 3.50system 0:25.06elapsed 79%CPU (0avgtext+0avgdata 122396maxresident)k
0inputs+0outputs (0major+581611minor)pagefaults 0swaps