nirvdrum-less 1.1.4

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 (164) hide show
  1. data/.gitignore +4 -0
  2. data/LICENSE +179 -0
  3. data/README.md +39 -0
  4. data/Rakefile +90 -0
  5. data/VERSION +1 -0
  6. data/bin/lessc +86 -0
  7. data/less.gemspec +205 -0
  8. data/lib/ext.rb +62 -0
  9. data/lib/less.rb +33 -0
  10. data/lib/less/command.rb +106 -0
  11. data/lib/less/engine.rb +54 -0
  12. data/lib/less/engine/builder.rb +8 -0
  13. data/lib/less/engine/grammar/common.tt +29 -0
  14. data/lib/less/engine/grammar/entity.tt +139 -0
  15. data/lib/less/engine/grammar/less.tt +271 -0
  16. data/lib/less/engine/nodes.rb +9 -0
  17. data/lib/less/engine/nodes/element.rb +186 -0
  18. data/lib/less/engine/nodes/entity.rb +79 -0
  19. data/lib/less/engine/nodes/function.rb +79 -0
  20. data/lib/less/engine/nodes/literal.rb +167 -0
  21. data/lib/less/engine/nodes/property.rb +156 -0
  22. data/lib/less/engine/nodes/ruleset.rb +12 -0
  23. data/lib/less/engine/nodes/selector.rb +39 -0
  24. data/lib/vendor/treetop/.gitignore +7 -0
  25. data/lib/vendor/treetop/LICENSE +19 -0
  26. data/lib/vendor/treetop/README +164 -0
  27. data/lib/vendor/treetop/Rakefile +19 -0
  28. data/lib/vendor/treetop/benchmark/seqpar.gnuplot +15 -0
  29. data/lib/vendor/treetop/benchmark/seqpar.treetop +16 -0
  30. data/lib/vendor/treetop/benchmark/seqpar_benchmark.rb +107 -0
  31. data/lib/vendor/treetop/bin/tt +28 -0
  32. data/lib/vendor/treetop/lib/treetop.rb +8 -0
  33. data/lib/vendor/treetop/lib/treetop/bootstrap_gen_1_metagrammar.rb +45 -0
  34. data/lib/vendor/treetop/lib/treetop/compiler.rb +6 -0
  35. data/lib/vendor/treetop/lib/treetop/compiler/grammar_compiler.rb +42 -0
  36. data/lib/vendor/treetop/lib/treetop/compiler/lexical_address_space.rb +17 -0
  37. data/lib/vendor/treetop/lib/treetop/compiler/metagrammar.rb +3097 -0
  38. data/lib/vendor/treetop/lib/treetop/compiler/metagrammar.treetop +408 -0
  39. data/lib/vendor/treetop/lib/treetop/compiler/node_classes.rb +19 -0
  40. data/lib/vendor/treetop/lib/treetop/compiler/node_classes/anything_symbol.rb +18 -0
  41. data/lib/vendor/treetop/lib/treetop/compiler/node_classes/atomic_expression.rb +14 -0
  42. data/lib/vendor/treetop/lib/treetop/compiler/node_classes/character_class.rb +24 -0
  43. data/lib/vendor/treetop/lib/treetop/compiler/node_classes/choice.rb +31 -0
  44. data/lib/vendor/treetop/lib/treetop/compiler/node_classes/declaration_sequence.rb +24 -0
  45. data/lib/vendor/treetop/lib/treetop/compiler/node_classes/grammar.rb +28 -0
  46. data/lib/vendor/treetop/lib/treetop/compiler/node_classes/inline_module.rb +27 -0
  47. data/lib/vendor/treetop/lib/treetop/compiler/node_classes/nonterminal.rb +13 -0
  48. data/lib/vendor/treetop/lib/treetop/compiler/node_classes/optional.rb +19 -0
  49. data/lib/vendor/treetop/lib/treetop/compiler/node_classes/parenthesized_expression.rb +9 -0
  50. data/lib/vendor/treetop/lib/treetop/compiler/node_classes/parsing_expression.rb +138 -0
  51. data/lib/vendor/treetop/lib/treetop/compiler/node_classes/parsing_rule.rb +55 -0
  52. data/lib/vendor/treetop/lib/treetop/compiler/node_classes/predicate.rb +45 -0
  53. data/lib/vendor/treetop/lib/treetop/compiler/node_classes/repetition.rb +55 -0
  54. data/lib/vendor/treetop/lib/treetop/compiler/node_classes/sequence.rb +68 -0
  55. data/lib/vendor/treetop/lib/treetop/compiler/node_classes/terminal.rb +20 -0
  56. data/lib/vendor/treetop/lib/treetop/compiler/node_classes/transient_prefix.rb +9 -0
  57. data/lib/vendor/treetop/lib/treetop/compiler/node_classes/treetop_file.rb +9 -0
  58. data/lib/vendor/treetop/lib/treetop/compiler/ruby_builder.rb +113 -0
  59. data/lib/vendor/treetop/lib/treetop/ruby_extensions.rb +2 -0
  60. data/lib/vendor/treetop/lib/treetop/ruby_extensions/string.rb +42 -0
  61. data/lib/vendor/treetop/lib/treetop/runtime.rb +5 -0
  62. data/lib/vendor/treetop/lib/treetop/runtime/compiled_parser.rb +105 -0
  63. data/lib/vendor/treetop/lib/treetop/runtime/interval_skip_list.rb +4 -0
  64. data/lib/vendor/treetop/lib/treetop/runtime/interval_skip_list/head_node.rb +15 -0
  65. data/lib/vendor/treetop/lib/treetop/runtime/interval_skip_list/interval_skip_list.rb +200 -0
  66. data/lib/vendor/treetop/lib/treetop/runtime/interval_skip_list/node.rb +164 -0
  67. data/lib/vendor/treetop/lib/treetop/runtime/syntax_node.rb +72 -0
  68. data/lib/vendor/treetop/lib/treetop/runtime/terminal_parse_failure.rb +16 -0
  69. data/lib/vendor/treetop/lib/treetop/runtime/terminal_syntax_node.rb +17 -0
  70. data/lib/vendor/treetop/lib/treetop/version.rb +9 -0
  71. data/lib/vendor/treetop/spec/compiler/and_predicate_spec.rb +36 -0
  72. data/lib/vendor/treetop/spec/compiler/anything_symbol_spec.rb +44 -0
  73. data/lib/vendor/treetop/spec/compiler/character_class_spec.rb +182 -0
  74. data/lib/vendor/treetop/spec/compiler/choice_spec.rb +80 -0
  75. data/lib/vendor/treetop/spec/compiler/circular_compilation_spec.rb +28 -0
  76. data/lib/vendor/treetop/spec/compiler/failure_propagation_functional_spec.rb +21 -0
  77. data/lib/vendor/treetop/spec/compiler/grammar_compiler_spec.rb +84 -0
  78. data/lib/vendor/treetop/spec/compiler/grammar_spec.rb +41 -0
  79. data/lib/vendor/treetop/spec/compiler/nonterminal_symbol_spec.rb +40 -0
  80. data/lib/vendor/treetop/spec/compiler/not_predicate_spec.rb +38 -0
  81. data/lib/vendor/treetop/spec/compiler/one_or_more_spec.rb +35 -0
  82. data/lib/vendor/treetop/spec/compiler/optional_spec.rb +37 -0
  83. data/lib/vendor/treetop/spec/compiler/parenthesized_expression_spec.rb +19 -0
  84. data/lib/vendor/treetop/spec/compiler/parsing_rule_spec.rb +32 -0
  85. data/lib/vendor/treetop/spec/compiler/sequence_spec.rb +115 -0
  86. data/lib/vendor/treetop/spec/compiler/terminal_spec.rb +81 -0
  87. data/lib/vendor/treetop/spec/compiler/terminal_symbol_spec.rb +37 -0
  88. data/lib/vendor/treetop/spec/compiler/test_grammar.treetop +7 -0
  89. data/lib/vendor/treetop/spec/compiler/test_grammar.tt +7 -0
  90. data/lib/vendor/treetop/spec/compiler/test_grammar_do.treetop +7 -0
  91. data/lib/vendor/treetop/spec/compiler/zero_or_more_spec.rb +56 -0
  92. data/lib/vendor/treetop/spec/composition/a.treetop +11 -0
  93. data/lib/vendor/treetop/spec/composition/b.treetop +11 -0
  94. data/lib/vendor/treetop/spec/composition/c.treetop +10 -0
  95. data/lib/vendor/treetop/spec/composition/d.treetop +10 -0
  96. data/lib/vendor/treetop/spec/composition/f.treetop +17 -0
  97. data/lib/vendor/treetop/spec/composition/grammar_composition_spec.rb +40 -0
  98. data/lib/vendor/treetop/spec/composition/subfolder/e_includes_c.treetop +15 -0
  99. data/lib/vendor/treetop/spec/ruby_extensions/string_spec.rb +32 -0
  100. data/lib/vendor/treetop/spec/runtime/compiled_parser_spec.rb +101 -0
  101. data/lib/vendor/treetop/spec/runtime/interval_skip_list/delete_spec.rb +147 -0
  102. data/lib/vendor/treetop/spec/runtime/interval_skip_list/expire_range_spec.rb +349 -0
  103. data/lib/vendor/treetop/spec/runtime/interval_skip_list/insert_and_delete_node.rb +385 -0
  104. data/lib/vendor/treetop/spec/runtime/interval_skip_list/insert_spec.rb +660 -0
  105. data/lib/vendor/treetop/spec/runtime/interval_skip_list/interval_skip_list_spec.graffle +6175 -0
  106. data/lib/vendor/treetop/spec/runtime/interval_skip_list/interval_skip_list_spec.rb +58 -0
  107. data/lib/vendor/treetop/spec/runtime/interval_skip_list/palindromic_fixture.rb +23 -0
  108. data/lib/vendor/treetop/spec/runtime/interval_skip_list/palindromic_fixture_spec.rb +164 -0
  109. data/lib/vendor/treetop/spec/runtime/interval_skip_list/spec_helper.rb +84 -0
  110. data/lib/vendor/treetop/spec/runtime/syntax_node_spec.rb +53 -0
  111. data/lib/vendor/treetop/spec/spec_helper.rb +106 -0
  112. data/lib/vendor/treetop/spec/spec_suite.rb +4 -0
  113. data/lib/vendor/treetop/treetop.gemspec +17 -0
  114. data/spec/command_spec.rb +102 -0
  115. data/spec/css/accessors.css +18 -0
  116. data/spec/css/big.css +3768 -0
  117. data/spec/css/colors.css +11 -0
  118. data/spec/css/comments.css +9 -0
  119. data/spec/css/css-3.css +2 -0
  120. data/spec/css/css.css +45 -0
  121. data/spec/css/functions.css +6 -0
  122. data/spec/css/import.css +12 -0
  123. data/spec/css/lazy-eval.css +1 -0
  124. data/spec/css/mixins-args.css +0 -0
  125. data/spec/css/mixins.css +28 -0
  126. data/spec/css/operations.css +28 -0
  127. data/spec/css/parens.css +16 -0
  128. data/spec/css/rulesets.css +17 -0
  129. data/spec/css/scope.css +11 -0
  130. data/spec/css/selectors.css +8 -0
  131. data/spec/css/strings.css +12 -0
  132. data/spec/css/variables.css +6 -0
  133. data/spec/css/whitespace.css +11 -0
  134. data/spec/engine_spec.rb +111 -0
  135. data/spec/less/accessors.less +20 -0
  136. data/spec/less/big.less +4810 -0
  137. data/spec/less/colors.less +34 -0
  138. data/spec/less/comments.less +46 -0
  139. data/spec/less/css-3.less +11 -0
  140. data/spec/less/css.less +98 -0
  141. data/spec/less/exceptions/mixed-units-error.less +3 -0
  142. data/spec/less/exceptions/name-error-1.0.less +3 -0
  143. data/spec/less/exceptions/syntax-error-1.0.less +3 -0
  144. data/spec/less/functions.less +6 -0
  145. data/spec/less/import.less +7 -0
  146. data/spec/less/import/import-test-a.less +2 -0
  147. data/spec/less/import/import-test-b.less +8 -0
  148. data/spec/less/import/import-test-c.less +6 -0
  149. data/spec/less/import/import-test-d.css +1 -0
  150. data/spec/less/lazy-eval.less +6 -0
  151. data/spec/less/mixins-args.less +0 -0
  152. data/spec/less/mixins.less +43 -0
  153. data/spec/less/operations.less +39 -0
  154. data/spec/less/parens.less +21 -0
  155. data/spec/less/rulesets.less +30 -0
  156. data/spec/less/scope.less +32 -0
  157. data/spec/less/selectors.less +15 -0
  158. data/spec/less/strings.less +14 -0
  159. data/spec/less/variables.less +18 -0
  160. data/spec/less/whitespace.less +30 -0
  161. data/spec/spec.css +82 -0
  162. data/spec/spec.less +148 -0
  163. data/spec/spec_helper.rb +8 -0
  164. metadata +219 -0
