Class MethodOperatorGenerator
java.lang.Object
org.ek9lang.compiler.fuzz.MethodOperatorGenerator
Generates method and operator declarations for fuzzing.
Produces methods with varying access modifiers, parameter counts, return types,
and body complexity. Generates operators with correct, random, or deliberately invalid
semantics to exercise compiler error detection (E07300-E07640).
Extracted from AtnBasedGenerator — the method/operator generation cluster.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription(package private) voidappendArgumentParams(StringBuilder sb, int indent, List<AtnBasedGenerator.ParamInfo> params) Emit an argument param block with correct EK9 syntax.(package private) voidappendArgumentParams(StringBuilder sb, int indent, List<AtnBasedGenerator.ParamInfo> params, Random random) (package private) voidappendMethod(StringBuilder sb, int indent, boolean isAbstract, Set<String> usedMethodNames, Set<String> controlFlow, Random random) (package private) AtnBasedGenerator.MethodInfoappendMethodWithAccess(StringBuilder sb, int indent, boolean isAbstract, Set<String> usedMethodNames, Set<String> controlFlow, Random random) Append a method with random access modifier and return its MethodInfo for the registry.(package private) voidappendOperator(StringBuilder sb, int indent, String typeName, Set<String> controlFlow, Random random) (package private) List<AtnBasedGenerator.ParamInfo> buildSimpleParams(int numParams, Random random) Build a ParamInfo list from count and types (for simple non-call-chain generation).
-
Constructor Details
-
MethodOperatorGenerator
MethodOperatorGenerator(GenerationContext ctx, AtnBasedGenerator generator)
-
-
Method Details
-
appendMethod
-
appendMethodWithAccess
AtnBasedGenerator.MethodInfo appendMethodWithAccess(StringBuilder sb, int indent, boolean isAbstract, Set<String> usedMethodNames, Set<String> controlFlow, Random random) Append a method with random access modifier and return its MethodInfo for the registry. Access distribution: ~60% public, ~20% private, ~10% protected, ~10% pure. -
appendOperator
void appendOperator(StringBuilder sb, int indent, String typeName, Set<String> controlFlow, Random random) -
appendArgumentParams
Emit an argument param block with correct EK9 syntax. Single param: -> name as Type Multi param: -> name1 as Type1 name2 as Type2 -
appendArgumentParams
void appendArgumentParams(StringBuilder sb, int indent, List<AtnBasedGenerator.ParamInfo> params, Random random) -
buildSimpleParams
Build a ParamInfo list from count and types (for simple non-call-chain generation).
-