Sha256: b56aa16d7bca40425621469ff1fc9cdffc30f65376b42951f66ade1fd838a884

Contents?: true

Size: 1.12 KB

Versions: 2

Compression:

Stored size: 1.12 KB

Contents

#
# autoconf.rb - Autoconf module of LangScan
#
# Copyright (C) 2005 Keisuke Nishida <knishida@open-cobol.org>
#     All rights reserved.
#     This is free software with ABSOLUTELY NO WARRANTY.
#
# You can redistribute it and/or modify it under the terms of 
# the GNU General Public License version 2.
#

require 'langscan/_easyscanner'

module LangScan
  module Autoconf
    module_function
    def name
      "Autoconf"
    end

    def abbrev
      "autoconf"
    end

    def extnames
      [".ac"]
    end

    Pattern = [[:comment, "#.*"],
               [:string, "\"", "\""],
               [:string, "'", "'"],
               [:integer, "\\d+"],
               [:ident, "\\w+"],
               [:keyword, "AC_\\w+"]]

    Types = []

    Keywords = %w(
      if then else elif fi continue for in do done case esac exit
    )

    # LangScan::Autoconf.scan iterates over autoconf file.
    # It yields for each Fragment.
    def scan(input, &block)
      scanner = EasyScanner.new(Pattern, Types, Keywords)
      scanner.scan(input, &block)
    end

    LangScan.register(self)
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
langscan-1.2-x86-mswin32-60 lib/langscan/autoconf.rb
langscan-1.2 lib/langscan/autoconf.rb