packcr 0.0.4 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/exe/packcr +3 -0
  3. data/lib/packcr/broadcast.rb +17 -0
  4. data/lib/packcr/cli.rb +25 -0
  5. data/lib/packcr/code_block.rb +2 -3
  6. data/lib/packcr/context.rb +59 -56
  7. data/lib/packcr/generator.rb +13 -11
  8. data/lib/packcr/node/action_node.rb +14 -5
  9. data/lib/packcr/node/alternate_node.rb +20 -12
  10. data/lib/packcr/node/capture_node.rb +11 -11
  11. data/lib/packcr/node/charclass_node.rb +37 -13
  12. data/lib/packcr/node/eof_node.rb +23 -0
  13. data/lib/packcr/node/error_node.rb +17 -12
  14. data/lib/packcr/node/expand_node.rb +11 -5
  15. data/lib/packcr/node/predicate_node.rb +15 -24
  16. data/lib/packcr/node/quantity_node.rb +23 -18
  17. data/lib/packcr/node/reference_node.rb +21 -5
  18. data/lib/packcr/node/root_node.rb +60 -0
  19. data/lib/packcr/node/rule_node.rb +26 -3
  20. data/lib/packcr/node/sequence_node.rb +46 -31
  21. data/lib/packcr/node/string_node.rb +12 -12
  22. data/lib/packcr/node.rb +35 -4
  23. data/lib/packcr/parser.rb +2939 -2661
  24. data/lib/packcr/stream.rb +8 -13
  25. data/lib/packcr/templates/context/header.c.erb +29 -0
  26. data/lib/packcr/templates/context/source.c.erb +1292 -0
  27. data/lib/packcr/templates/context/source.rb.erb +406 -0
  28. data/lib/packcr/templates/node/action.c.erb +16 -0
  29. data/lib/packcr/templates/node/action.rb.erb +21 -0
  30. data/lib/packcr/templates/node/alternate.c.erb +34 -0
  31. data/lib/packcr/templates/node/alternate.rb.erb +40 -0
  32. data/lib/packcr/templates/node/capture.c.erb +17 -0
  33. data/lib/packcr/templates/node/capture.rb.erb +14 -0
  34. data/lib/packcr/templates/node/charclass.c.erb +47 -0
  35. data/lib/packcr/templates/node/charclass.rb.erb +49 -0
  36. data/lib/packcr/templates/node/charclass_any.c.erb +5 -0
  37. data/lib/packcr/templates/node/charclass_any.rb.erb +7 -0
  38. data/lib/packcr/templates/node/charclass_fail.c.erb +1 -0
  39. data/lib/packcr/templates/node/charclass_fail.rb.erb +1 -0
  40. data/lib/packcr/templates/node/charclass_one.c.erb +19 -0
  41. data/lib/packcr/templates/node/charclass_one.rb.erb +23 -0
  42. data/lib/packcr/templates/node/charclass_utf8.c.erb +49 -0
  43. data/lib/packcr/templates/node/charclass_utf8.rb.erb +50 -0
  44. data/lib/packcr/templates/node/charclass_utf8_reverse.rb.erb +51 -0
  45. data/lib/packcr/templates/node/eof.c.erb +1 -0
  46. data/lib/packcr/templates/node/eof.rb.erb +3 -0
  47. data/lib/packcr/templates/node/error.c.erb +28 -0
  48. data/lib/packcr/templates/node/error.rb.erb +34 -0
  49. data/lib/packcr/templates/node/expand.c.erb +16 -0
  50. data/lib/packcr/templates/node/expand.rb.erb +16 -0
  51. data/lib/packcr/templates/node/predicate.c.erb +30 -0
  52. data/lib/packcr/templates/node/predicate.rb.erb +28 -0
  53. data/lib/packcr/templates/node/predicate_neg.c.erb +23 -0
  54. data/lib/packcr/templates/node/predicate_neg.rb.erb +22 -0
  55. data/lib/packcr/templates/node/quantify_many.c.erb +45 -0
  56. data/lib/packcr/templates/node/quantify_many.rb.erb +47 -0
  57. data/lib/packcr/templates/node/quantify_one.c.erb +21 -0
  58. data/lib/packcr/templates/node/quantify_one.rb.erb +23 -0
  59. data/lib/packcr/templates/node/reference.c.erb +5 -0
  60. data/lib/packcr/templates/node/reference.rb.erb +9 -0
  61. data/lib/packcr/templates/node/reference_reverse.rb.erb +9 -0
  62. data/lib/packcr/templates/node/rule.c.erb +19 -0
  63. data/lib/packcr/templates/node/rule.rb.erb +23 -0
  64. data/lib/packcr/templates/node/sequence.c.erb +12 -0
  65. data/lib/packcr/templates/node/sequence.rb.erb +12 -0
  66. data/lib/packcr/templates/node/string_many.c.erb +11 -0
  67. data/lib/packcr/templates/node/string_many.rb.erb +10 -0
  68. data/lib/packcr/templates/node/string_one.c.erb +8 -0
  69. data/lib/packcr/templates/node/string_one.rb.erb +10 -0
  70. data/lib/packcr/tokenizer.rb +2948 -0
  71. data/lib/packcr/util.rb +0 -8
  72. data/lib/packcr/version.rb +1 -1
  73. data/lib/packcr.rb +1 -2
  74. metadata +87 -8
  75. data/lib/packcr/buffer.rb +0 -47
