Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/design.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ jqsharp/
├── src/
│ ├── JQSharp/
│ │ ├── JQSharp.csproj # Library — net10.0, System.Text.Json only
│ │ ├── Jq.cs # Public façade: Evaluate() and Parse()
│ │ ├── Jq.cs # Public façade: Evaluate() (with internal Parse())
│ │ ├── JqParser.cs # Recursive-descent parser
│ │ ├── JqFilter.cs # Abstract base class for all filter nodes
│ │ ├── JqEnvironment.cs # Immutable variable/filter-binding environment
Expand Down
2 changes: 1 addition & 1 deletion src/JQSharp/FilterClosure.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@

namespace Devlooped;

public sealed record FilterClosure(JqFilter Filter, JqEnvironment CapturedEnv);
sealed record FilterClosure(JqFilter Filter, JqEnvironment CapturedEnv);
2 changes: 1 addition & 1 deletion src/JQSharp/Filters/AlternativeFilter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace Devlooped;

public sealed class AlternativeFilter : JqFilter
sealed class AlternativeFilter : JqFilter
{
readonly JqFilter left;
readonly JqFilter right;
Expand Down
2 changes: 1 addition & 1 deletion src/JQSharp/Filters/ArrayFilter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace Devlooped;

public sealed class ArrayFilter : JqFilter
sealed class ArrayFilter : JqFilter
{
readonly JqFilter inner;

Expand Down
2 changes: 1 addition & 1 deletion src/JQSharp/Filters/BinaryOp.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace Devlooped;

public enum BinaryOp
enum BinaryOp
{
Add,
Subtract,
Expand Down
2 changes: 1 addition & 1 deletion src/JQSharp/Filters/BinaryOpFilter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

namespace Devlooped;

public sealed class BinaryOpFilter : JqFilter
sealed class BinaryOpFilter : JqFilter
{
readonly JqFilter left;
readonly BinaryOp op;
Expand Down
2 changes: 1 addition & 1 deletion src/JQSharp/Filters/BindingFilter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace Devlooped;

public sealed class BindingFilter(JqFilter expression, JqPattern pattern, JqFilter body) : JqFilter
sealed class BindingFilter(JqFilter expression, JqPattern pattern, JqFilter body) : JqFilter
{
public override IEnumerable<JsonElement> Evaluate(JsonElement input, JqEnvironment env)
{
Expand Down
2 changes: 1 addition & 1 deletion src/JQSharp/Filters/BreakFilter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace Devlooped;

public sealed class BreakFilter(string labelName) : JqFilter
sealed class BreakFilter(string labelName) : JqFilter
{
public override IEnumerable<JsonElement> Evaluate(JsonElement input, JqEnvironment env)
{
Expand Down
2 changes: 1 addition & 1 deletion src/JQSharp/Filters/BuiltinFilter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

namespace Devlooped;

public sealed class BuiltinFilter : JqFilter
sealed class BuiltinFilter : JqFilter
{
static readonly HashSet<string> builtinNames = new(StringComparer.Ordinal)
{
Expand Down
2 changes: 1 addition & 1 deletion src/JQSharp/Filters/CommaFilter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace Devlooped;

public sealed class CommaFilter : JqFilter
sealed class CommaFilter : JqFilter
{
readonly JqFilter left;
readonly JqFilter right;
Expand Down
2 changes: 1 addition & 1 deletion src/JQSharp/Filters/ConditionalFilter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace Devlooped;

public sealed class ConditionalFilter : JqFilter
sealed class ConditionalFilter : JqFilter
{
readonly JqFilter condition;
readonly JqFilter thenBranch;
Expand Down
2 changes: 1 addition & 1 deletion src/JQSharp/Filters/DestructuringAlternativeFilter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace Devlooped;

public sealed class DestructuringAlternativeFilter(JqFilter expression, JqPattern[] patterns, JqFilter body) : JqFilter
sealed class DestructuringAlternativeFilter(JqFilter expression, JqPattern[] patterns, JqFilter body) : JqFilter
{
public override IEnumerable<JsonElement> Evaluate(JsonElement input, JqEnvironment env)
{
Expand Down
2 changes: 1 addition & 1 deletion src/JQSharp/Filters/DynamicIndexFilter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace Devlooped;

public sealed class DynamicIndexFilter : JqFilter
sealed class DynamicIndexFilter : JqFilter
{
readonly JqFilter? source;
readonly JqFilter indexExpression;
Expand Down
2 changes: 1 addition & 1 deletion src/JQSharp/Filters/FieldFilter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace Devlooped;

public sealed class FieldFilter : JqFilter
sealed class FieldFilter : JqFilter
{
readonly string field;

Expand Down
2 changes: 1 addition & 1 deletion src/JQSharp/Filters/FilterArgRefFilter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace Devlooped;

public sealed class FilterArgRefFilter(string paramName) : JqFilter
sealed class FilterArgRefFilter(string paramName) : JqFilter
{
public override IEnumerable<JsonElement> Evaluate(JsonElement input, JqEnvironment env)
{
Expand Down
2 changes: 1 addition & 1 deletion src/JQSharp/Filters/ForeachFilter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace Devlooped;

public sealed class ForeachFilter(JqFilter expression, JqPattern pattern, JqFilter init, JqFilter update, JqFilter? extract) : JqFilter
sealed class ForeachFilter(JqFilter expression, JqPattern pattern, JqFilter init, JqFilter update, JqFilter? extract) : JqFilter
{
public override IEnumerable<JsonElement> Evaluate(JsonElement input, JqEnvironment env)
{
Expand Down
2 changes: 1 addition & 1 deletion src/JQSharp/Filters/FormatFilter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

namespace Devlooped;

public sealed class FormatFilter : JqFilter
sealed class FormatFilter : JqFilter
{
public static readonly HashSet<string> FormatNames = new(StringComparer.Ordinal)
{
Expand Down
2 changes: 1 addition & 1 deletion src/JQSharp/Filters/FormattedStringFilter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ namespace Devlooped;

// Handles @format "string\(expr)" syntax.
// Literal parts are NOT formatted; only interpolated expression values are.
public sealed class FormattedStringFilter : JqFilter
sealed class FormattedStringFilter : JqFilter
{
readonly string formatName;
readonly (string? Literal, JqFilter? Expression)[] parts;
Expand Down
2 changes: 1 addition & 1 deletion src/JQSharp/Filters/IdentityFilter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace Devlooped;

public sealed class IdentityFilter : JqFilter
sealed class IdentityFilter : JqFilter
{
public override IEnumerable<JsonElement> Evaluate(JsonElement input, JqEnvironment env)
{
Expand Down
2 changes: 1 addition & 1 deletion src/JQSharp/Filters/IndexFilter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace Devlooped;

public sealed class IndexFilter : JqFilter
sealed class IndexFilter : JqFilter
{
readonly int index;

Expand Down
2 changes: 1 addition & 1 deletion src/JQSharp/Filters/IterateFilter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace Devlooped;

public sealed class IterateFilter : JqFilter
sealed class IterateFilter : JqFilter
{
public override IEnumerable<JsonElement> Evaluate(JsonElement input, JqEnvironment env)
{
Expand Down
2 changes: 1 addition & 1 deletion src/JQSharp/Filters/LabelFilter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace Devlooped;

public sealed class LabelFilter(string labelName, JqFilter body) : JqFilter
sealed class LabelFilter(string labelName, JqFilter body) : JqFilter
{
public override IEnumerable<JsonElement> Evaluate(JsonElement input, JqEnvironment env)
{
Expand Down
2 changes: 1 addition & 1 deletion src/JQSharp/Filters/LiteralFilter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace Devlooped;

public sealed class LiteralFilter : JqFilter
sealed class LiteralFilter : JqFilter
{
readonly JsonElement value;

Expand Down
2 changes: 1 addition & 1 deletion src/JQSharp/Filters/NegateFilter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace Devlooped;

public sealed class NegateFilter : JqFilter
sealed class NegateFilter : JqFilter
{
readonly JqFilter inner;

Expand Down
2 changes: 1 addition & 1 deletion src/JQSharp/Filters/NotFilter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace Devlooped;

public sealed class NotFilter : JqFilter
sealed class NotFilter : JqFilter
{
public override IEnumerable<JsonElement> Evaluate(JsonElement input, JqEnvironment env)
{
Expand Down
2 changes: 1 addition & 1 deletion src/JQSharp/Filters/ObjectFilter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace Devlooped;

public sealed class ObjectFilter : JqFilter
sealed class ObjectFilter : JqFilter
{
readonly (JqFilter Key, JqFilter Value)[] pairs;

Expand Down
2 changes: 1 addition & 1 deletion src/JQSharp/Filters/ParameterizedFilter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

namespace Devlooped;

public sealed class ParameterizedFilter : JqFilter
sealed class ParameterizedFilter : JqFilter
{
static readonly HashSet<string> knownNames = new(StringComparer.Ordinal)
{
Expand Down
2 changes: 1 addition & 1 deletion src/JQSharp/Filters/PipeFilter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace Devlooped;

public sealed class PipeFilter : JqFilter
sealed class PipeFilter : JqFilter
{
readonly JqFilter left;
readonly JqFilter right;
Expand Down
2 changes: 1 addition & 1 deletion src/JQSharp/Filters/RecurseFilter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace Devlooped;

public sealed class RecurseFilter : JqFilter
sealed class RecurseFilter : JqFilter
{
public override IEnumerable<JsonElement> Evaluate(JsonElement input, JqEnvironment env)
{
Expand Down
2 changes: 1 addition & 1 deletion src/JQSharp/Filters/ReduceFilter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace Devlooped;

public sealed class ReduceFilter(JqFilter expression, JqPattern pattern, JqFilter init, JqFilter update) : JqFilter
sealed class ReduceFilter(JqFilter expression, JqPattern pattern, JqFilter init, JqFilter update) : JqFilter
{
public override IEnumerable<JsonElement> Evaluate(JsonElement input, JqEnvironment env)
{
Expand Down
2 changes: 1 addition & 1 deletion src/JQSharp/Filters/SliceFilter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace Devlooped;

public sealed class SliceFilter : JqFilter
sealed class SliceFilter : JqFilter
{
readonly int? start;
readonly int? end;
Expand Down
2 changes: 1 addition & 1 deletion src/JQSharp/Filters/StringInterpolationFilter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

namespace Devlooped;

public sealed class StringInterpolationFilter : JqFilter
sealed class StringInterpolationFilter : JqFilter
{
readonly (string? Literal, JqFilter? Expression)[] parts;

Expand Down
2 changes: 1 addition & 1 deletion src/JQSharp/Filters/TryCatchFilter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace Devlooped;

public sealed class TryCatchFilter : JqFilter
sealed class TryCatchFilter : JqFilter
{
readonly JqFilter body;
readonly JqFilter catchFilter;
Expand Down
2 changes: 1 addition & 1 deletion src/JQSharp/Filters/UserFunctionCallFilter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace Devlooped;

public sealed class UserFunctionCallFilter(UserFunctionDef funcDef, JqFilter[] args) : JqFilter
sealed class UserFunctionCallFilter(UserFunctionDef funcDef, JqFilter[] args) : JqFilter
{
public override IEnumerable<JsonElement> Evaluate(JsonElement input, JqEnvironment env)
{
Expand Down
2 changes: 1 addition & 1 deletion src/JQSharp/Filters/UserFunctionDef.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace Devlooped;

public sealed class UserFunctionDef
sealed class UserFunctionDef
{
public string Name { get; }
public string[] ParamNames { get; }
Expand Down
2 changes: 1 addition & 1 deletion src/JQSharp/Filters/VariableFilter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

namespace Devlooped;

public sealed class VariableFilter(string name) : JqFilter
sealed class VariableFilter(string name) : JqFilter
{
public override IEnumerable<JsonElement> Evaluate(JsonElement input, JqEnvironment env)
{
Expand Down
2 changes: 1 addition & 1 deletion src/JQSharp/Jq.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public static IEnumerable<JsonElement> Evaluate(string expression, JsonElement i
yield return result.Clone();
}

public static JqFilter Parse(string expression)
internal static JqFilter Parse(string expression)
{
if (string.IsNullOrWhiteSpace(expression))
throw new JqException("Filter expression cannot be empty.");
Expand Down
2 changes: 1 addition & 1 deletion src/JQSharp/JqBreakException.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace Devlooped;

public sealed class JqBreakException(string label) : Exception("break")
sealed class JqBreakException(string label) : Exception("break")
{
public string Label { get; } = label;
}
2 changes: 1 addition & 1 deletion src/JQSharp/JqEnvironment.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

namespace Devlooped;

public sealed class JqEnvironment
sealed class JqEnvironment
{
public static readonly JqEnvironment Empty = new(
ImmutableDictionary<string, JsonElement>.Empty.WithComparers(StringComparer.Ordinal),
Expand Down
10 changes: 5 additions & 5 deletions src/JQSharp/JqFilter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

namespace Devlooped;

public abstract class JqFilter
abstract class JqFilter
{
public abstract IEnumerable<JsonElement> Evaluate(JsonElement input, JqEnvironment env);

Expand All @@ -25,7 +25,7 @@ protected static JsonElement CreateElement(Action<Utf8JsonWriter> write)

protected static JsonElement CreateNullElement() => CreateElement(static writer => writer.WriteNullValue());

public static JsonElement CreateNullElementStatic() => CreateNullElement();
internal static JsonElement CreateNullElementStatic() => CreateNullElement();

protected static JsonElement CreateStringElement(string value) => CreateElement(writer => writer.WriteStringValue(value));

Expand Down Expand Up @@ -157,7 +157,7 @@ protected internal static int CompareElements(JsonElement left, JsonElement righ
};
}

public static bool StructurallyEqual(JsonElement a, JsonElement b)
internal static bool StructurallyEqual(JsonElement a, JsonElement b)
{
if (a.ValueKind != b.ValueKind)
return false;
Expand Down Expand Up @@ -229,9 +229,9 @@ protected static string GetTypeName(JsonElement element)

protected static string GetValueText(JsonElement element) => element.GetRawText();

public static string GetTypeNameStatic(JsonElement element) => GetTypeName(element);
internal static string GetTypeNameStatic(JsonElement element) => GetTypeName(element);

public static string GetValueTextStatic(JsonElement element) => GetValueText(element);
internal static string GetValueTextStatic(JsonElement element) => GetValueText(element);

static int CompareArrays(JsonElement leftValue, JsonElement rightValue)
{
Expand Down
2 changes: 1 addition & 1 deletion src/JQSharp/JqHaltException.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace Devlooped;

public sealed class JqHaltException : Exception
sealed class JqHaltException : Exception
{
public int ExitCode { get; }

Expand Down
Loading