remove math.blas.syntax and merge parsing words into math.blas.vectors/matrices
[factor/jcg.git] / extra / fuel / fuel.factor
blob2bf8f1b98d36df37ec124185f2a1592b7c68412e
1 ! Copyright (C) 2008, 2009 Jose Antonio Ortega Ruiz.
2 ! See http://factorcode.org/license.txt for BSD license.
4 USING: assocs compiler.units fuel.eval fuel.help fuel.remote fuel.xref
5 help.topics io.pathnames kernel namespaces parser sequences
6 tools.scaffold vocabs.loader ;
8 IN: fuel
10 ! Evaluation
12 : fuel-eval-restartable ( -- )
13     t fuel-eval-res-flag set-global ; inline
15 : fuel-eval-non-restartable ( -- )
16     f fuel-eval-res-flag set-global ; inline
18 : fuel-eval-in-context ( lines in usings -- )
19     (fuel-eval-in-context) ;
21 : fuel-eval-set-result ( obj -- )
22     clone fuel-eval-result set-global ; inline
24 : fuel-retort ( -- ) fuel-send-retort ; inline
26 ! Loading files
28 <PRIVATE
30 SYMBOL: :uses
32 : fuel-set-use-hook ( -- )
33     [ amended-use get clone :uses prefix fuel-eval-set-result ]
34     print-use-hook set ;
36 : (fuel-get-uses) ( lines -- )
37     [ parse-fresh drop ] curry with-compilation-unit ; inline
39 PRIVATE>
41 : fuel-run-file ( path -- )
42     [ fuel-set-use-hook run-file ] curry with-scope ; inline
44 : fuel-with-autouse ( ... quot: ( ... -- ... ) -- ... )
45     [ auto-use? on fuel-set-use-hook call ] curry with-scope ; inline
47 : fuel-get-uses ( lines -- )
48     [ (fuel-get-uses) ] curry fuel-with-autouse ;
50 ! Edit locations
52 : fuel-get-word-location ( word -- )
53     word-location fuel-eval-set-result ;
55 : fuel-get-vocab-location ( vocab -- )
56     vocab-location fuel-eval-set-result ;
58 : fuel-get-doc-location ( word -- )
59     doc-location fuel-eval-set-result ;
61 : fuel-get-article-location ( name -- )
62     article-location fuel-eval-set-result ;
64 : fuel-get-vocabs ( -- )
65     get-vocabs fuel-eval-set-result ;
67 : fuel-get-vocabs/prefix ( prefix -- )
68     get-vocabs/prefix fuel-eval-set-result ;
70 : fuel-get-words ( prefix names -- )
71     get-vocabs-words/prefix fuel-eval-set-result ;
73 ! Cross-references
75 : fuel-callers-xref ( word -- ) callers-xref fuel-eval-set-result ;
77 : fuel-callees-xref ( word -- ) callees-xref fuel-eval-set-result ;
79 : fuel-apropos-xref ( str -- ) apropos-xref fuel-eval-set-result ;
81 : fuel-vocab-xref ( vocab -- ) vocab-xref fuel-eval-set-result ;
83 : fuel-vocab-uses-xref ( vocab -- ) vocab-uses-xref fuel-eval-set-result ;
85 : fuel-vocab-usage-xref ( vocab -- ) vocab-usage-xref fuel-eval-set-result ;
87 ! Help support
89 : fuel-get-article ( name -- ) article fuel-eval-set-result ;
91 : fuel-get-article-title ( name -- )
92     articles get at [ article-title ] [ f ] if* fuel-eval-set-result ;
94 : fuel-word-help ( name -- ) (fuel-word-help) fuel-eval-set-result ;
96 : fuel-word-see ( name -- ) (fuel-word-see) fuel-eval-set-result ;
98 : fuel-word-def ( name -- ) (fuel-word-def) fuel-eval-set-result ;
100 : fuel-vocab-help ( name -- ) (fuel-vocab-help) fuel-eval-set-result ;
102 : fuel-vocab-summary ( name -- )
103     (fuel-vocab-summary) fuel-eval-set-result ;
105 : fuel-index ( quot -- ) call format-index fuel-eval-set-result ;
107 : fuel-get-vocabs/tag ( tag -- )
108     (fuel-get-vocabs/tag) fuel-eval-set-result ;
110 : fuel-get-vocabs/author ( author -- )
111     (fuel-get-vocabs/author) fuel-eval-set-result ;
113 ! Scaffold support
115 : fuel-scaffold-vocab ( root name devname -- )
116     developer-name set dup [ scaffold-vocab ] dip
117     dup require vocab-source-path (normalize-path) fuel-eval-set-result ;
119 : fuel-scaffold-help ( name devname -- )
120     developer-name set
121     dup require dup scaffold-help vocab-docs-path
122     (normalize-path) fuel-eval-set-result ;
124 : fuel-scaffold-get-root ( name -- ) find-vocab-root fuel-eval-set-result ;
126 ! Remote connection
128 MAIN: fuel-start-remote-listener*