File: sample2.rex

package info (click to toggle)
rexical 1.0.8-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 316 kB
  • sloc: ruby: 1,124; makefile: 8; ansic: 5
file content (33 lines) | stat: -rw-r--r-- 813 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#
# sample2.rex
# lexical definition sample for rex
#
# usage
#  rex  sample2.rex  --stub
#  ruby sample2.rex.rb  sample2.bas
#

class Sample2
option
  ignorecase

macro
  BLANK         \s+
  REMARK        \'              # '

rule
                {REMARK}        { self.state = :REM;  [:rem_in, text] } # '
  :REM          \n              { self.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