berkeleysdm / fastbit Goto Github PK
View Code? Open in Web Editor NEWFastBit indexing and querying tools
License: Other
FastBit indexing and querying tools
License: Other
*** COMPILING ON WINDOWS *** As of 2014, FastBit source code starts to make use of some C++11x features that are not supported yet in MS Visual Studio, therefore, there is no way to compile with Visual Studio until C++0x is supported. However, it is possible to compile with CYGWIN. **************************** This directory contains the current version of FastBit (code named IBIS). Please report any problem you've encountered in using this package to <[email protected]>. Please feel free to post any success story or paper you wrote that makes use of FastBit in some way. Your success stories will be encouragement for the developers and users. This software is packaged with GNU build tools. On systems that support such tools, you should be able to build it by running the following two commands in this directory ./configure make Due to the uses of a number of C++11 features, such as, unique_ptr and unordered_map, the current version of the source code requires GCC 4.8 or clang 3.5 to compile. If your C++ compiler supports C++11, please give it a try and let us know. Further information about installation is available in file INSTALL in this directory. For installation on a MS Windows system using Visual Studio, follow instructions in win/README. To check the correctness of the build, run the following command make check Read the file README in tests directory to find out more about the tests. The main body of the source code is located in directory src. The code is built into a single library named libfastbit.la on systems with libtools. Some examples of using the library are located in the directory examples. The following is a brief description of the four examples. -- ibis.cpp exercises much of the functions of the lower level indexing functions. -- tcapi.c is an example of using the C API querying defined in capi.h. -- thula.cpp exercises the querying interface defined in class ibis::table. -- ardea.cpp exercises the functions to extend a table (API defined in ibis::tablex). The directory doc contains a number of HTML files that documents key features of FastBit. In particular, the file quickstart.html contains brief instructions for basic tasks and should be useful starting for those not familiar with FastBit already. There is considerable amount of in-line documentation in the source code; execute the following command to invoke doxygen and extract the in-line documentation make docs The resulting documentation is in directory doc/html. Alternatively, you may view the on-line version of the documents at http://sdm.lbl.gov/fastbit/doc/. The FastBit mailing list could be a valuable resource. It is archived on line at http://hpcrdm.lbl.gov/mailman/private/fastbit-users/. If you have question not answered in the documents or the mailing list, post your questions to the FastBit mailing list. You need to first join the mailing list by visiting https://hpcrdm.lbl.gov/mailman/listinfo/fastbit-users. Before reporting a problem, it might be helpful to check whether the problem still exist with the current source code. A nightly snapshot of the SVN repository for the code is available for download at <https://codeforge.lbl.gov/snapshots.php?group_id=44>. The snapshot is built daily between 2 and 3 AM Pacific Time zone (USA).
Using some online tools like https://www.bottlecaps.de/rr/ui and https://www.bottlecaps.de/convert/ and joining all grammars and manually adding the tokens from the lexers we can have a nice navigable railroad diagram.
Copy and paste the EBNF
shown bellow on https://www.bottlecaps.de/rr/ui on the tab Edit Grammar
the click on the tab View Diagram
to see/download a navigable railroad diagram.
/* converted on Fri Jan 20, 2023, 12:07 (UTC+01) by bison-to-w3c v0.62 which is Copyright (c) 2011-2022 by Gunther Rademacher <[email protected]> */
slist ::= sterm+
sterm ::= mathExpr ( ASOP? NOUNSTR )? ( ',' | END )
mathExpr ::= ( mathExpr ( ADDOP | MINUSOP | MULTOP | DIVOP | REMOP | EXPOP | BITANDOP | BITOROP ) | MINUSOP | ADDOP ) mathExpr
| NOUNSTR ( '(' ( MULTOP | mathExpr ( ',' mathExpr )? ) ')' )?
| ( ( FORMAT_UNIXTIME_GMT | FORMAT_UNIXTIME_LOCAL ) '(' mathExpr ',' ( NOUNSTR | STRLIT ) | '(' mathExpr ) ')'
| STRLIT
| NUMBER
/* converted on Fri Jan 20, 2023, 12:08 (UTC+01) by bison-to-w3c v0.62 which is Copyright (c) 2011-2022 by Gunther Rademacher <[email protected]> */
flist ::= fterm+
fterm ::= NOUNSTR ( ',' | ( JOINOP NOUNSTR ( ( ASOP NOUNSTR )? ( ONOP compRange | USINGOP ( NOUNSTR | '(' NOUNSTR ')' ) )? | NOUNSTR ( USINGOP ( NOUNSTR | '(' NOUNSTR ')' ) | ONOP compRange ) ) )? END | NOUNSTR ( ',' | ( JOINOP NOUNSTR NOUNSTR? ( USINGOP ( NOUNSTR | '(' NOUNSTR ')' ) | ONOP compRange ) )? END ) | ASOP NOUNSTR ( ',' | ( JOINOP NOUNSTR ( ASOP NOUNSTR )? ( ONOP compRange | USINGOP ( NOUNSTR | '(' NOUNSTR ')' ) )? )? END ) )
compRange
::= compRange2
| compRange3
compRange2
::= mathExpr ( EQOP | NEQOP | LTOP | LEOP | GTOP | GEOP ) mathExpr
compRange3
::= mathExpr ( ( LTOP | LEOP ) mathExpr ( LTOP | LEOP ) | ( GTOP | GEOP ) mathExpr ( GTOP | GEOP ) | BETWEENOP mathExpr ANDOP ) mathExpr
mathExpr ::= ( mathExpr ( ADDOP | MINUSOP | MULTOP | DIVOP | REMOP | EXPOP | BITANDOP | BITOROP ) | MINUSOP | ADDOP ) mathExpr
| NOUNSTR ( '(' mathExpr ( ',' mathExpr )? ')' )?
| '(' mathExpr ')'
| NUMBER
/* converted on Fri Jan 20, 2023, 12:09 (UTC+01) by bison-to-w3c v0.62 which is Copyright (c) 2011-2022 by Gunther Rademacher <[email protected]> */
qexpr ::= ( qexpr ( OROP | XOROP | ANDOP | ANDNOTOP ) | NOTOP ) qexpr
| '(' qexpr ')'
| simpleRange
| compRange2
| compRange3
simpleRange
::= EXISTSOP ( NOUNSTR | STRLIT | '(' ( NOUNSTR | STRLIT ) ')' )
| NOUNSTR ( INOP ( NUMSEQ | '(' ( NUMBER ( ',' NUMBER )? | ( NOUNSTR | STRLIT ) ( ',' ( NOUNSTR | STRLIT ) )? ) ')' | STRSEQ | INTSEQ | UINTSEQ ) | NOTOP ( NULLOP | INOP ( NUMSEQ | '(' ( NUMBER ( ',' NUMBER )? | ( NOUNSTR | STRLIT ) ( ',' ( NOUNSTR | STRLIT ) )? ) ')' | STRSEQ | INTSEQ | UINTSEQ ) ) | LIKEOP ( NOUNSTR | STRLIT ) | CONTAINSOP ( NOUNSTR | STRLIT | '(' ( NOUNSTR | STRLIT ) ( ',' ( STRLIT | NOUNSTR ) )? ')' | STRSEQ ) | ( EQOP | NEQOP ) ( INT64 | UINT64 | STRLIT | mathExpr ) )
| ANYOP '(' NOUNSTR ')' ( EQOP NUMBER | INOP NUMSEQ )
| STRLIT ( EQOP | NEQOP ) NOUNSTR
compRange2
::= mathExpr ( EQOP | NEQOP | LTOP | LEOP | GTOP | GEOP ) mathExpr
compRange3
::= mathExpr ( ( LTOP | LEOP ) mathExpr ( LTOP | LEOP ) | ( GTOP | GEOP ) mathExpr ( GTOP | GEOP ) | BETWEENOP mathExpr ANDOP ) mathExpr
mathExpr ::= ( mathExpr ( ADDOP | MINUSOP | MULTOP | DIVOP | REMOP | EXPOP | BITANDOP | BITOROP ) | MINUSOP | ADDOP ) mathExpr
| NOUNSTR ( '(' mathExpr ( ',' mathExpr )? ')' )?
| ( ( ( FROM_UNIXTIME_LOCAL | FROM_UNIXTIME_GMT ) '(' mathExpr | ( TO_UNIXTIME_LOCAL | TO_UNIXTIME_GMT ) '(' STRLIT ) ',' STRLIT | ( ISO_TO_UNIXTIME_LOCAL | ISO_TO_UNIXTIME_GMT )? '(' mathExpr ) ')'
| NUMBER
START ::= qexpr ( END | ';' )
// Tokens
BITOROP ::= "|"
BITANDOP ::= "&"
MINUSOP ::= "-"
EXPOP ::= "^"
ADDOP ::= "+"
MULTOP ::= "*"
DIVOP ::= "/"
REMOP ::= "%"
EXPOP ::= "**"
ASOP ::= [aA][sS]
ONOP ::= [oO][nN]
JOINOP::= [jJ][oO][iI][nN]
USINGOP ::= [uU][sS][iI][nN][gG]
BETWEENOP ::= [bB][eE][tT][wW][eE][eE][nN]
ANDOP ::= [aA][nN][dD]
FORMAT_UNIXTIME_GMT ::= [fF][oO][rR][mM][aA][tT]_[uU][nN][iI][xX][tT][iI][mM][eE]_[gG][mM][tT]
FORMAT_UNIXTIME_LOCAL ::= [fF][oO][rR][mM][aA][tT]_[uU][nN][iI][xX][tT][iI][mM][eE]_[lL][oO][cC][aA][lL]
FORMAT_UNIXTIME_LOCAL ::= [fF][oO][rR][mM][aA][tT]_[uU][nN][iI][xX][tT][iI][mM][eE]
NOTOP ::= "!"
NOTOP ::= "~"
LEOP ::= "<="
NEQOP ::= "!="
NEQOP ::= "<>"
LTOP ::= "<"
GEOP ::= ">="
GTOP ::= ">"
EQOP ::= "="
EQOP ::= "=="
OROP ::= "||"
ANDOP ::= "&&"
ANDNOTOP ::= "&!"
ANDNOTOP ::= "&~"
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.