Scroll to navigation

jx_repl(1) Cooperative Computing Tools jx_repl(1)

NAME

jx_repl - interactive command line tool to explore the JX expression language.

SYNOPSIS

jx_repl

DESCRIPTION

jx_repl is an interactive tool to explore the JX expression language. jx_repl will read in a JX expression, evaluate it, print the result, then save both the query and the result to the context. Results of previous expressions can be referenced via the out_%d` symbol, and their corresponding query via the `in_%d` symbol. The program will exit on EOF or when the user enters 'quit' or 'exit.

jx_repl also reserves certain symbols in the context to act as commands when entered:

  • help display a help message which lists details on reserved commands.
  • 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.
  • exit exit the program.
  • quit same as 'exit'.

EXIT STATUS

Will always return 0

EXAMPLES

Simply run jx_repl with no parameters:

% jx_repl
Welcome to the JX Language Explorer.
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

COPYRIGHT

The Cooperative Computing Tools are Copyright (C) 2022 The University of Notre Dame. This software is distributed under the GNU General Public License. See the file COPYING for details.

CCTools 7.13.1 FINAL