sfrp 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. checksums.yaml +7 -0
  2. data/.ctags +3 -0
  3. data/.editorconfig +9 -0
  4. data/.gitignore +14 -0
  5. data/.rubocop.yml +629 -0
  6. data/.travis.yml +12 -0
  7. data/Gemfile +2 -0
  8. data/LICENSE +28 -0
  9. data/README.md +34 -0
  10. data/Rakefile +1 -0
  11. data/base-library/Base.sfrp +81 -0
  12. data/base-library/IO/AVR/ATMEGA8.c +9 -0
  13. data/base-library/IO/AVR/ATMEGA8.h +6 -0
  14. data/base-library/IO/AVR/ATMEGA8.sfrp +4 -0
  15. data/base-library/IO/STDIO.c +40 -0
  16. data/base-library/IO/STDIO.h +13 -0
  17. data/base-library/IO/STDIO.sfrp +10 -0
  18. data/bin/sfrp +7 -0
  19. data/lib/sfrp.rb +2 -0
  20. data/lib/sfrp/command.rb +73 -0
  21. data/lib/sfrp/compiler.rb +94 -0
  22. data/lib/sfrp/error.rb +4 -0
  23. data/lib/sfrp/file.rb +18 -0
  24. data/lib/sfrp/flat/dsl.rb +33 -0
  25. data/lib/sfrp/flat/elements.rb +90 -0
  26. data/lib/sfrp/flat/exception.rb +45 -0
  27. data/lib/sfrp/flat/expression.rb +125 -0
  28. data/lib/sfrp/flat/set.rb +61 -0
  29. data/lib/sfrp/input/exception.rb +16 -0
  30. data/lib/sfrp/input/parser.rb +417 -0
  31. data/lib/sfrp/input/set.rb +29 -0
  32. data/lib/sfrp/input/transformer.rb +219 -0
  33. data/lib/sfrp/low/dsl.rb +126 -0
  34. data/lib/sfrp/low/element.rb +126 -0
  35. data/lib/sfrp/low/set.rb +62 -0
  36. data/lib/sfrp/mono/dsl.rb +120 -0
  37. data/lib/sfrp/mono/environment.rb +26 -0
  38. data/lib/sfrp/mono/exception.rb +21 -0
  39. data/lib/sfrp/mono/expression.rb +124 -0
  40. data/lib/sfrp/mono/function.rb +86 -0
  41. data/lib/sfrp/mono/memory.rb +32 -0
  42. data/lib/sfrp/mono/node.rb +125 -0
  43. data/lib/sfrp/mono/pattern.rb +69 -0
  44. data/lib/sfrp/mono/set.rb +151 -0
  45. data/lib/sfrp/mono/type.rb +210 -0
  46. data/lib/sfrp/mono/vconst.rb +134 -0
  47. data/lib/sfrp/output/set.rb +33 -0
  48. data/lib/sfrp/poly/dsl.rb +171 -0
  49. data/lib/sfrp/poly/elements.rb +168 -0
  50. data/lib/sfrp/poly/exception.rb +42 -0
  51. data/lib/sfrp/poly/expression.rb +170 -0
  52. data/lib/sfrp/poly/monofier.rb +73 -0
  53. data/lib/sfrp/poly/set.rb +90 -0
  54. data/lib/sfrp/poly/typing.rb +197 -0
  55. data/lib/sfrp/raw/dsl.rb +41 -0
  56. data/lib/sfrp/raw/elements.rb +164 -0
  57. data/lib/sfrp/raw/exception.rb +40 -0
  58. data/lib/sfrp/raw/expression.rb +168 -0
  59. data/lib/sfrp/raw/namespace.rb +30 -0
  60. data/lib/sfrp/raw/set.rb +109 -0
  61. data/lib/sfrp/version.rb +3 -0
  62. data/sfrp.gemspec +40 -0
  63. data/spec/sfrp/Test.sfrp +4 -0
  64. data/spec/sfrp/compiler_spec.rb +17 -0
  65. data/spec/sfrp/flat/set_spec.rb +40 -0
  66. data/spec/sfrp/input/parse_test.sfrp +20 -0
  67. data/spec/sfrp/input/set_spec.rb +18 -0
  68. data/spec/sfrp/low/set_spec.rb +20 -0
  69. data/spec/sfrp/mono/expected.yml +295 -0
  70. data/spec/sfrp/mono/set_spec.rb +152 -0
  71. data/spec/sfrp/output/set_spec.rb +29 -0
  72. data/spec/sfrp/poly/set_spec.rb +290 -0
  73. data/spec/sfrp/raw/set_spec.rb +38 -0
  74. data/spec/spec_helper.rb +16 -0
  75. data/test/IntTest/Main.c +5 -0
  76. data/test/IntTest/Main.h +6 -0
  77. data/test/IntTest/Main.sfrp +10 -0
  78. data/test/IntTest/in.txt +3 -0
  79. data/test/IntTest/out.txt +4 -0
  80. data/test/MaybeTest/Main.sfrp +8 -0
  81. data/test/MaybeTest/SubDir/Lib.sfrp +9 -0
  82. data/test/MaybeTest/in.txt +6 -0
  83. data/test/MaybeTest/out.txt +6 -0
  84. data/test/Rakefile +15 -0
  85. metadata +290 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 1f403d50150a6bce3cd4de441f4b19e2e1efdd0e
