protected static bool IsWhiteSpace(PiToken piToken) { switch (piToken.Type) { case EPiToken.Whitespace: case EPiToken.Tab: case EPiToken.NewLine: return(true); } return(false); }
private bool ColorisePiToken(PiToken tok, Slice slice) { if (slice.Length < 0) { return(false); } bool Render(Color color) => SetPiSliceColor(slice, color, _defaultFont); bool RenderBold(Color color) => SetPiSliceColor(slice, color, _boldFont); switch (tok.Type) { case EPiToken.Assert: return(RenderBold(Color.DarkMagenta)); // operators case EPiToken.Plus: case EPiToken.Minus: case EPiToken.Multiply: case EPiToken.Divide: //case EPiToken.Modulo: case EPiToken.And: case EPiToken.Or: case EPiToken.Xor: case EPiToken.Equiv: case EPiToken.GreaterEquiv: case EPiToken.Less: case EPiToken.LessEquiv: return(Render(Color.SteelBlue)); case EPiToken.String: // color the quotes too var expanded = new Slice(slice.Lexer, slice.LineNumber, slice.Start - 1, slice.End + 1); return(SetSliceColor(piInput, expanded, Color.Blue, _boldFont)); case EPiToken.Int: return(Render(Color.Brown)); case EPiToken.Float: return(Render(Color.Chocolate)); case EPiToken.Ident: return(RenderBold(Color.DarkSlateBlue)); case EPiToken.Quote: return(Render(Color.Gray)); case EPiToken.New: case EPiToken.Delete: case EPiToken.Swap: case EPiToken.Drop: case EPiToken.DropN: case EPiToken.Depth: case EPiToken.Clear: case EPiToken.Rot: case EPiToken.RotN: case EPiToken.Expand: case EPiToken.Size: case EPiToken.Dup: case EPiToken.GetType: return(Render(Color.DarkOliveGreen)); case EPiToken.Comment: return(Render(Color.Gray)); case EPiToken.ToList: case EPiToken.ToArray: case EPiToken.ToMap: case EPiToken.ToSet: return(Render(Color.DarkGreen)); default: return(Render(DefaultForeColor)); } }