Commit 58dec513 authored by Philip Makedonski's avatar Philip Makedonski
Browse files

* replaced annotations with constraints

parent a3093ac9
Loading
Loading
Loading
Loading
+15 −5
Original line number Diff line number Diff line
@@ -46,6 +46,15 @@ import com.beanit.asn1bean.compiler.model.AsnType;
import com.beanit.asn1bean.compiler.parser.ASNLexer;
import com.beanit.asn1bean.compiler.parser.ASNParser;

import antlr.debug.MessageEvent;
import antlr.debug.MessageListener;
import antlr.debug.ParserListener;
import antlr.debug.ParserMatchEvent;
import antlr.debug.ParserTokenEvent;
import antlr.debug.SemanticPredicateEvent;
import antlr.debug.SyntacticPredicateEvent;
import antlr.debug.TraceEvent;

public class ASN2TDLTranslator extends AbstractTranslator {
	public enum PASS {
		TYPES,
@@ -186,7 +195,7 @@ public class ASN2TDLTranslator extends AbstractTranslator {
		} else if (type instanceof AsnDefinedType) {
			//TODO: handle somehow?
			generatedType = getSimpleDataTypeFor(type.name);
		} else if (type instanceof AsnEnum) {
		} else if (type instanceof AsnEnum && pass!=PASS.PROPERTIES) {
			//TODO: add enum values from ((AsnEnum)type).namedNumberList.namedNumbers
			generatedType = getEnumDataTypeFor(type.name);
//			annotateWith(generatedType, "ENUM");
@@ -208,9 +217,9 @@ public class ASN2TDLTranslator extends AbstractTranslator {
			if (!type.name.isEmpty()) {
				//TODO: expand further?
				if (((AsnCharacterString)type).stringtype.isEmpty()) {
					annotateWith(generatedType, type.getClass().getSimpleName());
					constrainWith(generatedType, type.getClass().getSimpleName());
				} else {
					annotateWith(generatedType, ((AsnCharacterString)type).stringtype);
					constrainWith(generatedType, ((AsnCharacterString)type).stringtype);
				}
			}
		} else if (type instanceof AsnInteger 
@@ -229,7 +238,7 @@ public class ASN2TDLTranslator extends AbstractTranslator {
			}
			generatedType = getSimpleDataTypeFor(typeName);
			if (!type.name.isEmpty()) {
				annotateWith(generatedType, type.getClass().getSimpleName());
				constrainWith(generatedType, type.getClass().getSimpleName());
			}
		} else if (type instanceof AsnSelectionType) {
			//TODO: document handling, applicable to Choice only, also illustrate with example
@@ -276,7 +285,7 @@ public class ASN2TDLTranslator extends AbstractTranslator {
				taggedType.typeReference.name = taggedType.name;
			}
			generatedType = translateType(taggedType.typeReference, "", pass);
			annotateWith(generatedType, taggedType.tag.clazz);
			constrainWith(generatedType, taggedType.tag.clazz);
			//TODO: handle tagged types
		} else {
			generatedType = null;
@@ -317,6 +326,7 @@ public class ASN2TDLTranslator extends AbstractTranslator {
		try (InputStream stream = new BufferedInputStream(Files.newInputStream(Paths.get(inputFileName)))) {
			ASNLexer lexer = new ASNLexer(stream);
			ASNParser parser = new ASNParser(lexer);
			//TODO: capture and show parsing/lexing errors - currently only critical errors shown
			parser.module_definitions(model);
		}
		return model;