jx_repl(1) Cooperative Computing Tools jx_repl(1)

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

jx_repl

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:

Will always return 0

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
    

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