File: lexer.rb

package info (click to toggle)
ruby-ami 2.4.0-1.1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye
  • size: 272 kB
  • sloc: ruby: 1,567; makefile: 2
file content (47 lines) | stat: -rwxr-xr-x 760 bytes parent folder | download | duplicates (2)
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/usr/bin/env ruby

require 'rubygems'
require 'bundler/setup'
require 'ruby_ami'
require 'benchmark/ips'

class LexerHost
  def initialize
    @lexer = RubyAMI::Lexer.new self
  end

  def receive_data(data)
    @lexer << data
  end

  def message_received(message)
  end

  def error_received(error)
  end

  def syntax_error_encountered(ignored_chunk)
  end
end

lexer_host = LexerHost.new

event = <<-EVENT
Event: Dial
SubEvent: <value>
Channel: <value>
Destination: <value>
CallerIDNum: <value>
CallerIDName: <value>
ConnectedLineNum: <value>
ConnectedLineName: <value>
UniqueID: <value>
DestUniqueID: <value>
Dialstring: <value>

EVENT
event.gsub!("\n", "\r\n")

Benchmark.ips do |ips|
  ips.report("event lexing") { lexer_host.receive_data event }
end