/// public static NeuNode?GetBinding( this NeuPatternBinding patternBinding) { var patternReached = false; /// foreach (var c in patternBinding.Children) { switch (c) { case NeuPattern _ when !patternReached: // only toggle on a single pattern patternReached = true; break; /// case NeuTypeAnnotation _: break; /// case NeuNode n when patternReached: return(n); /// default: break; } } /// return(null); }
/// public static NeuOperation Execute( this NeuInterpreter interpreter, bool inGlobalScope, NeuKeyword kindKeyword, NeuPatternBinding patternBinding) { var pattern = patternBinding.GetPattern(); if (pattern == null) { throw new Exception(); } /// var binding = patternBinding.GetBinding(); if (binding == null) { throw new Exception(); } /// switch (true) { case var _ when pattern is NeuIdentifierPattern idPattern && binding is NeuInitClause initClause: return(interpreter.Execute(inGlobalScope, kindKeyword, idPattern, initClause)); /// default: throw new Exception(); } }
public static bool EndsWithNewline( this NeuPatternBinding patternBinding) { var s = patternBinding.Children.FirstOrDefault()?.Start; if (s == null) { throw new Exception(); } /// var e = patternBinding.Children.LastOrDefault()?.End; if (e == null) { throw new Exception(); } /// return(e.LineNumber > s.LineNumber); }
/// public static NeuPattern?GetPattern( this NeuPatternBinding patternBinding) { return(patternBinding.GetFirstOrDefault <NeuPattern>()); }