Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
N
node-sass
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
楚学文
node-sass
Commits
44c140ed
Commit
44c140ed
authored
Mar 16, 2012
by
Aaron Leung
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Forgot to handle :not(...) as a special case of functional pseudo-classes.
parent
7dff7a7b
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
17 additions
and
11 deletions
+17
-11
document.cpp
document.cpp
+2
-10
document_parser.cpp
document_parser.cpp
+8
-1
node.hpp
node.hpp
+1
-0
prelexer.cpp
prelexer.cpp
+5
-0
prelexer.hpp
prelexer.hpp
+1
-0
No files found.
document.cpp
View file @
44c140ed
...
@@ -5,14 +5,12 @@
...
@@ -5,14 +5,12 @@
namespace
Sass
{
namespace
Sass
{
Document
::
Document
(
string
path
,
char
*
source
)
Document
::
Document
(
string
path
,
char
*
source
)
:
path
(
path
),
source
(
source
),
//source_refs(vector<char*>()),
:
path
(
path
),
source
(
source
),
line_number
(
1
),
own_source
(
false
),
line_number
(
1
),
own_source
(
false
),
context
(
*
(
new
Context
())),
context
(
*
(
new
Context
())),
root
(
Node
(
1
,
Node
::
root
)),
root
(
Node
(
1
,
Node
::
root
)),
// statements(vector<Node>()),
lexed
(
Token
())
lexed
(
Token
())
{
{
// if (!source) read_file();
if
(
!
source
)
{
if
(
!
source
)
{
std
::
FILE
*
f
;
std
::
FILE
*
f
;
// TO DO: CHECK f AGAINST NULL/0
// TO DO: CHECK f AGAINST NULL/0
...
@@ -33,11 +31,10 @@ namespace Sass {
...
@@ -33,11 +31,10 @@ namespace Sass {
}
}
Document
::
Document
(
string
path
,
Context
&
context
)
Document
::
Document
(
string
path
,
Context
&
context
)
:
path
(
path
),
source
(
0
),
//source_refs(vector<char*>()),
:
path
(
path
),
source
(
0
),
line_number
(
1
),
own_source
(
false
),
line_number
(
1
),
own_source
(
false
),
context
(
context
),
context
(
context
),
root
(
Node
(
1
,
Node
::
root
)),
root
(
Node
(
1
,
Node
::
root
)),
// statements(vector<Node>()),
lexed
(
Token
())
lexed
(
Token
())
{
{
std
::
FILE
*
f
;
std
::
FILE
*
f
;
...
@@ -57,12 +54,8 @@ namespace Sass {
...
@@ -57,12 +54,8 @@ namespace Sass {
}
}
Document
::~
Document
()
{
Document
::~
Document
()
{
// if (own_source) delete [] source;
--
context
.
ref_count
;
--
context
.
ref_count
;
if
(
context
.
ref_count
==
0
)
delete
&
context
;
if
(
context
.
ref_count
==
0
)
delete
&
context
;
// for (int i = 0; i < source_refs.size(); ++i) {
// delete [] source_refs[i];
// }
}
}
}
}
\ No newline at end of file
document_parser.cpp
View file @
44c140ed
...
@@ -130,7 +130,14 @@ namespace Sass {
...
@@ -130,7 +130,14 @@ namespace Sass {
}
}
Node
Document
::
parse_pseudo
()
{
Node
Document
::
parse_pseudo
()
{
if
(
lex
<
sequence
<
pseudo_prefix
,
functional
>
>
())
{
if
(
lex
<
pseudo_not
>
())
{
Node
ps_not
(
line_number
,
Node
::
functional_pseudo
,
2
);
ps_not
<<
Node
(
line_number
,
Node
::
value
,
lexed
);
ps_not
<<
parse_simple_selector
();
lex
<
exactly
<
')'
>
>
();
return
ps_not
;
}
else
if
(
lex
<
sequence
<
pseudo_prefix
,
functional
>
>
())
{
Node
pseudo
(
line_number
,
Node
::
functional_pseudo
,
2
);
Node
pseudo
(
line_number
,
Node
::
functional_pseudo
,
2
);
pseudo
<<
Node
(
line_number
,
Node
::
value
,
lexed
);
pseudo
<<
Node
(
line_number
,
Node
::
value
,
lexed
);
if
(
lex
<
alternatives
<
even
,
odd
>
>
())
{
if
(
lex
<
alternatives
<
even
,
odd
>
>
())
{
...
...
node.hpp
View file @
44c140ed
...
@@ -24,6 +24,7 @@ namespace Sass {
...
@@ -24,6 +24,7 @@ namespace Sass {
class_selector
,
class_selector
,
id_selector
,
id_selector
,
pseudo
,
pseudo
,
pseudo_negation
,
functional_pseudo
,
functional_pseudo
,
attribute_selector
,
attribute_selector
,
block
,
block
,
...
...
prelexer.cpp
View file @
44c140ed
...
@@ -165,6 +165,11 @@ namespace Sass {
...
@@ -165,6 +165,11 @@ namespace Sass {
const
char
*
functional
(
const
char
*
src
)
{
const
char
*
functional
(
const
char
*
src
)
{
return
sequence
<
identifier
,
exactly
<
'('
>
>
(
src
);
return
sequence
<
identifier
,
exactly
<
'('
>
>
(
src
);
}
}
// Match the CSS negation pseudo-class.
extern
const
char
not_kwd
[]
=
":not("
;
const
char
*
pseudo_not
(
const
char
*
src
)
{
return
exactly
<
not_kwd
>
(
src
);
}
// Match CSS 'odd' and 'even' keywords for functional pseudo-classes.
// Match CSS 'odd' and 'even' keywords for functional pseudo-classes.
extern
const
char
even_chars
[]
=
"even"
;
extern
const
char
even_chars
[]
=
"even"
;
extern
const
char
odd_chars
[]
=
"odd"
;
extern
const
char
odd_chars
[]
=
"odd"
;
...
...
prelexer.hpp
View file @
44c140ed
...
@@ -298,6 +298,7 @@ namespace Sass {
...
@@ -298,6 +298,7 @@ namespace Sass {
const
char
*
pseudo_prefix
(
const
char
*
src
);
const
char
*
pseudo_prefix
(
const
char
*
src
);
// Match CSS function call openers.
// Match CSS function call openers.
const
char
*
functional
(
const
char
*
src
);
const
char
*
functional
(
const
char
*
src
);
const
char
*
pseudo_not
(
const
char
*
src
);
// Match CSS 'odd' and 'even' keywords for functional pseudo-classes.
// Match CSS 'odd' and 'even' keywords for functional pseudo-classes.
const
char
*
even
(
const
char
*
src
);
const
char
*
even
(
const
char
*
src
);
const
char
*
odd
(
const
char
*
src
);
const
char
*
odd
(
const
char
*
src
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment