From a8eeb497670fb0f2ffab1f9b070808df965415be Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Mon, 7 Aug 2017 16:39:19 +0200 Subject: the linearizer API now allows to detect metavariables. This is used for instancein the lookup where the tokens produced from the metavariables are interpreted as distinct from all other tokens. --- src/runtime/dotNet/Bracket.cs | 7 ++++++- src/runtime/dotNet/Native.cs | 6 ++++++ 2 files changed, 12 insertions(+), 1 deletion(-) (limited to 'src/runtime/dotNet') diff --git a/src/runtime/dotNet/Bracket.cs b/src/runtime/dotNet/Bracket.cs index 8fa005704..1fc4c0db7 100644 --- a/src/runtime/dotNet/Bracket.cs +++ b/src/runtime/dotNet/Bracket.cs @@ -52,7 +52,8 @@ namespace PGFSharp end_phrase = EndPhrase, symbol_ne = null, symbol_bind = null, - symbol_capit = null + symbol_capit = null, + symbol_meta = SymbolMeta }; } @@ -80,6 +81,10 @@ namespace PGFSharp else stack.Peek ().AddChild (b); } + + private void SymbolMeta(IntPtr self, int meta_id) { + stack.Peek().AddChild(new StringChildBracket("?")); + } public Bracket Build() { return final; diff --git a/src/runtime/dotNet/Native.cs b/src/runtime/dotNet/Native.cs index 346f85905..5c750e010 100644 --- a/src/runtime/dotNet/Native.cs +++ b/src/runtime/dotNet/Native.cs @@ -221,6 +221,9 @@ namespace PGFSharp [UnmanagedFunctionPointer(CallingConvention.Cdecl)] public delegate void LinFuncSymbolCapitalization(IntPtr self); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] + public delegate void LinFuncSymbolMeta(IntPtr self, int meta_id); + [StructLayout(LayoutKind.Sequential)] public struct PgfLinFuncs { @@ -241,6 +244,9 @@ namespace PGFSharp [MarshalAs(UnmanagedType.FunctionPtr)] public LinFuncSymbolCapitalization symbol_capit; + + [MarshalAs(UnmanagedType.FunctionPtr)] + public LinFuncSymbolMeta symbol_meta; } #endregion -- cgit v1.2.3