Skip to content
Snippets Groups Projects
Commit e53b54f4 authored by René Schöne's avatar René Schöne
Browse files

working on concise grammar

- update YAML generation (again)
parent a14db74f
No related branches found
No related tags found
2 merge requests!22Resolve "Feature: Add context-free connect",!21Resolve "Make grammar(s) more concise"
Pipeline #12019 passed
// aspect MustacheNodesToYAML { aspect MustacheNodesToYAML {
// syn Document MRagConnect.toYAML() { syn Document RagConnect.toYAML() {
// Document doc = new Document(); Document doc = new Document();
// MappingElement root = new MappingElement(); MappingElement root = new MappingElement();
// root.put("rootNodeName", rootNodeName()); root.put("rootNodeName", rootNodeName());
// root.put("closeMethod", closeMethod()); root.put("closeMethodName", closeMethodName());
// root.put("usesMqtt", usesMqtt); root.put("loggingEnabledForReads", loggingEnabledForReads());
// root.put("usesRest", usesRest); root.put("loggingEnabledForWrites", loggingEnabledForWrites());
// // mqtt
// root.put("mqttHandlerField", mqttHandlerField()); // rootTypeComponents
// root.put("mqttHandlerAttribute", mqttHandlerAttribute()); ListElement rootTypeComponents = new ListElement();
// root.put("mqttSetupWaitUntilReadyMethod", mqttSetupWaitUntilReadyMethod()); for (TypeComponent comp : rootTypeComponents()) {
// MappingElement inner = new MappingElement();
// // rootTypeComponents rootTypeComponents.addElement(inner);
// ListElement rootTypeComponents = new ListElement(); }
// for (MTypeComponent comp : getRootTypeComponentList()) { root.put("RootTypeComponents", rootTypeComponents);
// MappingElement inner = new MappingElement();
// inner.put("first", comp.isFirst()); // allEndpointDefinitionList
// inner.put("name", comp.name()); ListElement endpointDefinitions = new ListElement();
// rootTypeComponents.addElement(inner); for (EndpointDefinition def : allEndpointDefinitionList()) {
// } endpointDefinitions.addElement(def.toYAML());
// root.put("RootTypeComponents", rootTypeComponents); }
// root.put("allEndpointDefinitionList", endpointDefinitions);
// // rest
// root.put("restHandlerField", restHandlerField()); // allMappingDefinitions
// root.put("restHandlerAttribute", restHandlerAttribute()); ListElement mappingDefinitions = new ListElement();
// for (MappingDefinition def : allMappingDefinitions()) {
// // TokenReceiveDefinitions mappingDefinitions.addElement(def.toYAML());
// ListElement receiveDefinitions = new ListElement(); }
// for (MTokenReceiveDefinition def : getTokenReceiveDefinitionList()) { root.put("allMappingDefinitions", mappingDefinitions);
// receiveDefinitions.addElement(def.toYAML());
// } // allDependencyDefinitionList
// root.put("TokenReceiveDefinitions", receiveDefinitions); ListElement dependencyDefinitions = new ListElement();
// for (DependencyDefinition def : allDependencyDefinitionList()) {
// // TokenSendDefinitions dependencyDefinitions.addElement(def.toYAML());
// ListElement sendDefinitions = new ListElement(); }
// for (MTokenSendDefinition def : getTokenSendDefinitionList()) { root.put("allDependencyDefinitionList", dependencyDefinitions);
// sendDefinitions.addElement(def.toYAML());
// } // tokenComponentsThatNeedProxy
// root.put("TokenSendDefinitions", sendDefinitions); ListElement tokenComponents = new ListElement();
// for (TokenComponent comp : tokenComponentsThatNeedProxy()) {
// // TypeReceiveDefinitions tokenComponents.addElement(comp.toYAML());
// ListElement typeReceiveDefinitions = new ListElement(); }
// for (MTypeReceiveDefinition def : getTypeReceiveDefinitionList()) { root.put("tokenComponentsThatNeedProxy", tokenComponents);
// typeReceiveDefinitions.addElement(def.toYAML());
// } // Handlers
// root.put("TypeReceiveDefinitions", typeReceiveDefinitions); ListElement handlers = new ListElement();
// for (Handler handler : getHandlerList()) {
// // TypeSendDefinitions handlers.add(handler.toYAML()
// ListElement typeSendDefinitions = new ListElement(); // .put("rootTypeComponents", rootTypeComponents.treeCopy())
// for (MTypeSendDefinition def : getTypeSendDefinitionList()) { // .put("hasRootTypeComponents", hasRootTypeComponents())
// typeSendDefinitions.addElement(def.toYAML()); );
// } }
// root.put("TypeSendDefinitions", typeSendDefinitions); root.put("Handlers", handlers);
// root.put("mqttHandler", mqttHandler().toYAML());
// // MappingDefinitions root.put("restHandler", restHandler().toYAML());
// ListElement mappingDefinitions = new ListElement();
// for (MMappingDefinition def : getMappingDefinitionList()) { doc.setRootElement(root);
// mappingDefinitions.addElement(def.toYAML()); return doc;
// } }
// root.put("MappingDefinitions", mappingDefinitions);
// syn MappingElement EndpointDefinition.toYAML() {
// // DependencyDefinitions MappingElement result = new MappingElement();
// ListElement dependencyDefinitions = new ListElement(); result.put("AlwaysApply", getAlwaysApply());
// for (MDependencyDefinition def : getDependencyDefinitionList()) { result.put("IndexBasedListAccess", getIndexBasedListAccess());
// dependencyDefinitions.addElement(def.toYAML()); result.put("WithAdd", getWithAdd());
// } result.put("Send", getSend());
// root.put("DependencyDefinitions", dependencyDefinitions); result.put("preemptiveExpectedValue", preemptiveExpectedValue());
// result.put("preemptiveReturn", preemptiveReturn());
// // TokenComponents result.put("firstInputVarName", firstInputVarName());
// ListElement tokenComponents = new ListElement(); result.put("updateMethodName", updateMethodName());
// for (MTokenComponent comp : getTokenComponentList()) { result.put("writeMethodName", writeMethodName());
// tokenComponents.addElement(comp.toYAML()); result.put("parentTypeName", parentTypeName());
// } result.put("entityName", entityName());
// root.put("TokenComponents", tokenComponents); result.put("getterMethodName", getterMethodName());
// result.put("uniqueSuffix", uniqueSuffix());
// // Handlers result.put("connectParameterName", connectParameterName());
// ListElement handlers = new ListElement(); result.put("connectMethodName", connectMethodName());
// for (MHandler handler : getHandlerList()) { result.put("internalConnectMethodName", internalConnectMethodName());
// handlers.add(handler.toYAML() result.put("disconnectMethodName", disconnectMethodName());
// .put("rootTokenComponents", rootTypeComponents.treeCopy()) ); result.put("typeDeclName", typeDeclName());
// } result.put("lastDefinition", lastDefinition().getMappingDefinition().toYAML().treeCopy());
// root.put("Handlers", handlers); result.put("lastDefinitionToType", lastDefinitionToType());
// result.put("lastResult", lastResult());
// doc.setRootElement(root); result.put("condition", sanitizeValueForYAML(condition()));
// return doc; result.put("senderName", senderName());
// } result.put("lastValue", lastValue());
// result.put("tokenResetMethodName", tokenResetMethodName());
// syn MappingElement MEndpointDefinition.toYAML() { result.put("resolveInListMethodName", resolveInListMethodName());
// MappingElement result = new MappingElement(); result.put("idTokenName", idTokenName());
// result.put("parentTypeName", parentTypeName()); result.put("InnerMappingDefinitions", innerMappingDefinitionsAsListElement());
// result.put("connectMethod", connectMethod()); getEndpointTarget().addToYAML(result);
// result.put("connectParameterName", connectParameterName()); return result;
// result.put("lastDefinitionToType", lastDefinitionToType()); }
// result.put("preemptiveReturn", preemptiveReturn());
// result.put("alwaysApply", alwaysApply()); abstract void EndpointTarget.addToYAML(MappingElement result);
// result.put("condition",
// condition().replace("\"", "\\\"").replace("\n", "\\n")); void TokenEndpointTarget.addToYAML(MappingElement result) {
// result.put("lastResult", lastResult()); result.put("tokenName", containingEndpointDefinition().tokenName());
// result.put("tokenName", tokenName()); }
// result.put("InnerMappingDefinitions", innerMappingDefinitionsAsListElement());
// return result; void TypeEndpointTarget.addToYAML(MappingElement result) {
// } result.put("typeName", containingEndpointDefinition().typeName());
// result.put("typeIsList", typeIsList());
// syn MappingElement MTokenReceiveDefinition.toYAML() { }
// MappingElement result = super.toYAML();
// result.put("loggingEnabledForReads", loggingEnabledForReads); void UntypedEndpointTarget.addToYAML(MappingElement result) {
// return result; }
// }
// syn Element MappingDefinition.toYAML() {
// syn MappingElement MTokenSendDefinition.toYAML() { MappingElement result = new MappingElement();
// MappingElement result = super.toYAML(); result.put("toType", toType());
// result.put("sender", sender()); result.put("methodName", methodName());
// result.put("lastValue", lastValue()); result.put("fromType", fromType());
// result.put("loggingEnabledForWrites", loggingEnabledForWrites); result.put("fromVariableName", getFromVariableName());
// result.put("updateMethod", updateMethod()); result.put("content", sanitizeValueForYAML(getContent()));
// result.put("writeMethod", writeMethod()); return result;
// result.put("tokenResetMethod", tokenResetMethod()); }
// return result;
// } syn Element DependencyDefinition.toYAML() {
// MappingElement result = new MappingElement();
// syn MappingElement MTypeReceiveDefinition.toYAML() { result.put("targetParentTypeName", targetParentTypeName());
// MappingElement result = super.toYAML(); result.put("dependencyMethodName", dependencyMethodName());
// result.put("typeIsList", typeIsList()); result.put("sourceParentTypeName", sourceParentTypeName());
// result.put("loggingEnabledForReads", loggingEnabledForReads); result.put("internalRelationPrefix", internalRelationPrefix());
// return result; return result;
// } }
//
// syn MappingElement MTypeSendDefinition.toYAML() { syn Element TokenComponent.toYAML() {
// MappingElement result = super.toYAML(); MappingElement result = new MappingElement();
// result.put("typeIsList", typeIsList()); result.put("parentTypeName", parentTypeName());
// result.put("sender", sender()); result.put("name", getName());
// result.put("lastValue", lastValue()); result.put("javaType", javaType());
// result.put("loggingEnabledForWrites", loggingEnabledForWrites); result.put("internalName", internalName());
// result.put("updateMethod", updateMethod()); ListElement dependencyDefinitions = new ListElement();
// result.put("writeMethod", writeMethod()); for (DependencyDefinition def : getDependencySourceDefinitionList()) {
// result.put("tokenResetMethod", tokenResetMethod()); MappingElement inner = new MappingElement();
// return result; inner.put("targetParentTypeName", def.targetParentTypeName());
// } inner.put("internalRelationPrefix", def.internalRelationPrefix());
// MappingElement targetEndpointDefinition = new MappingElement();
// syn Element MMappingDefinition.toYAML() { targetEndpointDefinition.put("updateMethodName", def.targetEndpointDefinition().updateMethodName());
// MappingElement result = new MappingElement(); targetEndpointDefinition.put("writeMethodName", def.targetEndpointDefinition().writeMethodName());
// result.put("toType", toType()); inner.put("targetEndpointDefinition", targetEndpointDefinition);
// result.put("methodName", methodName()); dependencyDefinitions.addElement(inner);
// result.put("fromType", fromType()); }
// result.put("fromVariableName", fromVariableName()); result.put("DependencyDefinitions", dependencyDefinitions);
// result.put("content", return result;
// content().replace("\"", "\\\"").replace("\n", "\\n")); }
// return result;
// } ListElement EndpointDefinition.innerMappingDefinitionsAsListElement() {
// ListElement innerMappingDefinitions = new ListElement();
// syn Element MDependencyDefinition.toYAML() { for (MInnerMappingDefinition def : innerMappingDefinitions()) {
// MappingElement result = new MappingElement(); MappingElement inner = new MappingElement();
// result.put("targetParentTypeName", targetParentTypeName()); inner.put("toType", def.toType());
// result.put("dependencyMethod", dependencyMethod()); inner.put("methodName", def.methodName());
// result.put("sourceParentTypeName", sourceParentTypeName()); inner.put("inputVarName", def.inputVarName());
// result.put("internalRelationPrefix", internalRelationPrefix()); inner.put("outputVarName", def.outputVarName());
// return result; inner.put("last", def.isLast());
// } innerMappingDefinitions.addElement(inner);
// }
// syn Element MTokenComponent.toYAML() { return innerMappingDefinitions;
// MappingElement result = new MappingElement(); }
// result.put("parentTypeName", parentTypeName());
// result.put("name", name()); syn MappingElement Handler.toYAML() {
// result.put("javaType", javaType()); MappingElement result = new MappingElement();
// result.put("internalName", internalName()); result.put("ClassName", getClassName());
// ListElement dependencyDefinitions = new ListElement(); result.put("ConstructionSnippet", ConstructionSnippet());
// for (MDependencyDefinition def : getDependencyDefinitionList()) { result.put("AttributeName", AttributeName());
// MappingElement inner = new MappingElement(); result.put("FieldName", FieldName());
// inner.put("targetParentTypeName", def.targetParentTypeName()); result.put("InUse", getInUse());
// inner.put("internalRelationPrefix", def.internalRelationPrefix()); return result;
// MappingElement targetEndpointDefinition = new MappingElement(); }
// targetEndpointDefinition.put("updateMethod", def.targetEndpointDefinition().updateMethod());
// targetEndpointDefinition.put("writeMethod", def.targetEndpointDefinition().writeMethod()); protected String ASTNode.sanitizeValueForYAML(String value) {
// inner.put("targetEndpointDefinition", targetEndpointDefinition); return value.replace("\"", "\\\"").replace("\n", "\\n");
// dependencyDefinitions.addElement(inner); }
// } }
// result.put("DependencyDefinitions", dependencyDefinitions);
// return result; aspect Navigation {
// } eq Document.getChild().program() = null;
// eq Document.getChild().ragconnect() = null;
// ListElement MEndpointDefinition.innerMappingDefinitionsAsListElement() { eq Document.getChild().containedFile() = null;
// ListElement innerMappingDefinitions = new ListElement(); eq Document.containedFileName() = getFileName();
// for (MInnerMappingDefinition def : getInnerMappingDefinitionList()) { }
// MappingElement inner = new MappingElement();
// inner.put("toType", def.toType());
// inner.put("methodName", def.methodName());
// inner.put("inputVarName", def.inputVarName());
// inner.put("outputVarName", def.outputVarName());
// inner.put("last", def.isLast());
// innerMappingDefinitions.addElement(inner);
// }
// return innerMappingDefinitions;
// }
//
// syn MappingElement MHandler.toYAML() {
// MappingElement result = new MappingElement();
// result.put("ClassName", getClassName());
// result.put("Construction", getConstruction());
// result.put("AttributeName", getAttributeName());
// result.put("FieldName", getFieldName());
// result.put("InUse", getInUse());
// return result;
// }
// }
//
// aspect Navigation {
// eq Document.getChild().program() = null;
// eq Document.getChild().ragconnect() = null;
// eq Document.getChild().containedFile() = null;
// eq Document.containedFileName() = getFileName();
// }
...@@ -80,8 +80,10 @@ public class Compiler extends AbstractCompiler { ...@@ -80,8 +80,10 @@ public class Compiler extends AbstractCompiler {
} }
if (optionPrintYaml.value()) { if (optionPrintYaml.value()) {
System.err.println("'--printYaml' currently unsupported option!"); String yamlContent = ragConnect.toYAML().prettyPrint();
return 1; System.out.println(yamlContent);
writeToFile(getConfiguration().outputDir().toPath().resolve("RagConnect.yml"), yamlContent);
return 0;
} }
LOGGER.fine("Writing output files"); LOGGER.fine("Writing output files");
...@@ -163,7 +165,7 @@ public class Compiler extends AbstractCompiler { ...@@ -163,7 +165,7 @@ public class Compiler extends AbstractCompiler {
.addAcceptedValue(OPTION_PROTOCOL_REST, "Enable REST") .addAcceptedValue(OPTION_PROTOCOL_REST, "Enable REST")
); );
optionPrintYaml = addOption( optionPrintYaml = addOption(
new BooleanOption("printYaml", "Print out YAML instead of generating files (currently unsupported)") new BooleanOption("printYaml", "Print out YAML instead of generating files and exit.")
.defaultValue(false)); .defaultValue(false));
optionVerbose = addOption( optionVerbose = addOption(
new BooleanOption("verbose", "Print more messages while compiling.") new BooleanOption("verbose", "Print more messages while compiling.")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment