sfrp 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
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