riml 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/lib/lexer.rb +6 -6
  2. data/version.rb +2 -2
  3. metadata +2 -2
@@ -5,7 +5,7 @@ module Riml
5
5
  class Lexer
6
6
  include Riml::Constants
7
7
 
8
- SINGLE_LINE_COMMENT_REGEX = /\A\s*"(.*)$/
8
+ SINGLE_LINE_COMMENT_REGEX = /\A[ \t\f]*"(.*)$/
9
9
  OPERATOR_REGEX = /\A#{Regexp.union(['||', '&&', '===', '+=', '-=', '.='] + COMPARISON_OPERATORS)}/
10
10
  INTERPOLATION_REGEX = /"([^"]*?)(\#\{([^"]*?)\})([^"]*?)"/m
11
11
  ANCHORED_INTERPOLATION_REGEX = /\A#{INTERPOLATION_REGEX}/m
@@ -63,14 +63,14 @@ module Riml
63
63
  def tokenize_chunk(chunk)
64
64
  @chunk = chunk
65
65
  # deal with line continuations
66
- if cont = chunk[/\A\n*\s*\\/m]
66
+ if cont = chunk[/\A\r?\n*[ \t\f]*\\/m]
67
67
  @i += cont.size
68
68
  @lineno += cont.each_line.to_a.size - 1
69
69
  return
70
70
  end
71
71
 
72
72
  # all lines that start with ':' pass right through unmodified
73
- if (prev_token.nil? || prev_token[0] == :NEWLINE) && (ex_literal = chunk[/\A\s*:(.*)?$/])
73
+ if (prev_token.nil? || prev_token[0] == :NEWLINE) && (ex_literal = chunk[/\A[ \t\f]*:(.*)?$/])
74
74
  @i += ex_literal.size
75
75
  @token_buf << [:EX_LITERAL, $1]
76
76
  return
@@ -171,7 +171,7 @@ module Riml
171
171
  elsif (single_line_comment = chunk[SINGLE_LINE_COMMENT_REGEX]) && (prev_token.nil? || prev_token[0] == :NEWLINE)
172
172
  @i += single_line_comment.size + 1 # consume next newline character
173
173
  @lineno += single_line_comment.each_line.to_a.size
174
- elsif inline_comment = chunk[/\A\s*"[^"]*?$/]
174
+ elsif inline_comment = chunk[/\A[ \t\f]*"[^"]*?$/]
175
175
  @i += inline_comment.size # inline comment, don't consume newline character
176
176
  @lineno += inline_comment.each_line.to_a.size - 1
177
177
  elsif string_double = chunk[/\A"(.*?)(?<!\\)"/, 1]
@@ -180,7 +180,7 @@ module Riml
180
180
  elsif string_single = chunk[/\A'(([^']|'')*)'/, 1]
181
181
  @token_buf << [:STRING_S, string_single]
182
182
  @i += string_single.size + 2
183
- elsif newlines = chunk[/\A(\n+)/, 1]
183
+ elsif newlines = chunk[/\A([\r\n]+)/, 1]
184
184
  # push only 1 newline
185
185
  @token_buf << [:NEWLINE, "\n"] unless prev_token && prev_token[0] == :NEWLINE
186
186
 
@@ -216,7 +216,7 @@ module Riml
216
216
  elsif regexp = chunk[%r{\A/.*?[^\\]/}]
217
217
  @token_buf << [:REGEXP, regexp]
218
218
  @i += regexp.size
219
- elsif whitespaces = chunk[/\A\s+/]
219
+ elsif whitespaces = chunk[/\A[ \t\f]+/]
220
220
  @i += whitespaces.size
221
221
  # operators and tokens of single chars, one of: ( ) , . [ ] ! + - = < > /
222
222
  else
data/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module Riml
2
- # last changed: Sept. 7, 2013
3
- VERSION = [0,3,0]
2
+ # last changed: Sept. 14, 2013
3
+ VERSION = [0,3,1]
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: riml
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-09-07 00:00:00.000000000 Z
12
+ date: 2013-09-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: racc