cloudhead-less 1.1.1 → 1.1.2
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/bin/lessc +2 -2
- data/less.gemspec +2 -2
- data/lib/less/engine/less.tt +10 -11
- data/lib/less/engine/parser.rb +139 -70
- data/spec/css/parens.css +10 -1
- data/spec/less/parens.less +8 -2
- metadata +4 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.1.
|
1
|
+
1.1.2
|
data/bin/lessc
CHANGED
@@ -34,10 +34,10 @@ opts = OptionParser.new do |o|
|
|
34
34
|
|
35
35
|
# Growl
|
36
36
|
o.on("-g", "--growl", "growl notifications") do
|
37
|
-
if Less::GROWL && Growl.installed?
|
37
|
+
if Less::GROWL && (Growl.installed? rescue false)
|
38
38
|
options[:growl] = true
|
39
39
|
elsif Less::GROWL
|
40
|
-
abort "Growl wasn't found on your system."
|
40
|
+
abort "Growl or 'growlnotify' wasn't found on your system."
|
41
41
|
else
|
42
42
|
abort "Growl gem not found, please install with: " +
|
43
43
|
"`sudo gem install visionmedia-growl -s http://gems.github.com`"
|
data/less.gemspec
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{less}
|
5
|
-
s.version = "1.1.
|
5
|
+
s.version = "1.1.2"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["cloudhead"]
|
9
|
-
s.date = %q{2009-07-
|
9
|
+
s.date = %q{2009-07-27}
|
10
10
|
s.default_executable = %q{lessc}
|
11
11
|
s.description = %q{LESS is leaner CSS}
|
12
12
|
s.email = %q{self@cloudhead.net}
|
data/lib/less/engine/less.tt
CHANGED
@@ -104,7 +104,6 @@ grammar Less
|
|
104
104
|
def build env
|
105
105
|
env << (name.text_value =~ /^@/ ?
|
106
106
|
Node::Variable : Node::Property).new(name.text_value, expressions.build(env), env)
|
107
|
-
|
108
107
|
end
|
109
108
|
# Empty rule
|
110
109
|
} / ws ident s ':' s ';' ws
|
@@ -123,12 +122,13 @@ grammar Less
|
|
123
122
|
#
|
124
123
|
# An operation or compound value
|
125
124
|
#
|
125
|
+
# TODO: we can refactor this, by separating entities from operators
|
126
126
|
rule expression
|
127
|
-
s '(' s expressions s ')'
|
127
|
+
s '(' s expressions s ')' {
|
128
128
|
def build env
|
129
129
|
Node::Expression.new(['('] + expressions.build(env).flatten + [')'])
|
130
130
|
end
|
131
|
-
} / entity tail:(operator entity)* ws {
|
131
|
+
} / s entity tail:(operator entity)* ws {
|
132
132
|
def build env
|
133
133
|
exp = all.map do |e|
|
134
134
|
e.method(:build).arity.zero??
|
@@ -140,7 +140,7 @@ grammar Less
|
|
140
140
|
def all
|
141
141
|
[entity] + tail.elements.map {|i| [i.operator, i.entity] }.flatten.compact
|
142
142
|
end
|
143
|
-
}
|
143
|
+
} / operator
|
144
144
|
end
|
145
145
|
|
146
146
|
#
|
@@ -234,11 +234,11 @@ grammar Less
|
|
234
234
|
|
235
235
|
rule operator
|
236
236
|
S [-+*/] S {
|
237
|
-
def build
|
237
|
+
def build env
|
238
238
|
Node::Operator.new(text_value.strip)
|
239
239
|
end
|
240
240
|
} / [-+*/] {
|
241
|
-
def build
|
241
|
+
def build env
|
242
242
|
Node::Operator.new(text_value)
|
243
243
|
end
|
244
244
|
}
|
@@ -373,11 +373,7 @@ grammar Less
|
|
373
373
|
end
|
374
374
|
|
375
375
|
rule argument
|
376
|
-
color {
|
377
|
-
def build
|
378
|
-
Node::Color.new text_value
|
379
|
-
end
|
380
|
-
} / number unit {
|
376
|
+
color / number unit {
|
381
377
|
def build
|
382
378
|
Node::Number.new number.text_value, unit.text_value
|
383
379
|
end
|
@@ -393,6 +389,9 @@ grammar Less
|
|
393
389
|
def build
|
394
390
|
Node::String.new text_value
|
395
391
|
end
|
392
|
+
} / function / keyword other:(S keyword)* {
|
393
|
+
def build
|
394
|
+
end
|
396
395
|
}
|
397
396
|
end
|
398
397
|
|
data/lib/less/engine/parser.rb
CHANGED
@@ -1056,7 +1056,6 @@ module Less
|
|
1056
1056
|
def build env
|
1057
1057
|
env << (name.text_value =~ /^@/ ?
|
1058
1058
|
Node::Variable : Node::Property).new(name.text_value, expressions.build(env), env)
|
1059
|
-
|
1060
1059
|
end
|
1061
1060
|
# Empty rule
|
1062
1061
|
end
|
@@ -1314,9 +1313,6 @@ module Less
|
|
1314
1313
|
elements[4]
|
1315
1314
|
end
|
1316
1315
|
|
1317
|
-
def s
|
1318
|
-
elements[6]
|
1319
|
-
end
|
1320
1316
|
end
|
1321
1317
|
|
1322
1318
|
module Expression1
|
@@ -1336,17 +1332,21 @@ module Less
|
|
1336
1332
|
end
|
1337
1333
|
|
1338
1334
|
module Expression3
|
1339
|
-
def
|
1335
|
+
def s
|
1340
1336
|
elements[0]
|
1341
1337
|
end
|
1342
1338
|
|
1343
|
-
def
|
1339
|
+
def entity
|
1344
1340
|
elements[1]
|
1345
1341
|
end
|
1346
1342
|
|
1347
|
-
def
|
1343
|
+
def tail
|
1348
1344
|
elements[2]
|
1349
1345
|
end
|
1346
|
+
|
1347
|
+
def ws
|
1348
|
+
elements[3]
|
1349
|
+
end
|
1350
1350
|
end
|
1351
1351
|
|
1352
1352
|
module Expression4
|
@@ -1402,10 +1402,6 @@ module Less
|
|
1402
1402
|
r7 = nil
|
1403
1403
|
end
|
1404
1404
|
s1 << r7
|
1405
|
-
if r7
|
1406
|
-
r8 = _nt_s
|
1407
|
-
s1 << r8
|
1408
|
-
end
|
1409
1405
|
end
|
1410
1406
|
end
|
1411
1407
|
end
|
@@ -1422,52 +1418,61 @@ module Less
|
|
1422
1418
|
if r1
|
1423
1419
|
r0 = r1
|
1424
1420
|
else
|
1425
|
-
|
1426
|
-
|
1427
|
-
|
1428
|
-
if
|
1429
|
-
|
1430
|
-
|
1431
|
-
|
1432
|
-
|
1433
|
-
|
1434
|
-
|
1435
|
-
|
1436
|
-
s12 <<
|
1437
|
-
|
1438
|
-
|
1439
|
-
|
1440
|
-
|
1441
|
-
|
1442
|
-
|
1443
|
-
|
1421
|
+
i8, s8 = index, []
|
1422
|
+
r9 = _nt_s
|
1423
|
+
s8 << r9
|
1424
|
+
if r9
|
1425
|
+
r10 = _nt_entity
|
1426
|
+
s8 << r10
|
1427
|
+
if r10
|
1428
|
+
s11, i11 = [], index
|
1429
|
+
loop do
|
1430
|
+
i12, s12 = index, []
|
1431
|
+
r13 = _nt_operator
|
1432
|
+
s12 << r13
|
1433
|
+
if r13
|
1434
|
+
r14 = _nt_entity
|
1435
|
+
s12 << r14
|
1436
|
+
end
|
1437
|
+
if s12.last
|
1438
|
+
r12 = instantiate_node(SyntaxNode,input, i12...index, s12)
|
1439
|
+
r12.extend(Expression2)
|
1440
|
+
else
|
1441
|
+
@index = i12
|
1442
|
+
r12 = nil
|
1443
|
+
end
|
1444
|
+
if r12
|
1445
|
+
s11 << r12
|
1446
|
+
else
|
1447
|
+
break
|
1448
|
+
end
|
1444
1449
|
end
|
1445
|
-
|
1446
|
-
|
1447
|
-
|
1448
|
-
|
1450
|
+
r11 = instantiate_node(SyntaxNode,input, i11...index, s11)
|
1451
|
+
s8 << r11
|
1452
|
+
if r11
|
1453
|
+
r15 = _nt_ws
|
1454
|
+
s8 << r15
|
1449
1455
|
end
|
1450
1456
|
end
|
1451
|
-
r11 = instantiate_node(SyntaxNode,input, i11...index, s11)
|
1452
|
-
s9 << r11
|
1453
|
-
if r11
|
1454
|
-
r15 = _nt_ws
|
1455
|
-
s9 << r15
|
1456
|
-
end
|
1457
1457
|
end
|
1458
|
-
if
|
1459
|
-
|
1460
|
-
|
1461
|
-
|
1458
|
+
if s8.last
|
1459
|
+
r8 = instantiate_node(SyntaxNode,input, i8...index, s8)
|
1460
|
+
r8.extend(Expression3)
|
1461
|
+
r8.extend(Expression4)
|
1462
1462
|
else
|
1463
|
-
@index =
|
1464
|
-
|
1463
|
+
@index = i8
|
1464
|
+
r8 = nil
|
1465
1465
|
end
|
1466
|
-
if
|
1467
|
-
r0 =
|
1466
|
+
if r8
|
1467
|
+
r0 = r8
|
1468
1468
|
else
|
1469
|
-
|
1470
|
-
|
1469
|
+
r16 = _nt_operator
|
1470
|
+
if r16
|
1471
|
+
r0 = r16
|
1472
|
+
else
|
1473
|
+
@index = i0
|
1474
|
+
r0 = nil
|
1475
|
+
end
|
1471
1476
|
end
|
1472
1477
|
end
|
1473
1478
|
|
@@ -2630,13 +2635,13 @@ module Less
|
|
2630
2635
|
end
|
2631
2636
|
|
2632
2637
|
module Operator1
|
2633
|
-
def build
|
2638
|
+
def build env
|
2634
2639
|
Node::Operator.new(text_value.strip)
|
2635
2640
|
end
|
2636
2641
|
end
|
2637
2642
|
|
2638
2643
|
module Operator2
|
2639
|
-
def build
|
2644
|
+
def build env
|
2640
2645
|
Node::Operator.new(text_value)
|
2641
2646
|
end
|
2642
2647
|
end
|
@@ -3947,12 +3952,6 @@ module Less
|
|
3947
3952
|
end
|
3948
3953
|
|
3949
3954
|
module Argument0
|
3950
|
-
def build
|
3951
|
-
Node::Color.new text_value
|
3952
|
-
end
|
3953
|
-
end
|
3954
|
-
|
3955
|
-
module Argument1
|
3956
3955
|
def number
|
3957
3956
|
elements[0]
|
3958
3957
|
end
|
@@ -3962,36 +3961,61 @@ module Less
|
|
3962
3961
|
end
|
3963
3962
|
end
|
3964
3963
|
|
3965
|
-
module
|
3964
|
+
module Argument1
|
3966
3965
|
def build
|
3967
3966
|
Node::Number.new number.text_value, unit.text_value
|
3968
3967
|
end
|
3969
3968
|
end
|
3970
3969
|
|
3971
|
-
module
|
3970
|
+
module Argument2
|
3972
3971
|
def build
|
3973
3972
|
Node::String.new text_value
|
3974
3973
|
end
|
3975
3974
|
end
|
3976
3975
|
|
3977
|
-
module
|
3976
|
+
module Argument3
|
3978
3977
|
def dimension
|
3979
3978
|
elements[2]
|
3980
3979
|
end
|
3981
3980
|
end
|
3982
3981
|
|
3983
|
-
module
|
3982
|
+
module Argument4
|
3984
3983
|
def build
|
3985
3984
|
Node::Anonymous.new text_value
|
3986
3985
|
end
|
3987
3986
|
end
|
3988
3987
|
|
3989
|
-
module
|
3988
|
+
module Argument5
|
3990
3989
|
def build
|
3991
3990
|
Node::String.new text_value
|
3992
3991
|
end
|
3993
3992
|
end
|
3994
3993
|
|
3994
|
+
module Argument6
|
3995
|
+
def S
|
3996
|
+
elements[0]
|
3997
|
+
end
|
3998
|
+
|
3999
|
+
def keyword
|
4000
|
+
elements[1]
|
4001
|
+
end
|
4002
|
+
end
|
4003
|
+
|
4004
|
+
module Argument7
|
4005
|
+
def keyword
|
4006
|
+
elements[0]
|
4007
|
+
end
|
4008
|
+
|
4009
|
+
def other
|
4010
|
+
elements[1]
|
4011
|
+
end
|
4012
|
+
end
|
4013
|
+
|
4014
|
+
module Argument8
|
4015
|
+
def build
|
4016
|
+
end
|
4017
|
+
end
|
4018
|
+
|
3995
4019
|
def _nt_argument
|
3996
4020
|
start_index = index
|
3997
4021
|
if node_cache[:argument].has_key?(index)
|
@@ -4002,7 +4026,6 @@ module Less
|
|
4002
4026
|
|
4003
4027
|
i0 = index
|
4004
4028
|
r1 = _nt_color
|
4005
|
-
r1.extend(Argument0)
|
4006
4029
|
if r1
|
4007
4030
|
r0 = r1
|
4008
4031
|
else
|
@@ -4015,8 +4038,8 @@ module Less
|
|
4015
4038
|
end
|
4016
4039
|
if s2.last
|
4017
4040
|
r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
|
4041
|
+
r2.extend(Argument0)
|
4018
4042
|
r2.extend(Argument1)
|
4019
|
-
r2.extend(Argument2)
|
4020
4043
|
else
|
4021
4044
|
@index = i2
|
4022
4045
|
r2 = nil
|
@@ -4025,7 +4048,7 @@ module Less
|
|
4025
4048
|
r0 = r2
|
4026
4049
|
else
|
4027
4050
|
r5 = _nt_string
|
4028
|
-
r5.extend(
|
4051
|
+
r5.extend(Argument2)
|
4029
4052
|
if r5
|
4030
4053
|
r0 = r5
|
4031
4054
|
else
|
@@ -4067,8 +4090,8 @@ module Less
|
|
4067
4090
|
end
|
4068
4091
|
if s6.last
|
4069
4092
|
r6 = instantiate_node(SyntaxNode,input, i6...index, s6)
|
4093
|
+
r6.extend(Argument3)
|
4070
4094
|
r6.extend(Argument4)
|
4071
|
-
r6.extend(Argument5)
|
4072
4095
|
else
|
4073
4096
|
@index = i6
|
4074
4097
|
r6 = nil
|
@@ -4095,13 +4118,59 @@ module Less
|
|
4095
4118
|
r11 = nil
|
4096
4119
|
else
|
4097
4120
|
r11 = instantiate_node(SyntaxNode,input, i11...index, s11)
|
4098
|
-
r11.extend(
|
4121
|
+
r11.extend(Argument5)
|
4099
4122
|
end
|
4100
4123
|
if r11
|
4101
4124
|
r0 = r11
|
4102
4125
|
else
|
4103
|
-
|
4104
|
-
|
4126
|
+
r13 = _nt_function
|
4127
|
+
if r13
|
4128
|
+
r0 = r13
|
4129
|
+
else
|
4130
|
+
i14, s14 = index, []
|
4131
|
+
r15 = _nt_keyword
|
4132
|
+
s14 << r15
|
4133
|
+
if r15
|
4134
|
+
s16, i16 = [], index
|
4135
|
+
loop do
|
4136
|
+
i17, s17 = index, []
|
4137
|
+
r18 = _nt_S
|
4138
|
+
s17 << r18
|
4139
|
+
if r18
|
4140
|
+
r19 = _nt_keyword
|
4141
|
+
s17 << r19
|
4142
|
+
end
|
4143
|
+
if s17.last
|
4144
|
+
r17 = instantiate_node(SyntaxNode,input, i17...index, s17)
|
4145
|
+
r17.extend(Argument6)
|
4146
|
+
else
|
4147
|
+
@index = i17
|
4148
|
+
r17 = nil
|
4149
|
+
end
|
4150
|
+
if r17
|
4151
|
+
s16 << r17
|
4152
|
+
else
|
4153
|
+
break
|
4154
|
+
end
|
4155
|
+
end
|
4156
|
+
r16 = instantiate_node(SyntaxNode,input, i16...index, s16)
|
4157
|
+
s14 << r16
|
4158
|
+
end
|
4159
|
+
if s14.last
|
4160
|
+
r14 = instantiate_node(SyntaxNode,input, i14...index, s14)
|
4161
|
+
r14.extend(Argument7)
|
4162
|
+
r14.extend(Argument8)
|
4163
|
+
else
|
4164
|
+
@index = i14
|
4165
|
+
r14 = nil
|
4166
|
+
end
|
4167
|
+
if r14
|
4168
|
+
r0 = r14
|
4169
|
+
else
|
4170
|
+
@index = i0
|
4171
|
+
r0 = nil
|
4172
|
+
end
|
4173
|
+
end
|
4105
4174
|
end
|
4106
4175
|
end
|
4107
4176
|
end
|
data/spec/css/parens.css
CHANGED
data/spec/less/parens.less
CHANGED
@@ -9,7 +9,13 @@
|
|
9
9
|
.more-parens {
|
10
10
|
@var: (2 * 2);
|
11
11
|
padding: (2 * @var) 4 4 (@var * 1px);
|
12
|
-
|
12
|
+
width: (@var * @var) * 6;
|
13
|
+
height: (7 * 7) + (8 * 8);
|
14
|
+
margin: 4 * (5 + 5) / 2 - (@var * 2);
|
13
15
|
//margin: (6 * 6)px;
|
14
|
-
//height: (7 * 7) + (8 * 8);
|
15
16
|
}
|
17
|
+
|
18
|
+
.nested-parens {
|
19
|
+
width: 2 * (4 * (2 + (1 + 6))) - 1;
|
20
|
+
height: ((2+3)*(2+3) / (9-4)) + 1;
|
21
|
+
}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cloudhead-less
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- cloudhead
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-07-
|
12
|
+
date: 2009-07-27 00:00:00 -07:00
|
13
13
|
default_executable: lessc
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -186,6 +186,7 @@ files:
|
|
186
186
|
- spec/spec_helper.rb
|
187
187
|
has_rdoc: true
|
188
188
|
homepage: http://www.lesscss.org
|
189
|
+
licenses:
|
189
190
|
post_install_message:
|
190
191
|
rdoc_options:
|
191
192
|
- --charset=UTF-8
|
@@ -206,7 +207,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
206
207
|
requirements: []
|
207
208
|
|
208
209
|
rubyforge_project: less
|
209
|
-
rubygems_version: 1.
|
210
|
+
rubygems_version: 1.3.5
|
210
211
|
signing_key:
|
211
212
|
specification_version: 2
|
212
213
|
summary: LESS compiler
|