e56ed0acce
Summary: Add additional structs and functions for handling C++ meta information. Add capnp-file and capnp-id arguments to lcp:process-file. Generate cpp along with hpp and capnp in lcp. Wrap LogicalOperator base class in lcp:define-class. Modify logical operators for capnp serialization. Add query/common.capnp. Reviewers: mculinovic, buda, mtomic, msantl, ipaljak, dgleich, mferencevic Reviewed By: msantl Subscribers: pullbot Differential Revision: https://phabricator.memgraph.io/D1391
43 lines
1002 B
Bash
Executable File
43 lines
1002 B
Bash
Executable File
#!/bin/bash -e
|
|
|
|
if [[ $# -ne 1 && $# -ne 2 ]]; then
|
|
echo "Usage: $0 LCP_FILE [CAPNP_EXE]"
|
|
echo "Convert a LCP_FILE to C++ header file and output to stdout."
|
|
echo "If CAPNP_EXE is provided, then the Cap'n Proto schema generated."
|
|
exit 1
|
|
fi
|
|
|
|
if [[ ! -r "$1" ]]; then
|
|
echo "File '$1' doesn't exist or isn't readable"
|
|
exit 1
|
|
fi
|
|
|
|
lcp_file=`realpath $1`
|
|
script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
|
|
quicklisp_install_dir="$HOME/quicklisp"
|
|
if [[ -v QUICKLISP_HOME ]]; then
|
|
quicklisp_install_dir="${QUICKLISP_HOME}"
|
|
fi
|
|
|
|
capnp=""
|
|
if [[ $# -eq 2 ]]; then
|
|
capnp=":capnp-id \"$($2 id)\""
|
|
fi
|
|
|
|
echo \
|
|
"
|
|
(load \"${quicklisp_install_dir}/setup.lisp\")
|
|
(ql:quickload :cl-ppcre :silent t)
|
|
(load \"$script_dir/../src/lisp/lcp.lisp\")
|
|
(lcp:process-file \"$lcp_file\" $capnp)
|
|
" | sbcl --script
|
|
|
|
filename=`basename $lcp_file .lcp`
|
|
hpp_file="$(dirname $lcp_file)/$filename.hpp"
|
|
clang-format -style=file -i $hpp_file
|
|
|
|
if [[ $# -eq 2 ]]; then
|
|
clang-format -style=file -i "$lcp_file.cpp"
|
|
fi
|