Skip to content

Latest commit

 

History

History
102 lines (68 loc) · 1.84 KB

lit-path.adoc

File metadata and controls

102 lines (68 loc) · 1.84 KB

Datový typ lit-path!

1. Úvodem

Hodnota typu lit-path! je nevyhodnocená (citovaná) hodnota typu path!.

Hodnota typu lit-path! se při vyhodnocení přemění na hodnotu typu path!, např. při zadání v konzole Red.

Typ lit-path! je členem těchto typesetů: series!, any-block!, any-path!.

2. Vytvoření

Hodnoty lit-path! lze vytvořit použitím apostrofu ' případně quote a literálovou syntaxí nebo při runtimu použitím konstruktoru make či konverzí to .

>> 'foo/bar/baz
== foo/bar/baz

>> type? 'foo/bar/baz
== path!
>> quote 'foo/bar/baz
== 'foo/bar/baz

>> type? quote 'foo/bar/baz
== lit-path!
>> make lit-path! [foo bar baz]
== 'foo/bar/baz
>> to lit-path! [foo bar baz]
== 'foo/bar/baz

Prázdný lit-path se vytvoří celočíselným argumentem pro make:

>> make lit-path! 10
== '

3. Literálová skladba

BNF:

<lit-path-literal> ::= '<path-literal>

<path-literal> ::= <path-head>/<selector>
<path-head>    ::= <word-literal> | <path-literal>
<selector>     ::= <integer> | <word-literal> | :<word-literal> | <paren>

Parse:

lit-path: [lit-word! some selector]
selector: [#"/" [integer! | word! | get-word! | paren!]]

Datové typy pro path-head: lit-word!, lit-path!

Datové typy selektoru: integer!, word!, get-word!, paren!

4. Testování hodnot

K ověření, zda hodnota je typu lit-path! použijeme funkci lit-path?.

>> lit-path? first ['foo/bar]
== true

>> lit-path? quote 'foo/bar
== true

Funkce type? vrací typ zadané hodnoty.

>> type? first ['foo/bar]
== lit-path!

>> type? quote 'foo/bar
== lit-path!

5. Předdefinovaná slova

5.1. Funkce

lit-path?, to-lit-path