data/lib/packcr/util.rb CHANGED
@@ -2,10 +2,6 @@ require "erb"
2
2
 
3
3
  class Packcr
4
4
  module Util
5
- def is_identifier_string(str)
6
- str.match?(/\A(?!\d)\w+\z/)
7
- end
8
-
9
5
  def unescape_string(str, is_charclass)
10
6
  if is_charclass
11
7
  str.gsub!("\\" * 2) { "\\" * 4 }
@@ -62,10 +58,6 @@ class Packcr
62
58
  $stdout.print escape_string(str)
63
59
  end
64
60
 
65
- def find_trailing_blanks(str)
66
- str =~ /[ \v\f\t\n\r]*\z/
67
- end
68
-
69
61
  def unify_indent_spaces(spaces)
70
62
  offset = 0
71
63
  spaces.tr!("\v\f", " ")
@@ -1,3 +1,3 @@
1
1
  class Packcr
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.6"
3
3
  end
data/lib/packcr.rb CHANGED
@@ -5,7 +5,6 @@ require "packcr/util"
5
5
  require "packcr/code_block"
6
6
  require "packcr/stream"
7
7
  require "packcr/generator"
8
- require "packcr/buffer"
9
8
  require "packcr/node"
10
9
  require "packcr/context"
11
10
  require "packcr/version"
@@ -22,7 +21,7 @@ class Packcr
22
21
 
23
22
  def run
24
23
  Context.new(@path.to_s, **@opt) do |ctx|
25
- if !ctx.parse
24
+ if !ctx.parse_all
26
25
  raise "PackCR error: can't parse"
27
26
  end
28
27
  if !ctx.generate
metadata CHANGED
@@ -1,37 +1,68 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: packcr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - wanabe
8
8
  autorequire:
9
- bindir: bin
9
+ bindir: exe
10
10
  cert_chain: []
11
- date: 2023-01-06 00:00:00.000000000 Z
11
+ date: 2023-01-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: test-unit
14
+ name: rake
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '3.5'
19
+ version: '13.0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '3.5'
26
+ version: '13.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '3.12'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '3.12'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec-parameterized
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.0'
27
55
  description:
28
56
  email:
29
- executables: []
57
+ executables:
58
+ - packcr
30
59
  extensions: []
31
60
  extra_rdoc_files: []
32
61
  files:
62
+ - exe/packcr
33
63
  - lib/packcr.rb
34
- - lib/packcr/buffer.rb
64
+ - lib/packcr/broadcast.rb
65
+ - lib/packcr/cli.rb
35
66
  - lib/packcr/code_block.rb
36
67
  - lib/packcr/context.rb
37
68
  - lib/packcr/generator.rb
@@ -40,16 +71,64 @@ files:
40
71
  - lib/packcr/node/alternate_node.rb
41
72
  - lib/packcr/node/capture_node.rb
42
73
  - lib/packcr/node/charclass_node.rb
74
+ - lib/packcr/node/eof_node.rb
43
75
  - lib/packcr/node/error_node.rb
44
76
  - lib/packcr/node/expand_node.rb
45
77
  - lib/packcr/node/predicate_node.rb
46
78
  - lib/packcr/node/quantity_node.rb
47
79
  - lib/packcr/node/reference_node.rb
80
+ - lib/packcr/node/root_node.rb
48
81
  - lib/packcr/node/rule_node.rb
49
82
  - lib/packcr/node/sequence_node.rb
50
83
  - lib/packcr/node/string_node.rb
51
84
  - lib/packcr/parser.rb
52
85
  - lib/packcr/stream.rb
