Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
cduce
cduce
Commits
45f76e15
Commit
45f76e15
authored
Oct 05, 2007
by
Pietro Abate
Browse files
[r2004-07-06 14:16:32 by afrisch] Add string:// scheme
Original author: afrisch Date: 2004-07-06 14:16:32+00:00
parent
3289264c
Changes
4
Hide whitespace changes
Inline
Side-by-side
parser/url.ml
View file @
45f76e15
type
url
=
Filename
of
string
|
Url
of
string
let
start_with
s
p
=
let
l
=
String
.
length
p
in
let
n
=
String
.
length
s
in
if
(
n
>=
l
)
&&
(
String
.
sub
s
0
l
=
p
)
then
Some
(
String
.
sub
s
l
(
n
-
l
))
else
None
let
is_url
s
=
try
let
_
=
Neturl
.
extract_url_scheme
s
in
true
with
Neturl
.
Malformed_URL
->
false
...
...
@@ -14,5 +21,9 @@ let no_load_url s =
let
load_url
=
ref
no_load_url
let
process
s
=
if
is_url
s
then
Url
(
!
load_url
s
)
else
Filename
s
match
start_with
s
"string://"
with
|
None
->
if
is_url
s
then
Url
(
!
load_url
s
)
else
Filename
s
|
Some
s
->
Url
s
parser/url.mli
View file @
45f76e15
type
url
=
Filename
of
string
|
Url
of
string
(* Returns whether a string is a valid url. *)
val
is_url
:
string
->
bool
(* It recognizes if it is a valid url. If it is connect and bufferize
* in a string otherwise consider it as filename
*)
...
...
runtime/load_xml.ml
View file @
45f76e15
...
...
@@ -96,7 +96,7 @@ let load_xml s =
!
xml_parser
s
;
match
!
stack
with
|
Element
(
x
,
Empty
)
->
stack
:=
Empty
;
x
|
_
->
assert
fal
se
|
_
->
Value
.
failwith'
"No XML stream to par
se
"
with
e
->
stack
:=
Empty
;
txt
.
pos
<-
0
;
raise
e
...
...
runtime/value.ml
View file @
45f76e15
...
...
@@ -64,6 +64,9 @@ let concat v1 v2 =
|
(
Atom
_
,
v
)
|
(
v
,
Atom
_
)
->
v
|
(
v1
,
v2
)
->
Concat
(
v1
,
v2
)
let
failwith'
s
=
raise
(
CDuceExn
(
string_latin1
s
))
let
raise'
v
=
raise
(
CDuceExn
v
)
let
rec
const
=
function
|
Types
.
Integer
i
->
Integer
i
...
...
@@ -183,7 +186,7 @@ let rec add_buf_utf8_to_latin1 src i j =
if
Utf8
.
equal_index
i
j
then
()
else
let
(
c
,
i
)
=
Utf8
.
next
src
i
in
if
(
c
>
255
)
then
failwith
"get_string_latin1"
;
if
(
c
>
255
)
then
failwith
'
"get_string_latin1"
;
Buffer
.
add_char
buf
(
Char
.
chr
c
);
add_buf_utf8_to_latin1
src
i
j
...
...
@@ -199,6 +202,7 @@ let get_string_latin1 e =
|
String_utf8
(
i
,
j
,
src
,
y
)
->
add_buf_utf8_to_latin1
src
i
j
;
aux
y
|
Concat
(
_
,_
)
as
v
->
eval_lazy_concat
v
;
aux
v
|
_
->
()
in
Buffer
.
clear
buf
;
aux
e
;
let
s
=
Buffer
.
contents
buf
in
Buffer
.
clear
buf
;
...
...
@@ -523,8 +527,6 @@ let rec flatten = function
*)
let
failwith'
s
=
raise
(
CDuceExn
(
string_latin1
s
))
let
raise'
v
=
raise
(
CDuceExn
v
)
let
()
=
dump_forward
:=
dump_xml
...
...
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