Skip to content

Commit 4fc7f9e

Browse files
authored
Updated JS abstraction and CGBE
1 parent 65ffbcf commit 4fc7f9e

14 files changed

+1838
-126
lines changed

ASTBasicTerm.java

Lines changed: 37 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -315,6 +315,27 @@ public Statement cbasicUpdateForm(java.util.Map vartypes,
315315
java.util.Map varelemtypes, Vector types, Vector entities)
316316
{ return null; }
317317

318+
319+
public Type deduceType()
320+
{ if (Expression.isString(value))
321+
{ return new Type("String",null); }
322+
323+
if (Expression.isInteger(value))
324+
{ return new Type("int",null); }
325+
326+
if (Expression.isLong(value))
327+
{ return new Type("long",null); }
328+
329+
if (Expression.isDouble(value))
330+
{ return new Type("double",null); }
331+
332+
if ("true".equals(value) || "false".equals(value))
333+
{ return new Type("boolean", null); }
334+
335+
return new Type("OclAny", null);
336+
}
337+
338+
318339
public Expression cexpressionToKM3(java.util.Map vartypes,
319340
java.util.Map varelemtypes, Vector types, Vector ents)
320341
{ if ("primaryExpression".equals(tag))
@@ -557,6 +578,10 @@ else if (Expression.isDouble(value))
557578

558579
/* JavaScript processing: */
559580

581+
public Vector jsclassDeclarationToKM3(java.util.Map vartypes,
582+
java.util.Map varelemtypes, Vector types, Vector entities)
583+
{ return new Vector(); }
584+
560585
public Vector jsupdateForm(java.util.Map vartypes,
561586
java.util.Map varelemtypes, Vector types, Vector ents)
562587
{ return new Vector(); }
@@ -588,6 +613,11 @@ public Expression jsexpressionToKM3(java.util.Map vartypes,
588613
if ("false".equals(value))
589614
{ return new BasicExpression(false); }
590615

616+
if ("templateStringAtom".equals(tag))
617+
{
618+
return new BasicExpression(value);
619+
}
620+
591621
if ("numericLiteral".equals(tag))
592622
{
593623
BasicExpression v = new BasicExpression(value);
@@ -623,15 +653,19 @@ else if ("literal".equals(tag) ||
623653
return v;
624654
}
625655
}
626-
else if ("identifier".equals(tag))
656+
else if ("identifier".equals(tag) ||
657+
"keyword".equals(tag))
627658
{ Type t = (Type) vartypes.get(value);
628659
if (t != null)
629660
{ BasicExpression be = new BasicExpression(value);
630661
be.setType(t);
631-
be.setElementType((Type) varelemtypes.get(value));
662+
Object elemt = varelemtypes.get(value);
663+
if (elemt != null && elemt instanceof Type)
664+
{ be.setElementType((Type) elemt); }
632665
return be;
633666
}
634667

668+
/*
635669
Entity mainC = (Entity) ModelElement.lookupByName(
636670
"FromC", ents);
637671
if (mainC != null)
@@ -658,7 +692,7 @@ else if ("identifier".equals(tag))
658692
expr.variable = att;
659693
return expr;
660694
}
661-
}
695+
} */
662696

663697
BasicExpression v = new BasicExpression(value);
664698
return v;

0 commit comments

Comments
 (0)