mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-03 16:22:52 -06:00
Prelude.CAPIT is now a built-in primitive. It still generates &| in the Haskell runtime but will be intepreted in the C runtime
This commit is contained in:
@@ -204,6 +204,7 @@ typedef enum {
|
||||
PGF_SYMBOL_KP,
|
||||
PGF_SYMBOL_BIND,
|
||||
PGF_SYMBOL_SOFT_BIND,
|
||||
PGF_SYMBOL_CAPIT,
|
||||
PGF_SYMBOL_NE
|
||||
} PgfSymbolTag;
|
||||
|
||||
@@ -238,6 +239,9 @@ typedef struct {
|
||||
typedef struct {
|
||||
} PgfSymbolBIND;
|
||||
|
||||
typedef struct {
|
||||
} PgfSymbolCAPIT;
|
||||
|
||||
typedef GuBuf PgfProductionIdx;
|
||||
|
||||
typedef struct {
|
||||
|
||||
@@ -904,6 +904,8 @@ pgf_lzr_linearize_symbols(PgfLzr* lzr, PgfCncTreeApp* fapp,
|
||||
}
|
||||
break;
|
||||
}
|
||||
case PGF_SYMBOL_CAPIT:
|
||||
break;
|
||||
default:
|
||||
gu_impossible();
|
||||
}
|
||||
|
||||
@@ -137,6 +137,8 @@ pgf_prev_extern_sym(PgfSymbol sym)
|
||||
case PGF_SYMBOL_BIND:
|
||||
case PGF_SYMBOL_SOFT_BIND:
|
||||
return *((PgfSymbol*) (((PgfSymbolBIND*) i.data)+1));
|
||||
case PGF_SYMBOL_CAPIT:
|
||||
return *((PgfSymbol*) (((PgfSymbolCAPIT*) i.data)+1));
|
||||
case PGF_SYMBOL_NE:
|
||||
return *((PgfSymbol*) (((PgfSymbolNE*) i.data)+1));
|
||||
default:
|
||||
@@ -1147,6 +1149,9 @@ pgf_symbols_cmp(GuString* psent, size_t sent_len, BIND_TYPE* pbind, PgfSymbols*
|
||||
*pbind = BIND_SOFT;
|
||||
break;
|
||||
}
|
||||
case PGF_SYMBOL_CAPIT: {
|
||||
break;
|
||||
}
|
||||
case PGF_SYMBOL_NE: {
|
||||
return -2;
|
||||
}
|
||||
@@ -1719,6 +1724,9 @@ pgf_parsing_symbol(PgfParsing* ps, PgfItem* item, PgfSymbol sym)
|
||||
}
|
||||
break;
|
||||
}
|
||||
case PGF_SYMBOL_CAPIT: {
|
||||
break;
|
||||
}
|
||||
default:
|
||||
gu_impossible();
|
||||
}
|
||||
|
||||
@@ -276,6 +276,10 @@ pgf_print_symbol(PgfSymbol sym, GuOut *out, GuExn *err)
|
||||
gu_puts("SOFT_BIND", out, err);
|
||||
break;
|
||||
}
|
||||
case PGF_SYMBOL_CAPIT: {
|
||||
gu_puts("CAPIT", out, err);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
gu_impossible();
|
||||
}
|
||||
|
||||
@@ -709,6 +709,13 @@ pgf_read_symbol(PgfReader* rdr)
|
||||
gu_return_on_exn(rdr->err, gu_null_variant);
|
||||
break;
|
||||
}
|
||||
case PGF_SYMBOL_CAPIT: {
|
||||
gu_new_variant(PGF_SYMBOL_CAPIT,
|
||||
PgfSymbolCAPIT,
|
||||
&sym, rdr->opool);
|
||||
gu_return_on_exn(rdr->err, gu_null_variant);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
pgf_read_tag_error(rdr);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user