JX Expression Language REPL
Overview
This is a brief guide on how to use the jx_repl command-line utility, which acts as an explorer for the JX Expression Language.
(REPL is a shorthand for "Read, Evaluate, Print, Loop", a pattern for working with interactive expression languages.)
Usage
To use this interactive utility, simply run
jx_repl
Commands
jx_repl reserves a number of symbols in the context, which act as commands when entered:
Command | Description |
---|---|
help | display a help message which lists details on reserved commands |
in_# | return the #'th input query |
out_# | return the result of in_# |
functions | display a list of functions supported by JX |
values | display a list of values supported by JX |
operators | display a list of operators supported by JX |
catalog | fetch the catalog data from http://catalog.cse.nd.edu:9097 |
exit | exit the program |
quit | same as "exit" |
Examples
Start the utility
$ jx_repl
Welcome to the JX REPL.
Type 'help' for help
in_0 : ...
Enter any valid JX expression:
$ jx_repl
...
in_0 : [ "file" + x + ".txt" for x in range(3) ]
out_0 :
[
"file0.txt",
"file1.txt",
"file2.txt"
]
Fetch the catalog data:
$ jx_repl
...
in_1 : catalog
out_1 :
[
{
"name":NAME,
"lastheardfrom":1620308581,
"address":ADDRESS,
...
"type":"wq_factory"
},
...
]
Perform operations on previous output
$ jx_repl
...
in_2 : select(out_1, type=="wq_master")
out_2 :
[
{
"name":NAME,
"lastheardfrom":1620308755,
"address":ADDRESS,
"tasks_total_disk":0,
"tasks_total_memory":0,
...
"type": wq_master
}
...
]
Do more operations on previous output
$ jx_repl
...
in_3 : join(project(out_2, name), ", ")
out_3 : NAME_1, NAME_2, NAME_3, ..., NAME_N
Now, fetch the query used to attain that output
$ jx_repl
...
in_4 : in_4
out_4 : join(project(select(fetch("http://catalog.cse.nd.edu:9097/query.json"),type=="wq_master"),name),", ")
Call one of reserved commands
$ jx_repl
...
in_5 : help
help display this message
functions display a list of functions supported by the JX language
values display a list of values supported by the JX language
operators display a list of operators supported by the JX language
in_# the #'th input query
out_# result of in_#
catalog alias to fetch catalog data
quit|exit exit program