parsley.debug

package parsley.debug

Members list

Type members

Classlikes

sealed trait FxGUI extends Reusable

ScalaFX (on JavaFX) renderer for debug trees.

ScalaFX (on JavaFX) renderer for debug trees. This frontend provides interactive visuals to explore the parse / debug tree of a parser.

Nodes can be expanded for information or moved around in order to re-organise them, and a live input display will show what part of the input a parser has tried to parse when its respective node is selected.

The primary mouse button (left-click for most users) is used to select nodes to show the parsed input for that node and possibly its result.

The secondary mouse button (right-click for most users) is used to fold or unfold nodes on the tree. It is possible to fold both individual parser nodes (the red / green rectangles) and the named nodes (names on dotted borders).

The Unfold All / Fold All buttons are relatively self-explanatory, as for the zoom bar located above said buttons.

On the side of the window away from the tree display, a node info display and parse input display can be found. The node info display shows more information about a parse attempt (its offsets, result, etc.) and the input display shows where in the input the parse attempt was made, highlighted in bold, green, and underlined text within the rest of the input.

It is recommended that all memory-heavy types (e.g. closures) are not stored explicitly. Consult the documentation on attaching debuggers to find out how to prevent that.

Attributes

Companion
object
Source
FxGUI.scala
Supertypes
trait Reusable
trait DebugView
class Object
trait Matchable
class Any
Known subtypes
object FxGUI
object FxGUI extends Reusable, FxGUI

Attributes

Companion
trait
Source
FxGUI.scala
Supertypes
trait FxGUI
trait Reusable
trait DebugView
class Object
trait Matchable
class Any
Show all
Self type
FxGUI.type
sealed class JsonFormatter extends Reusable

A frontend that emits a JSON-format string representing the parse tree.

A frontend that emits a JSON-format string representing the parse tree.

Unlike most other frontends, this frontend will call a continuation that will have the JSON value passed into after it has been produced by traversing the tree.

This continuation must return unit, as there are not many other ways to make it useful other than making this impure. It is recommended that if one wants to extract multiple inputs from the same frontend with the same continuation, that it is recorded to some kind of list or iterable structure.

It is recommended that all memory-heavy types (e.g. closures) are not stored explicitly. Consult the documentation on attaching debuggers to find out how to prevent that.

Attributes

Companion
object
Source
JsonFormatter.scala
Supertypes
trait Reusable
trait DebugView
class Object
trait Matchable
class Any
Known subtypes
object JsonFormatter

Attributes

Companion
class
Source
JsonFormatter.scala
Supertypes
class Object
trait Matchable
class Any
Self type
final class JsonStringFormatter extends JsonFormatter

A version of JsonFormatter that emits a JSON string instead of a io.circe.Json object.

A version of JsonFormatter that emits a JSON string instead of a io.circe.Json object.

Attributes

Companion
object
Source
JsonFormatter.scala
Supertypes
trait Reusable
trait DebugView
class Object
trait Matchable
class Any
Show all

Attributes

Companion
class
Source
JsonFormatter.scala
Supertypes
class Object
trait Matchable
class Any
Self type