4
+ data.tar.gz: df10a8975ed95471ed17a0739c2bab08972d23aa
5
+ SHA512:
6
+ metadata.gz: 1525b31400335ddbe6cbc72370cae93b181b9721f0aac45b75b69af4110badc8ca54adceeecfecd0bfd3248921a4910877725d72f987442b5db5129d1fadabd6
7
+ data.tar.gz: fe1cb578b41a2897460cc949ee85bfb0b92a8b30b0a2f3b1739535c7b1d637d91fac83e6f2b0fc42a8007deba76b7c6dc97884f2797a29e595bf10526ffb2d1f
data/.ctags ADDED
@@ -0,0 +1,3 @@
1
+ --langmap=RUBY:.rb
2
+ --exclude=coverage
3
+ --recurse=yes
data/.editorconfig ADDED
@@ -0,0 +1,9 @@
1
+ root = true
2
+
3
+ [*.rb]
4
+ end_of_line = lf
5
+ charset = utf-8
6
+ indent_style = space
7
+ indent_size = 2
8
+ trim_trailing_whitespace = true
9
+ insert_final_newline = true
data/.gitignore ADDED
@@ -0,0 +1,14 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+ *.bundle
11
+ *.so
12
+ *.o
13
+ *.a
14
+ mkmf.log
data/.rubocop.yml ADDED
@@ -0,0 +1,629 @@
1
+ # My global rubocop that checks only Lint.
2
+ # Tested on rubocop version 0.40.0.
3
+
4
+ AllCops:
5
+ DisplayStyleGuide: true
6
+
7
+ # --------------------------------------------------
8
+ # Style
9
+ # --------------------------------------------------
10
+
11
+ Style/AccessModifierIndentation:
12
+ Enabled: false
13
+
14
+ Style/AccessorMethodName:
15
+ Enabled: false
16
+
17
+ Style/Alias:
18
+ Enabled: false
19
+
20
+ Style/AlignArray:
21
+ Enabled: false
22
+
23
+ Style/AlignHash:
24
+ Enabled: false
25
+
26
+ Style/AlignParameters:
27
+ Enabled: false
28
+
29
+ Style/AndOr:
30
+ Enabled: false
31
+
32
+ Style/ArrayJoin:
33
+ Enabled: false
34
+
35
+ Style/AsciiComments:
36
+ Enabled: false
37
+
38
+ Style/AsciiIdentifiers:
39
+ Enabled: false
40
+
41
+ Style/Attr:
42
+ Enabled: false
43
+
44
+ Style/BeginBlock:
45
+ Enabled: false
46
+
47
+ Style/BarePercentLiterals:
48
+ Enabled: false
49
+
50
+ Style/BlockComments:
51
+ Enabled: false
52
+
53
+ Style/BlockEndNewline:
54
+ Enabled: false
55
+
56
+ Style/BlockDelimiters:
57
+ Enabled: false
58
+
59
+ Style/BracesAroundHashParameters:
60
+ Enabled: false
61
+
62
+ Style/CaseEquality:
63
+ Enabled: false
64
+
65
+ Style/CaseIndentation:
66
+ Enabled: false
67
+
68
+ Style/CharacterLiteral:
69
+ Enabled: false
70
+
71
+ Style/ClassAndModuleCamelCase:
72
+ Enabled: false
73
+
74
+ Style/ClassAndModuleChildren:
75
+ Enabled: false
76
+
77
+ Style/ClassCheck:
78
+ Enabled: false
79
+
80
+ Style/ClassMethods:
81
+ Enabled: false
82
+
83
+ Style/ClassVars:
84
+ Enabled: false
85
+
86
+ Style/ClosingParenthesisIndentation:
87
+ Enabled: false
88
+
89
+ Style/ColonMethodCall:
90
+ Enabled: false
91
+
92
+ Style/CommandLiteral:
93
+ Enabled: false
94
+
95
+ Style/CommentAnnotation:
96
+ Enabled: false
97
+
98
+ Style/CommentIndentation:
99
+ Enabled: false
100
+
101
+ Style/ConditionalAssignment:
102
+ Enabled: false
103
+
104
+ Style/ConstantName:
105
+ Enabled: false
106
+
107
+ Style/DefWithParentheses:
108
+ Enabled: false
109
+
110
+ Style/DeprecatedHashMethods:
111
+ Enabled: false
112
+
113
+ Style/Documentation:
114
+ Enabled: false
115
+
116
+ Style/DotPosition:
117
+ Enabled: false
118
+
119
+ Style/DoubleNegation:
120
+ Enabled: false
121
+
122
+ Style/EachWithObject:
123
+ Enabled: false
124
+
125
+ Style/ElseAlignment:
126
+ Enabled: false
127
+
128
+ Style/EmptyElse:
129
+ Enabled: false
130
+
131
+ Style/EmptyCaseCondition:
132
+ Enabled: false
133
+
134
+ Style/EmptyLineBetweenDefs:
135
+ Enabled: false
136
+
137
+ Style/EmptyLines:
138
+ Enabled: false
139
+
140
+ Style/EmptyLinesAroundAccessModifier:
141
+ Enabled: false
142
+
143
+ Style/EmptyLinesAroundBlockBody:
144
+ Enabled: false
145
+
146
+ Style/EmptyLinesAroundClassBody:
147
+ Enabled: false
148
+
149
+ Style/EmptyLinesAroundModuleBody:
150
+ Enabled: false
151
+
152
+ Style/EmptyLinesAroundMethodBody:
153
+ Enabled: false
154
+
155
+ Style/EmptyLiteral:
156
+ Enabled: false
157
+
158
+ Style/EndBlock:
159
+ Enabled: false
160
+
161
+ Style/EndOfLine:
162
+ Enabled: false
163
+
164
+ Style/EvenOdd:
165
+ Enabled: false
166
+
167
+ Style/ExtraSpacing:
168
+ Enabled: false
169
+
170
+ Style/FileName:
171
+ Enabled: false
172
+
173
+ Style/FrozenStringLiteralComment:
174
+ Enabled: false
175
+
176
+ Style/InitialIndentation:
177
+ Enabled: false
178
+
179
+ Style/FirstParameterIndentation:
180
+ Enabled: false
181
+
182
+ Style/FlipFlop:
183
+ Enabled: false
184
+
185
+ Style/For:
186
+ Enabled: false
187
+
188
+ Style/FormatString:
189
+ Enabled: false
190
+
191
+ Style/GlobalVars:
192
+ Enabled: false
193
+
194
+ Style/GuardClause:
195
+ Enabled: false
196
+
197
+ Style/HashSyntax:
198
+ Enabled: false
199
+
200
+ Style/IfInsideElse:
201
+ Enabled: false
202
+
203
+ Style/IfUnlessModifier:
204
+ Enabled: false
205
+
206
+ Style/IfUnlessModifierOfIfUnless:
207
+ Enabled: false
208
+
209
+ Style/IfWithSemicolon:
210
+ Enabled: false
211
+
212
+ Style/IndentationConsistency:
213
+ Enabled: false
214
+
215
+ Style/IndentationWidth:
216
+ Enabled: false
217
+
218
+ Style/IdenticalConditionalBranches:
219
+ Enabled: false
220
+
221
+ Style/IndentArray:
222
+ Enabled: false
223
+
224
+ Style/IndentAssignment:
225
+ Enabled: false
226
+
227
+ Style/IndentHash:
228
+ Enabled: false
229
+
230
+ Style/InfiniteLoop:
231
+ Enabled: false
232
+
233
+ Style/Lambda:
234
+ Enabled: false
235
+
236
+ Style/LambdaCall:
237
+ Enabled: false
238
+
239
+ Style/LeadingCommentSpace:
240
+ Enabled: false
241
+
242
+ Style/LineEndConcatenation:
243
+ Enabled: false
244
+
245
+ Style/MethodCallParentheses:
246
+ Enabled: false
247
+
248
+ Style/MethodDefParentheses:
249
+ Enabled: false
250
+
251
+ Style/MethodName:
252
+ Enabled: false
253
+
254
+ Style/ModuleFunction:
255
+ Enabled: false
256
+
257
+ Style/MultilineArrayBraceLayout:
258
+ Enabled: false
259
+
260
+ Style/MultilineBlockChain:
261
+ Enabled: false
262
+
263
+ Style/MultilineBlockLayout:
264
+ Enabled: false
265
+
266
+ Style/MultilineHashBraceLayout:
267
+ Enabled: false
268
+
269
+ Style/MultilineIfThen:
270
+ Enabled: false
271
+
272
+ Style/MultilineMethodCallBraceLayout:
273
+ Enabled: false
274
+
275
+ Style/MultilineMethodCallIndentation:
276
+ Enabled: false
277
+
278
+ Style/MultilineMethodDefinitionBraceLayout:
279
+ Enabled: false
280
+
281
+ Style/MultilineOperationIndentation:
282
+ Enabled: false
283
+
284
+ Style/MultilineTernaryOperator:
285
+ Enabled: false
286
+
287
+ Style/MutableConstant:
288
+ Enabled: false
289
+
290
+ Style/NegatedIf:
291
+ Enabled: false
292
+
293
+ Style/NegatedWhile:
294
+ Enabled: false
295
+
296
+ Style/NestedModifier:
297
+ Enabled: false
298
+
299
+ Style/NestedParenthesizedCalls:
300
+ Enabled: false
301
+
302
+ Style/NestedTernaryOperator:
303
+ Enabled: false
304
+
305
+ Style/Next:
306
+ Enabled: false
307
+
308
+ Style/NilComparison:
309
+ Enabled: false
310
+
311
+ Style/NonNilCheck:
312
+ Enabled: false
313
+
314
+ Style/Not:
315
+ Enabled: false
316
+
317
+ Style/NumericLiterals:
318
+ Enabled: false
319
+
320
+ Style/OneLineConditional:
321
+ Enabled: false
322
+
323
+ Style/OpMethod:
324
+ Enabled: false
325
+
326
+ Style/OptionalArguments:
327
+ Enabled: false
328
+
329
+ Style/ParallelAssignment:
330
+ Enabled: false
331
+
332
+ Style/ParenthesesAroundCondition:
333
+ Enabled: false
334
+
335
+ Style/PercentLiteralDelimiters:
336
+ Enabled: false
337
+
338
+ Style/PercentQLiterals:
339
+ Enabled: false
340
+
341
+ Style/PerlBackrefs:
342
+ Enabled: false
343
+
344
+ Style/PredicateName:
345
+ Enabled: false
346
+
347
+ Style/Proc:
348
+ Enabled: false
349
+
350
+ Style/RaiseArgs:
351
+ Enabled: false
352
+
353
+ Style/RedundantBegin:
354
+ Enabled: false
355
+
356
+ Style/RedundantException:
357
+ Enabled: false
358
+
359
+ Style/RedundantFreeze:
360
+ Enabled: false
361
+
362
+ Style/RedundantParentheses:
363
+ Enabled: false
364
+
365
+ Style/RedundantReturn:
366
+ Enabled: false
367
+
368
+ Style/RedundantSelf:
369
+ Enabled: false
370
+
371
+ Style/RegexpLiteral:
372
+ Enabled: false
373
+
374
+ Style/RescueEnsureAlignment:
375
+ Enabled: false
376
+
377
+ Style/RescueModifier:
378
+ Enabled: false
379
+
380
+ Style/SelfAssignment:
381
+ Enabled: false
382
+
383
+ Style/Semicolon:
384
+ Enabled: false
385
+
386
+ Style/SignalException:
387
+ Enabled: false
388
+
389
+ Style/SingleLineBlockParams:
390
+ Enabled: false
391
+
392
+ Style/SingleLineMethods:
393
+ Enabled: false
394
+
395
+ Style/SpaceBeforeFirstArg:
396
+ Enabled: false
397
+
398
+ Style/SpaceAfterColon:
399
+ Enabled: false
400
+
401
+ Style/SpaceAfterComma:
402
+ Enabled: false
403
+
404
+ Style/SpaceAfterMethodName:
405
+ Enabled: false
406
+
407
+ Style/SpaceAfterNot:
408
+ Enabled: false
409
+
410
+ Style/SpaceAfterSemicolon:
411
+ Enabled: false
412
+
413
+ Style/SpaceBeforeBlockBraces:
414
+ Enabled: false
415
+
416
+ Style/SpaceBeforeComma:
417
+ Enabled: false
418
+
419
+ Style/SpaceBeforeComment:
420
+ Enabled: false
421
+
422
+ Style/SpaceBeforeSemicolon:
423
+ Enabled: false
424
+
425
+ Style/SpaceInsideBlockBraces:
426
+ Enabled: false
427
+
428
+ Style/SpaceAroundBlockParameters:
429
+ Enabled: false
430
+
431
+ Style/SpaceAroundEqualsInParameterDefault:
432
+ Enabled: false
433
+
434
+ Style/SpaceAroundKeyword:
435
+ Enabled: false
436
+
437
+ Style/SpaceAroundOperators:
438
+ Enabled: false
439
+
440
+ Style/SpaceInsideBrackets:
441
+ Enabled: false
442
+
443
+ Style/SpaceInsideHashLiteralBraces:
444
+ Enabled: false
445
+
446
+ Style/SpaceInsideParens:
447
+ Enabled: false
448
+
449
+ Style/SpaceInsideRangeLiteral:
450
+ Enabled: false
451
+
452
+ Style/SpaceInsideStringInterpolation:
453
+ Enabled: false
454
+
455
+ Style/SpecialGlobalVars:
456
+ Enabled: false
457
+
458
+ Style/StabbyLambdaParentheses:
459
+ Enabled: false
460
+
461
+ Style/StringLiterals:
462
+ Enabled: false
463
+
464
+ Style/StringLiteralsInInterpolation:
465
+ Enabled: false
466
+
467
+ Style/StructInheritance:
468
+ Enabled: false
469
+
470
+ Style/SymbolLiteral:
471
+ Enabled: false
472
+
473
+ Style/SymbolProc:
474
+ Enabled: false
475
+
476
+ Style/Tab:
477
+ Enabled: false
478
+
479
+ Style/TrailingBlankLines:
480
+ Enabled: false
481
+
482
+ Style/TrailingCommaInArguments:
483
+ Enabled: false
484
+
485
+ Style/TrailingCommaInLiteral:
486
+ Enabled: false
487
+
488
+ Style/TrailingWhitespace:
489
+ Enabled: false
490
+
491
+ Style/TrivialAccessors:
492
+ Enabled: false
493
+
494
+ Style/UnlessElse:
495
+ Enabled: false
496
+
497
+ Style/UnneededCapitalW:
498
+ Enabled: false
499
+
500
+ Style/UnneededInterpolation:
501
+ Enabled: false
502
+
503
+ Style/UnneededPercentQ:
504
+ Enabled: false
505
+
506
+ Style/TrailingUnderscoreVariable:
507
+ Enabled: false
508
+
509
+ Style/VariableInterpolation:
510
+ Enabled: false
511
+
512
+ Style/VariableName:
513
+ Enabled: false
514
+
515
+ Style/WhenThen:
516
+ Enabled: false
517
+
518
+ Style/WhileUntilDo:
519
+ Enabled: false
520
+
521
+ Style/WhileUntilModifier:
522
+ Enabled: false
523
+
524
+ Style/WordArray:
525
+ Enabled: false
526
+
527
+ Style/ZeroLengthPredicate:
528
+ Enabled: false
529
+
530
+ Metrics/AbcSize:
531
+ Enabled: false
532
+
533
+ Metrics/BlockNesting:
534
+ Enabled: false
535
+
536
+ Metrics/ClassLength:
537
+ Enabled: false
538
+
539
+ Metrics/ModuleLength:
540
+ Enabled: false
541
+
542
+ Metrics/CyclomaticComplexity:
543
+ Enabled: false
544
+
545
+ Metrics/LineLength:
546
+ Enabled: false
547
+
548
+ Metrics/MethodLength:
549
+ Enabled: false
550
+
551
+ Metrics/ParameterLists:
552
+ Enabled: false
553
+
554
+ Metrics/PerceivedComplexity:
555
+ Enabled: false
556
+
557
+ # --------------------------------------------------
558
+ # Lint
559
+ # --------------------------------------------------
560
+
561
+ Lint/LiteralInCondition:
562
+ Enabled: false
563
+
564
+ # --------------------------------------------------
565
+ # Performance
566
+ # --------------------------------------------------
567
+
568
+ Performance/Casecmp:
569
+ Enabled: false
570
+
571
+ Performance/CaseWhenSplat:
572
+ Enabled: false
573
+
574
+ Performance/Count:
575
+ Enabled: false
576
+
577
+ Performance/Detect:
578
+ Enabled: false
579
+
580
+ Performance/DoubleStartEndWith:
581
+ Enabled: false
582
+
583
+ Performance/EndWith:
584
+ Enabled: false
585
+
586
+ Performance/FixedSize:
587
+ Enabled: false
588
+
589
+ Performance/FlatMap:
590
+ Enabled: false
591
+
592
+ Performance/HashEachMethods:
593
+ Enabled: false
594
+
595
+ Performance/LstripRstrip:
596
+ Enabled: false
597
+
598
+ Performance/RangeInclude:
599
+ Enabled: false
600
+
601
+ Performance/RedundantBlockCall:
602
+ Enabled: false
603
+
604
+ Performance/RedundantMatch:
605
+ Enabled: false
606
+
607
+ Performance/RedundantMerge:
608
+ Enabled: false
609
+
610
+ Performance/RedundantSortBy:
611
+ Enabled: false
612
+
613
+ Performance/ReverseEach:
614
+ Enabled: false
615
+
616
+ Performance/Sample:
617
+ Enabled: false
618
+
619
+ Performance/Size:
620
+ Enabled: false
621
+
622
+ Performance/StartWith:
623
+ Enabled: false
624
+
625
+ Performance/StringReplacement:
626
+ Enabled: false
627
+
628
+ Performance/TimesMap:
629
+ Enabled: false