diff options
| author | kr.angelov <kr.angelov@gmail.com> | 2012-12-19 09:17:24 +0000 |
|---|---|---|
| committer | kr.angelov <kr.angelov@gmail.com> | 2012-12-19 09:17:24 +0000 |
| commit | a28ccc965c0031090dabe6f65b90281de827b53a (patch) | |
| tree | 52eae1ed9ae6de5e2b05ba21b9f1363c9b19955a /src/runtime/c/pgf/linearize.h | |
| parent | 490a3f22868a5f0baaf67b204922b3abf5f2ed3c (diff) | |
rename linearize.{h/c} to linearizer.{h/c} which follows the convention used in parser.c and reasoner.c
Diffstat (limited to 'src/runtime/c/pgf/linearize.h')
| -rw-r--r-- | src/runtime/c/pgf/linearize.h | 122 |
1 files changed, 0 insertions, 122 deletions
diff --git a/src/runtime/c/pgf/linearize.h b/src/runtime/c/pgf/linearize.h deleted file mode 100644 index c3a1cc2ca..000000000 --- a/src/runtime/c/pgf/linearize.h +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Copyright 2010-2011 University of Helsinki. - * - * This file is part of libpgf. - * - * Libpgf is free software: you can redistribute it and/or modify it under - * the terms of the GNU Lesser General Public License as published by the - * Free Software Foundation, either version 3 of the License, or (at your - * option) any later version. - * - * Libpgf is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public - * License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with libpgf. If not, see <http://www.gnu.org/licenses/>. - */ - -#include <gu/type.h> -#include <gu/dump.h> -#include <gu/enum.h> -#include <pgf/data.h> - -/// Linearization of abstract syntax trees. -/// @file - -/** @} - * - * @name Enumerating concrete syntax trees - * - * Because of the \c variants construct in GF, there may be several - * possible concrete syntax trees that correspond to a given abstract - * syntax tree. These can be enumerated with #pgf_lzr_concretize and - * #pgf_cnc_trees_next. - * - * @{ - */ - - -/// A concrete syntax tree -typedef GuVariant PgfCncTree; - -/// An enumeration of #PgfCncTree trees. -typedef GuEnum PgfCncTreeEnum; - -/// Begin enumerating concrete syntax variants. -PgfCncTreeEnum* -pgf_lzr_concretize(PgfConcr* concr, PgfExpr expr, GuPool* pool); - -/** @} - * - * @name Linearizing concrete syntax trees - * - * An individual concrete syntax tree has several different - * linearizations, corresponding to the various fields and cases of - * corresponding GF values. The number of these linearizations, called - * the \e dimension of the tree, can be retrieved with - * #pgf_cnc_tree_dimension. - * - * A single linearization of a concrete syntax tree is performed by - * #pgf_lzr_linearize. The linearization is realized as a sequence of - * events that are notified by calling the functions of a #PgfLinFuncs - * structure that the client provides. - * - * @{ - */ - -/// Callback functions for linearization. -typedef struct PgfLinFuncs PgfLinFuncs; - -struct PgfLinFuncs -{ - /// Output tokens - void (*symbol_tokens)(PgfLinFuncs** self, PgfTokens toks); - - void (*symbol_expr)(PgfLinFuncs** self, - int argno, PgfExpr expr, int lin_idx); - - /// Begin application - void (*expr_apply)(PgfLinFuncs** self, PgfCId cid, int n_args); - - /// Output literal - void (*expr_literal)(PgfLinFuncs** self, PgfLiteral lit); - - void (*abort)(PgfLinFuncs** self); - void (*finish)(PgfLinFuncs** self); -}; - - - - - -/// Linearize a concrete syntax tree. -void -pgf_lzr_linearize(PgfConcr* concr, PgfCncTree ctree, size_t lin_idx, - PgfLinFuncs** fnsp); - - -/// Linearize a concrete syntax tree as space-separated tokens. -void -pgf_lzr_linearize_simple(PgfConcr* concr, PgfCncTree ctree, - size_t lin_idx, GuWriter* wtr, GuExn* err); - - -/// Return the dimension of a concrete syntax tree. -int -pgf_cnc_tree_dimension(PgfCncTree ctree); -/**< - * @param ctree A concrete syntax tree. - * - * @return The dimension of the tree, i.e. the number of different - * linearizations the tree has. - */ - -//@} - - - -extern GuTypeTable -pgf_linearize_dump_table; - |