@@ -0,0 +1,34 @@
1
+ #yellow {
2
+ #short {
3
+ color: #fea;
4
+ }
5
+ #long {
6
+ color: #ffeeaa;
7
+ }
8
+ #rgba {
9
+ color: rgba(255, 238, 170, 0.1);
10
+ }
11
+ }
12
+
13
+ #blue {
14
+ #short {
15
+ color: #00f;
16
+ }
17
+ #long {
18
+ color: #0000ff;
19
+ }
20
+ #rgba {
21
+ color: rgba(0, 0, 255, 0.1);
22
+ }
23
+ }
24
+
25
+ #overflow {
26
+ .a { color: #111111 - #444444; } // #000000
27
+ .b { color: #eee + #fff; } // #ffffff
28
+ .c { color: #aaa * 3; } // #ffffff
29
+ .d { color: #00ee00 + #009900; } // #00ff00
30
+ }
31
+
32
+ #rgb {
33
+ color: rgb(200, 200, 200);
34
+ }
@@ -0,0 +1,46 @@
1
+ /*
2
+ * Comment Test
3
+ *
4
+ * - cloudhead (http://cloudhead.net)
5
+ *
6
+ */
7
+
8
+ ////////////////
9
+ @var: "content";
10
+ ////////////////
11
+
12
+ /* Colors
13
+ * ------
14
+ * #EDF8FC (background blue)
15
+ * #166C89 (darkest blue)
16
+ *
17
+ * Text:
18
+ * #333 (standard text) // A comment within a comment!
19
+ * #1F9EC9 (standard link)
20
+ *
21
+ */
22
+
23
+ /* @group Variables
24
+ ------------------- */
25
+ #comments {
26
+ /**/ // An empty comment
27
+ color: red; /* A C-style comment */
28
+ background-color: orange; // A little comment
29
+ font-size: 12px;
30
+
31
+ /* lost comment */ content: @var;
32
+
33
+ border: 1px solid black;
34
+
35
+ // padding & margin //
36
+ padding: 0;
37
+ margin: 2em;
38
+ } //
39
+
40
+ /* commented out
41
+ #more-comments {
42
+ color: grey;
43
+ }
44
+ */
45
+
46
+ //
@@ -0,0 +1,11 @@
1
+ p:not([class*="lead"]) {
2
+ color: black;
3
+ }
4
+
5
+ a[href^="http://"] {
6
+ color: black;
7
+ }
8
+
9
+ a[href$="http://"] {
10
+ color: black;
11
+ }
@@ -0,0 +1,98 @@
1
+ /*
2
+
3
+ a CSS File
4
+
5
+ */
6
+
7
+ div { color: black; }
8
+ div { width: 99%; }
9
+
10
+ * {
11
+ min-width: 45em;
12
+ }
13
+
14
+ h1, h2 > a > p, h3 {
15
+ color: none;
16
+ }
17
+
18
+ div.class {
19
+ color: blue;
20
+ }
21
+
22
+ div#id {
23
+ color: green;
24
+ }
25
+
26
+ .class#id {
27
+ color: purple;
28
+ }
29
+
30
+ .one.two.three {
31
+ color: grey;
32
+ }
33
+
34
+ @media print {
35
+ font-size: 3em;
36
+ }
37
+
38
+ @media screen {
39
+ font-size: 10px;
40
+ }
41
+
42
+ @font-face {
43
+ font-family: 'Garamond Pro';
44
+ src: url("/fonts/garamond-pro.ttf");
45
+ }
46
+
47
+ a:hover, a:link {
48
+ color: #999;
49
+ }
50
+
51
+ p, p:first-child {
52
+ text-transform: none;
53
+ }
54
+
55
+ q:lang(no) {
56
+ quotes: none;
57
+ }
58
+
59
+ p + h1 {
60
+ font-size: 2.2em;
61
+ }
62
+
63
+ input[type="text"] {
64
+ font-weight: normal;
65
+ }
66
+
67
+ h2[title] {
68
+ font-size: 100%;
69
+ }
70
+
71
+ [disabled] {
72
+ color: transparent;
73
+ }
74
+
75
+ #shorthands {
76
+ border: 1px solid #000;
77
+ font: 12px/16px Arial;
78
+ margin: 1px 0;
79
+ padding: 0 auto;
80
+ background: url("http://www.lesscss.org/spec.html") no-repeat 0 4px;
81
+ }
82
+
83
+ #more-shorthands {
84
+ margin: 0;
85
+ padding: 1px 0 2px 0;
86
+ font: normal small/20px 'Trebuchet MS', Verdana, sans-serif;
87
+ }
88
+
89
+ .misc {
90
+ -moz-border-radius: 2px;
91
+ display: -moz-inline-stack;
92
+ width: .1em;
93
+ background-color: #009998;
94
+ color: red !important;
95
+ background-image: url(images/image.jpg);
96
+ margin: ;
97
+ }
98
+
@@ -0,0 +1,3 @@
1
+ #mixed-units-error {
2
+ color: 1px + #fff;
3
+ }
@@ -0,0 +1,3 @@
1
+ #name-error {
2
+ color: @var;
3
+ }
@@ -0,0 +1,3 @@
1
+ #syntax-error {
2
+ color: blue;;
3
+ }
@@ -0,0 +1,6 @@
1
+ #functions {
2
+ color: color("evil red"); // #999999
3
+ width: increment(15);
4
+ height: undefined("self");
5
+ border-width: add(2, 3);
6
+ }
@@ -0,0 +1,7 @@
1
+ @import url("import/import-test-a.less");
2
+
3
+ #import-test {
4
+ .mixin;
5
+ width: 10px;
6
+ height: @a + 10%;
7
+ }
@@ -0,0 +1,2 @@
1
+ @import "import-test-b.less";
2
+ @a: 20%;
@@ -0,0 +1,8 @@
1
+ @import "import-test-c";
2
+
3
+ @b: 100%;
4
+
5
+ .mixin {
6
+ height: 10px;
7
+ color: @c;
8
+ }
@@ -0,0 +1,6 @@
1
+ @import "import-test-d.css";
2
+ @c: red;
3
+
4
+ #import {
5
+ color: @c;
6
+ }
@@ -0,0 +1 @@
1
+ #css { color: yellow; }
@@ -0,0 +1,6 @@
1
+ @var: @a;
2
+ @a: 100%;
3
+
4
+ .lazy-eval {
5
+ width: @var;
6
+ }
File without changes
@@ -0,0 +1,43 @@
1
+ .mixin { border: 1px solid black; }
2
+ .mixout { border-color: orange; }
3
+ .borders { border-style: dashed; }
4
+
5
+ #namespace {
6
+ .borders {
7
+ border-style: dotted;
8
+ }
9
+ .biohazard {
10
+ content: "death";
11
+ .man {
12
+ color: transparent;
13
+ }
14
+ }
15
+ }
16
+ #theme > .mixin {
17
+ background-color: grey;
18
+ }
19
+ #container {
20
+ color: black;
21
+ .mixin, .mixout;
22
+ #theme > .mixin;
23
+ }
24
+
25
+ #header {
26
+ .milk {
27
+ color: white;
28
+ .mixin, #theme > .mixin;
29
+ }
30
+ #cookie {
31
+ .chips {
32
+ #namespace .borders;
33
+ .calories {
34
+ #container;
35
+ }
36
+ }
37
+ .borders;
38
+ }
39
+ }
40
+ .secure-zone { #namespace .biohazard .man; }
41
+ .direct {
42
+ #namespace > .borders;
43
+ }
@@ -0,0 +1,39 @@
1
+ #operations {
2
+ color: #110000 + #000011 + #001100; // #111111
3
+ height: 10px / 2px + 6px - 1px * 2; // 9px
4
+ width: 2 * 4 - 5em; // 3em
5
+ .spacing {
6
+ height: 10px / 2px+6px-1px*2;
7
+ width: 2 * 4-5em;
8
+ }
9
+ }
10
+
11
+ @x: 4;
12
+ @y: 12em;
13
+
14
+ .with-variables {
15
+ height: @x + @y; // 16em
16
+ width: 12 + @y; // 24em
17
+ size: 5cm - @x; // 1cm
18
+ }
19
+
20
+ @z: -2;
21
+
22
+ .negative {
23
+ height: 2px + @z; // 0px
24
+ width: 2px - @z; // 4px
25
+ }
26
+
27
+ .shorthands {
28
+ padding: -1px 2px 0 -4px; //
29
+ }
30
+
31
+ .colors {
32
+ color: #123; // #112233
33
+ border-color: #234 + #111111; // #334455
34
+ background-color: #222222 - #fff; // #000000
35
+ .other {
36
+ color: 2 * #111; // #222222
37
+ border-color: #333333 / 3 + #111; // #222222
38
+ }
39
+ }
@@ -0,0 +1,21 @@
1
+ .parens {
2
+ @var: 1px;
3
+ border: (@var * 2) solid black;
4
+ margin: (@var * 1) (@var + 2) (4 * 4) 3;
5
+ width: (6 * 6);
6
+ padding: 2px (6px * 6px);
7
+ }
8
+
9
+ .more-parens {
10
+ @var: (2 * 2);
11
+ padding: (2 * @var) 4 4 (@var * 1px);
12
+ width: (@var * @var) * 6;
13
+ height: (7 * 7) + (8 * 8);
14
+ margin: 4 * (5 + 5) / 2 - (@var * 2);
15
+ //margin: (6 * 6)px;
16
+ }
17
+
18
+ .nested-parens {
19
+ width: 2 * (4 * (2 + (1 + 6))) - 1;
20
+ height: ((2+3)*(2+3) / (9-4)) + 1;
21
+ }
@@ -0,0 +1,30 @@
1
+ #first > .one {
2
+ > #second .two > #deux {
3
+ width: 50%;
4
+ #third {
5
+ :focus {
6
+ color: black;
7
+ #fifth {
8
+ > #sixth {
9
+ .seventh #eighth {
10
+ + #ninth {
11
+ color: purple;
12
+ }
13
+ }
14
+ }
15
+ }
16
+ }
17
+ height: 100%;
18
+ }
19
+ #fourth, #five, #six {
20
+ color: #110000;
21
+ .seven, .eight > #nine {
22
+ border: 1px solid black;
23
+ }
24
+ #ten {
25
+ color: red;
26
+ }
27
+ }
28
+ }
29
+ font-size: 2em;
30
+ }
@@ -0,0 +1,32 @@
1
+ @x: blue;
2
+ @z: transparent;
3
+ @mix: none;
4
+
5
+ .mixin {
6
+ @mix: #989;
7
+ }
8
+
9
+ .tiny-scope {
10
+ color: @mix; // #989
11
+ .mixin;
12
+ }
13
+
14
+ .scope1 {
15
+ @y: orange;
16
+ @z: black;
17
+ color: @x; // blue
18
+ border-color: @z; // black
19
+ .hidden {
20
+ @x: #131313;
21
+ }
22
+ .scope2 {
23
+ @y: red;
24
+ color: @x; // blue
25
+ .scope3 {
26
+ @local: white;
27
+ color: @y; // red
28
+ border-color: @z; // black
29
+ background-color: @local; // white
30
+ }
31
+ }
32
+ }
@@ -0,0 +1,15 @@
1
+ h1, h2, h3 {
2
+ a, p {
3
+ :hover {
4
+ color: red;
5
+ }
6
+ }
7
+ }
8
+
9
+ #all { color: blue; }
10
+ #the { color: blue; }
11
+ #same { color: blue; }
12
+
13
+ ul, li, div, q, blockquote, textarea {
14
+ margin: 0;
15
+ }