86
+ - lib/packcr/templates/context/header.c.erb
87
+ - lib/packcr/templates/context/source.c.erb
88
+ - lib/packcr/templates/context/source.rb.erb
89
+ - lib/packcr/templates/node/action.c.erb
90
+ - lib/packcr/templates/node/action.rb.erb
91
+ - lib/packcr/templates/node/alternate.c.erb
92
+ - lib/packcr/templates/node/alternate.rb.erb
93
+ - lib/packcr/templates/node/capture.c.erb
94
+ - lib/packcr/templates/node/capture.rb.erb
95
+ - lib/packcr/templates/node/charclass.c.erb
96
+ - lib/packcr/templates/node/charclass.rb.erb
97
+ - lib/packcr/templates/node/charclass_any.c.erb
98
+ - lib/packcr/templates/node/charclass_any.rb.erb
99
+ - lib/packcr/templates/node/charclass_fail.c.erb
100
+ - lib/packcr/templates/node/charclass_fail.rb.erb
101
+ - lib/packcr/templates/node/charclass_one.c.erb
102
+ - lib/packcr/templates/node/charclass_one.rb.erb
103
+ - lib/packcr/templates/node/charclass_utf8.c.erb
104
+ - lib/packcr/templates/node/charclass_utf8.rb.erb
105
+ - lib/packcr/templates/node/charclass_utf8_reverse.rb.erb
106
+ - lib/packcr/templates/node/eof.c.erb
107
+ - lib/packcr/templates/node/eof.rb.erb
108
+ - lib/packcr/templates/node/error.c.erb
109
+ - lib/packcr/templates/node/error.rb.erb
110
+ - lib/packcr/templates/node/expand.c.erb
111
+ - lib/packcr/templates/node/expand.rb.erb
112
+ - lib/packcr/templates/node/predicate.c.erb
113
+ - lib/packcr/templates/node/predicate.rb.erb
114
+ - lib/packcr/templates/node/predicate_neg.c.erb
115
+ - lib/packcr/templates/node/predicate_neg.rb.erb
116
+ - lib/packcr/templates/node/quantify_many.c.erb
117
+ - lib/packcr/templates/node/quantify_many.rb.erb
118
+ - lib/packcr/templates/node/quantify_one.c.erb
119
+ - lib/packcr/templates/node/quantify_one.rb.erb
120
+ - lib/packcr/templates/node/reference.c.erb
121
+ - lib/packcr/templates/node/reference.rb.erb
122
+ - lib/packcr/templates/node/reference_reverse.rb.erb
123
+ - lib/packcr/templates/node/rule.c.erb
124
+ - lib/packcr/templates/node/rule.rb.erb
125
+ - lib/packcr/templates/node/sequence.c.erb
126
+ - lib/packcr/templates/node/sequence.rb.erb
127
+ - lib/packcr/templates/node/string_many.c.erb
128
+ - lib/packcr/templates/node/string_many.rb.erb
129
+ - lib/packcr/templates/node/string_one.c.erb
130
+ - lib/packcr/templates/node/string_one.rb.erb
131
+ - lib/packcr/tokenizer.rb
53
132
  - lib/packcr/util.rb
54
133
  - lib/packcr/version.rb
55
134
  homepage: https://github.com/wanabe/packcr
data/lib/packcr/buffer.rb DELETED
@@ -1,47 +0,0 @@
1
-
2
- class Packcr
3
- class Buffer
4
- def initialize
5
- @buf = +"".b
6
- end
7
-
8
- def len
9
- @buf.length
10
- end
11
-
12
- def [](index)
13
- @buf[index].ord
14
- end
15
-
16
- def count_characters(s, e)
17
- # UTF-8 multibyte character support but without checking UTF-8 validity
18
- n = 0
19
- i = s
20
- while i < e
21
- c = self[i]
22
- if c == 0
23
- break
24
- end
25
- n += 1
26
- i += (c < 0x80) ? 1 : ((c & 0xe0) == 0xc0) ? 2 : ((c & 0xf0) == 0xe0) ? 3 : ((c & 0xf8) == 0xf0) ? 4 : 1
27
- end
28
- return n
29
- end
30
-
31
- def add(ch)
32
- @buf.concat(ch)
33
- end
34
-
35
- def to_s
36
- @buf
37
- end
38
-
39
- def []=(pos, ch)
40
- @buf[pos] = ch
41
- end
42
-
43
- def add_pos(offset)
44
- @buf[0, offset] = ""
45
- end
46
- end
47
- end