summaryrefslogtreecommitdiff
path: root/src/runtime/c/pgf/parser.h
diff options
context:
space:
mode:
authorkr.angelov <kr.angelov@gmail.com>2013-10-09 12:08:51 +0000
committerkr.angelov <kr.angelov@gmail.com>2013-10-09 12:08:51 +0000
commit8cf03bc5b6895568eb08be1415985a64793bb81c (patch)
tree814e95e1b0422362066fef389e8b03741e8478ad /src/runtime/c/pgf/parser.h
parent20e4970ec19949da10b86facd3c6a5a4abb03acb (diff)
a major redesign in the C runtime. The parser and the linearizer now fully support BIND. The following things are still broken: parseval, word completion, handling 'pre', the robust mode
Diffstat (limited to 'src/runtime/c/pgf/parser.h')
-rw-r--r--src/runtime/c/pgf/parser.h113
1 files changed, 4 insertions, 109 deletions
diff --git a/src/runtime/c/pgf/parser.h b/src/runtime/c/pgf/parser.h
index 5e88b0742..93addbf7f 100644
--- a/src/runtime/c/pgf/parser.h
+++ b/src/runtime/c/pgf/parser.h
@@ -5,119 +5,14 @@
#include <pgf/data.h>
#include <pgf/expr.h>
-/// Parsing
-/** @file
- *
- * @todo Querying the parser for expected continuations
- *
- * @todo Literals and custom categories
- *
- * @todo HOAS, dependent types...
- */
-
-typedef struct PgfParseState PgfParseState;
-
-/** @}
- *
- * @name Parsing a sentence
- *
- * The progress of parsing is controlled by the client code. Firstly, the
- * parsing of a sentence is initiated with #pgf_parser_parse. This returns an
- * initial #PgfParse object, which represents the state of the parsing. A new
- * parse state is obtained by feeding a token with #pgf_parse_token. The old
- * parse state is unaffected by this, so backtracking - and even branching -
- * can be accomplished by retaining the earlier #PgfParse objects.
- *
- * @{
- */
-
-/// Begin parsing
-PgfParseState*
-pgf_parser_init_state(PgfConcr* concr, PgfCId cat, size_t lin_idx,
- double heuristics,
- GuPool* pool, GuPool* out_pool);
-/**<
- * @param parser The parser to use
- *
- * @param cat The identifier of the abstract category to parse
- *
- * @param lin_idx The index of the field of the concrete category to parse
- *
- * @pool
- *
- * @return An initial parsing state.
-*/
-
-
-/// Feed a token to the parser
-PgfParseState*
-pgf_parser_next_state(PgfParseState* prev, PgfToken tok);
-/**<
- * @param parse The current parse state
- *
- * @param tok The token to feed
- *
- * @pool
- *
- * @return A new parse state obtained by feeding \p tok as an input to \p
- * parse, or \c NULL if the token was unexpected.
- *
- * @note The new parse state partially depends on the old one, so it doesn't
- * make sense to use a \p pool argument with a longer lifetime than that of
- * the pool used to create \parse.
- */
-
-GuEnum*
-pgf_parser_completions(PgfParseState* prev, GuString prefix);
-
void
-pgf_parser_add_literal(PgfConcr *concr, PgfCId cat,
- PgfLiteralCallback* callback);
-
-/** @}
- * @name Retrieving abstract syntax trees
- *
- * After the desired tokens have been fed to the parser, the resulting parse
- * state can be queried for completed results. The #pgf_parse_result function
- * returns an enumeration (#GuEnum) of possible abstract syntax trees whose
- * linearization is the sequence of tokens fed so far.
- *
- * @{
- */
+pgf_add_extern_tok(PgfSymbol* psym, PgfToken tok, GuPool* pool);
-/// Retrieve the current parses from the parse state.
-PgfExprEnum*
-pgf_parse_result(PgfParseState* state);
-/**<
- * @param parse A parse state
- *
- * @pool
- *
- * @return An enumeration of #PgfExpr elements representing the abstract
- * syntax trees that would linearize to the sequence of tokens fed to produce
- * \p parse. The enumeration may yield zero, one or more abstract syntax
- * trees, depending on whether the parse was unsuccesful, unambiguously
- * succesful, or ambiguously successful.
- */
-
-// Use this procedure only on your own risk.
-// It is dirty and it will probably be removed or replaced
-// with something else. Currently it is here only for experimental
-// purposes.
void
-pgf_parse_print_chunks(PgfParseState* state);
-
-size_t
-pgf_item_lin_idx(PgfItem* item);
+pgf_add_extern_cat(PgfSymbol* psym, int d, int r, GuPool* pool);
void
-pgf_item_sequence(PgfItem* item,
- size_t* lin_idx, PgfSequence** seq,
- GuPool* pool);
-
-int
-pgf_item_sequence_length(PgfItem* item);
-
-/** @} */
+pgf_parser_add_literal(PgfConcr *concr, PgfCId cat,
+ PgfLiteralCallback* callback);
#endif // PGF_PARSER_H_