HS: sourceInfo 4/4 + arrayLiteral 8/8 (+5 tests)
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 17s
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 17s
- tokenizer hs-emit!: add :end (max pos, start+len(val)) and :line fields to tokens - parser hs-parse-ast: wrap fn body in do so set! hs-span-mode executes - runtime hs-make-object: remove _order key (V8 native insertion order sufficient)
This commit is contained in:
@@ -2999,6 +2999,7 @@
|
|||||||
|
|
||||||
(define hs-parse-ast
|
(define hs-parse-ast
|
||||||
(fn (src)
|
(fn (src)
|
||||||
(set! hs-span-mode true)
|
(do
|
||||||
(let ((result (hs-parse (hs-tokenize src) src)))
|
(set! hs-span-mode true)
|
||||||
(do (set! hs-span-mode false) result))))
|
(let ((result (hs-parse (hs-tokenize src) src)))
|
||||||
|
(do (set! hs-span-mode false) result)))))
|
||||||
|
|||||||
@@ -2156,20 +2156,13 @@
|
|||||||
(fn
|
(fn
|
||||||
(pairs)
|
(pairs)
|
||||||
(let
|
(let
|
||||||
((d {}) (order (list)))
|
((d {}))
|
||||||
(do
|
(do
|
||||||
(for-each
|
(for-each
|
||||||
(fn
|
(fn
|
||||||
(pair)
|
(pair)
|
||||||
(let
|
(dict-set! d (first pair) (nth pair 1)))
|
||||||
((k (first pair)))
|
|
||||||
(do
|
|
||||||
(when
|
|
||||||
(not (dict-has? d k))
|
|
||||||
(set! order (append order (list k))))
|
|
||||||
(dict-set! d k (nth pair 1)))))
|
|
||||||
pairs)
|
pairs)
|
||||||
(when (not (empty? order)) (dict-set! d "_order" order))
|
|
||||||
d))))
|
d))))
|
||||||
|
|
||||||
(define
|
(define
|
||||||
|
|||||||
@@ -460,7 +460,13 @@
|
|||||||
hs-emit!
|
hs-emit!
|
||||||
(fn
|
(fn
|
||||||
(type value start)
|
(type value start)
|
||||||
(append! tokens (hs-make-token type value start))))
|
(let
|
||||||
|
((tok (hs-make-token type value start))
|
||||||
|
(end-pos (max pos (+ start (if (nil? value) 0 (len (str value)))))))
|
||||||
|
(do
|
||||||
|
(dict-set! tok "end" end-pos)
|
||||||
|
(dict-set! tok "line" (len (split (slice src 0 start) "\n")))
|
||||||
|
(append! tokens tok)))))
|
||||||
(define
|
(define
|
||||||
scan!
|
scan!
|
||||||
(fn
|
(fn
|
||||||
|
|||||||
@@ -2999,6 +2999,7 @@
|
|||||||
|
|
||||||
(define hs-parse-ast
|
(define hs-parse-ast
|
||||||
(fn (src)
|
(fn (src)
|
||||||
(set! hs-span-mode true)
|
(do
|
||||||
(let ((result (hs-parse (hs-tokenize src) src)))
|
(set! hs-span-mode true)
|
||||||
(do (set! hs-span-mode false) result))))
|
(let ((result (hs-parse (hs-tokenize src) src)))
|
||||||
|
(do (set! hs-span-mode false) result)))))
|
||||||
|
|||||||
@@ -2156,20 +2156,13 @@
|
|||||||
(fn
|
(fn
|
||||||
(pairs)
|
(pairs)
|
||||||
(let
|
(let
|
||||||
((d {}) (order (list)))
|
((d {}))
|
||||||
(do
|
(do
|
||||||
(for-each
|
(for-each
|
||||||
(fn
|
(fn
|
||||||
(pair)
|
(pair)
|
||||||
(let
|
(dict-set! d (first pair) (nth pair 1)))
|
||||||
((k (first pair)))
|
|
||||||
(do
|
|
||||||
(when
|
|
||||||
(not (dict-has? d k))
|
|
||||||
(set! order (append order (list k))))
|
|
||||||
(dict-set! d k (nth pair 1)))))
|
|
||||||
pairs)
|
pairs)
|
||||||
(when (not (empty? order)) (dict-set! d "_order" order))
|
|
||||||
d))))
|
d))))
|
||||||
|
|
||||||
(define
|
(define
|
||||||
|
|||||||
@@ -460,7 +460,13 @@
|
|||||||
hs-emit!
|
hs-emit!
|
||||||
(fn
|
(fn
|
||||||
(type value start)
|
(type value start)
|
||||||
(append! tokens (hs-make-token type value start))))
|
(let
|
||||||
|
((tok (hs-make-token type value start))
|
||||||
|
(end-pos (max pos (+ start (if (nil? value) 0 (len (str value)))))))
|
||||||
|
(do
|
||||||
|
(dict-set! tok "end" end-pos)
|
||||||
|
(dict-set! tok "line" (len (split (slice src 0 start) "\n")))
|
||||||
|
(append! tokens tok)))))
|
||||||
(define
|
(define
|
||||||
scan!
|
scan!
|
||||||
(fn
|
(fn
|
||||||
|
|||||||
Reference in New Issue
Block a user