@@ -97,8 +97,8 @@ def lex:
97
97
| _re ("^\\ s+" ; {whitespace : . })
98
98
// _re ("^#[^\n ]*" ; {comment : . })
99
99
// _re ("^\\ .[_a-zA-Z][_a-zA-Z0-9]*" ; {index : . [1 :]})
100
- // _re ("^[_a-zA-Z][_a-zA-Z0-9]*" ; {ident : . })
101
100
// _re ("^@[_a-zA-Z][_a-zA-Z0-9]*" ; {at_ident : . })
101
+ // _re ("^[_a-zA-Z][_a-zA-Z0-9]*" ; {ident : . })
102
102
// _re ("^\\ $[_a-zA-Z][_a-zA-Z0-9]*" ; {binding : . })
103
103
# 1.23, .123, 123e2, 1.23e2, 123E2, 1.23e+2, 1.23E-2 or 123
104
104
// _re ("^(?:[0-9]+\\ .[0-9]+|[0-9]+)(?:[eE][-\\ +]?[0-9]+)?" ; {number : . })
@@ -705,12 +705,15 @@ def parse:
705
705
);
706
706
707
707
# def a: ...;
708
- # def a(f) ...;
709
- # def a(f; $v) ...;
708
+ # def a(f): ...;
709
+ # def a(f; $v): ...;
710
710
def _func_defs :
711
711
_repeat (
712
712
( _keyword ("def" )
713
- | _consume (.ident ) as [$rest , $ident ]
713
+ | ( _consume (.at_ident )
714
+ // _consume (.ident )
715
+ ) as [$rest , $tok ]
716
+ | ($tok .ident // $tok .at_ident ) as $name
714
717
| $rest
715
718
| ( ( _consume (.lparen )[0 ]
716
719
| _repeat (
@@ -736,7 +739,7 @@ def parse:
736
739
| $rest
737
740
| _consume (.semicolon ) as [$rest , $_ ]
738
741
| [ $rest
739
- , { name : $ident .ident
742
+ , { name : $name
740
743
, args : $args
741
744
, body : $body
742
745
}
@@ -748,7 +751,7 @@ def parse:
748
751
| $rest
749
752
| _consume (.semicolon ) as [$rest , $_ ]
750
753
| [ $rest
751
- , { name : $ident .ident
754
+ , { name : $name
752
755
, body : $body
753
756
}
754
757
]
@@ -1414,11 +1417,11 @@ def eval_ast($query; $path; $env; undefined_func):
1414
1417
end ;
1415
1418
1416
1419
def _string :
1417
- _string ($query ; "_format_text " );
1420
+ _string ($query ; "tostring " );
1418
1421
1419
1422
def _format :
1420
- # @name -> _format_name
1421
- _string ($query .term.str ; "_format_ \( $query .term.format [ 1 :] ) " );
1423
+ # @name "abc \(.def)" -> "abc \(.def | @name)"
1424
+ _string ($query .term.str ; $query .term.format );
1422
1425
1423
1426
# .
1424
1427
def _identity :
@@ -2500,8 +2503,8 @@ def del(p): delpaths([path(p)]);
2500
2503
2501
2504
def paths: path(..) | select(. != []);
2502
2505
2503
- def _format_text : tostring;
2504
- def _format_json : tojson;
2506
+ def @text : tostring;
2507
+ def @json : tojson;
2505
2508
2506
2509
def _utf8_bytes:
2507
2510
[ explode[]
@@ -2538,7 +2541,7 @@ def _utf8_bytes:
2538
2541
end
2539
2542
];
2540
2543
2541
- def _format_uri :
2544
+ def @uri :
2542
2545
gsub(\" (?<c>[^A-Za-z0-9-_\\\\ .~])\" ;
2543
2546
( # A (65) - 10 = 55
2544
2547
def _hex: . + if . < 10 then 48 else 55 end;
0 commit comments