Skip to content

Commit 00a6bd5

Browse files
committed
Remove BAD_URL
1 parent 96d285f commit 00a6bd5

File tree

3 files changed

+14
-13
lines changed

3 files changed

+14
-13
lines changed

packages/parser/lib/Lexer.re

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -517,6 +517,10 @@ let rec consume_remnants_bad_url = lexbuf =>
517517

518518
// https://drafts.csswg.org/css-syntax-3/#consume-url-token
519519
let consume_url = lexbuf => {
520+
let raise_bad_url = error => {
521+
let (start_pos, curr_pos) = Sedlexing.lexing_positions(lexbuf);
522+
raise(LexingError((start_pos, curr_pos, Tokens.show_error(error))));
523+
};
520524
let _ = consume_whitespace(lexbuf);
521525
let rec read = acc => {
522526
let when_whitespace = () => {
@@ -526,7 +530,7 @@ let consume_url = lexbuf => {
526530
| eof => Error((Tokens.URL(acc), Tokens.Eof))
527531
| _ =>
528532
consume_remnants_bad_url(lexbuf);
529-
Ok(Tokens.BAD_URL);
533+
raise_bad_url(Tokens.Invalid_code_point);
530534
};
531535
};
532536
switch%sedlex (lexbuf) {
@@ -538,12 +542,11 @@ let consume_url = lexbuf => {
538542
| '('
539543
| non_printable_code_point =>
540544
consume_remnants_bad_url(lexbuf);
541-
// TODO: location on error
542-
Error((Tokens.BAD_URL, Tokens.Invalid_code_point));
545+
raise_bad_url(Tokens.Invalid_code_point);
543546
| escape =>
544547
switch (consume_escaped(lexbuf)) {
545548
| Ok(char) => read(acc ++ char)
546-
| Error((_, error)) => Error((Tokens.BAD_URL, error))
549+
| Error((_, error)) => raise_bad_url(error)
547550
}
548551
| any => read(acc ++ lexeme(lexbuf))
549552
| _ => unreachable(lexbuf)
@@ -738,6 +741,10 @@ let consume_number = lexbuf => {
738741

739742
// https://drafts.csswg.org/css-syntax-3/#consume-url-token
740743
let consume_url_ = lexbuf => {
744+
let raise_bad_url = error => {
745+
let (start_pos, curr_pos) = Sedlexing.lexing_positions(lexbuf);
746+
raise(LexingError((start_pos, curr_pos, Tokens.show_error(error))));
747+
};
741748
let _ = consume_whitespace_(lexbuf);
742749
let rec read = acc => {
743750
let when_whitespace = () => {
@@ -747,7 +754,7 @@ let consume_url_ = lexbuf => {
747754
| eof => Error((Tokens.URL(acc), Tokens.Eof))
748755
| _ =>
749756
consume_remnants_bad_url(lexbuf);
750-
Ok(BAD_URL);
757+
raise_bad_url(Tokens.Invalid_code_point);
751758
};
752759
};
753760
switch%sedlex (lexbuf) {
@@ -759,12 +766,11 @@ let consume_url_ = lexbuf => {
759766
| '('
760767
| non_printable_code_point =>
761768
consume_remnants_bad_url(lexbuf);
762-
// TODO: location on error
763-
Error((BAD_URL, Tokens.Invalid_code_point));
769+
raise_bad_url(Tokens.Invalid_code_point);
764770
| escape =>
765771
switch (consume_escaped(lexbuf)) {
766772
| Ok(char) => read(acc ++ char)
767-
| Error((_, error)) => Error((BAD_URL, error))
773+
| Error((_, error)) => raise_bad_url(error)
768774
}
769775
| any => read(acc ++ lexeme(lexbuf))
770776
| _ => unreachable(lexbuf)

packages/parser/lib/Parser.mly

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ let make_loc = Parser_location.to_ppxlib_location
3232
%token <string> FUNCTION
3333
%token <string> NTH_FUNCTION
3434
%token <string> URL
35-
%token BAD_URL
3635
%token <string> AT_KEYFRAMES
3736
%token <string> AT_RULE
3837
%token <string> AT_RULE_STATEMENT

packages/parser/lib/Tokens.re

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ type token =
1111
| HASH(string)
1212
| STRING(string)
1313
| URL(string)
14-
| BAD_URL
1514
| DELIM(string)
1615
| NUMBER(string)
1716
| FLOAT_DIMENSION((string, string))
@@ -65,7 +64,6 @@ let humanize =
6564
| HASH(h) => "hash: #" ++ h
6665
| STRING(s) => {|string "|} ++ s ++ {|"|}
6766
| URL(u) => "url(" ++ u ++ ")"
68-
| BAD_URL => "bad url"
6967
| DELIM(d) => "delimiter " ++ d
7068
| NUMBER(n) => "number: " ++ n
7169
| FLOAT_DIMENSION((n, u)) => "dimension: " ++ n ++ u
@@ -106,7 +104,6 @@ let to_string =
106104
| HASH(s) => "#" ++ s
107105
| STRING(s) => "'" ++ s ++ "'"
108106
| URL(url) => "url(" ++ url ++ ")"
109-
| BAD_URL => "bad url"
110107
| DELIM(s) => s
111108
| NUMBER(s) => s
112109
| FLOAT_DIMENSION((n, u)) => n ++ u
@@ -147,7 +144,6 @@ let to_debug =
147144
| HASH(s) => "HASH('" ++ s ++ "')"
148145
| STRING(s) => "STRING('" ++ s ++ "')"
149146
| URL(u) => "URL(" ++ u ++ ")"
150-
| BAD_URL => "BAD_URL"
151147
| DELIM(s) => "DELIM('" ++ s ++ "')"
152148
| NUMBER(s) => "NUMBER('" ++ s ++ "')"
153149
| FLOAT_DIMENSION((n, u)) => "FLOAT_DIMENSION('" ++ n ++ ", " ++ u ++ "')"

0 commit comments

Comments
 (0)