Interface IParseableExpression
Representation of the information needed to parse a column or metric from a metric set.
Namespace: Mangrove.Parsing.Abstractions
Assembly: Mangrove.Parsing.dll
Syntax
public interface IParseableExpression
Remarks
Note: IParseableExpression objects do not have to be constructed from deserialized XML or YAML metric set files. For use in, e.g. a language server, they are easy to build in-memory from the contents of a text box.
Properties
View SourceContent
Raw string representation of the syntax defining this expression, e.g.
Avg(a+b)
.
Declaration
string Content { get; }
Property Value
Type | Description |
---|---|
String |
Extern
String representation of the ExternKind that this computation lives in.
Declaration
string Extern { get; }
Property Value
Type | Description |
---|---|
String |
Flag
Used to mark the following "tagged" expressions: DataSourceColumn, Filter, JoinKey, and Aggregand.
Declaration
string Flag { get; }
Property Value
Type | Description |
---|---|
String |
Imports
Namespaces (whether C# or Java / Scala) this expression needs.
Declaration
IReadOnlyList<string> Imports { get; }
Property Value
Type | Description |
---|---|
IReadOnlyList<String> |
Name
Name identifying this expression. Must be unique per Table.
Declaration
string Name { get; }
Property Value
Type | Description |
---|---|
String |
ParsingDirectives
Any pragma-style directives (e.g. ignore specific warnings, or treat specific warnings as errors) for the parser to follow.
Declaration
IReadOnlyList<string> ParsingDirectives { get; }
Property Value
Type | Description |
---|---|
IReadOnlyList<String> |
Resources
The names of resources (DLLs, or JAR files) this expression needs.
Declaration
IReadOnlyList<string> Resources { get; }
Property Value
Type | Description |
---|---|
IReadOnlyList<String> |
Table
Optional name identifying the Table that this expression lives in. For most metric sets, this is the same as the name of the 'level' that this IParseableExpression is known to live at.
Declaration
string Table { get; }
Property Value
Type | Description |
---|---|
String |
Remarks
Every IParseableExpression must either be declared to live in some IParseableTable, or have an inferable IParseableTable. That means even metrics have to live in some kind of 'output' table.
Type
Type hint, if provided.
Declaration
string Type { get; set; }
Property Value
Type | Description |
---|---|
String |