Changeset 13433
- Timestamp:
- Sep 9, 2019 8:27:35 PM (3 months ago)
- Location:
- branches/stable
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/stable
- Property svn:mergeinfo changed
/trunk (added) merged: 13431-13432
- Property svn:mergeinfo changed
-
branches/stable/Compiler/ModelicaCBackEnd/src/jastadd/CCodeGen/CCodeGenExpressions.jrag
r12838 r13433 890 890 p.print(getSignificantDigits(), str, indent); 891 891 } else { 892 str.print( significantDigits());892 str.print(DEFAULT_PRECISION); 893 893 } 894 894 } … … 973 973 p.print(getSignificantDigits(), str, indent); 974 974 } else { 975 str.print( significantDigits());975 str.print(DEFAULT_PRECISION); 976 976 } 977 977 } … … 1073 1073 syn lazy int FStringAddExp.maxStringLength_C() = Math.min(getLeft().maxStringLength_C() + getRight().maxStringLength_C(), MAX_STRING_LENGTH_C); 1074 1074 eq FStringLitExp.maxStringLength_C() = stringUtf8().length; 1075 eq FStringExp.maxStringLength_C() = 1076 hasFormat() ? type().maxNumericStringLength_C(significantDigits()) : 1077 Math.max(getValue().type().maxStringLength_C(significantDigits()), minimumLength()); 1075 eq FStringExp.maxStringLength_C() { 1076 // TODO: if there is a format arg, there is no significantDigits 1077 // TODO: handle case where arguments are variables (use MAX_STRING_LENGTH_C?) 1078 VariableEvaluator ev = defaultVariableEvaluator(); 1079 if (hasFormat()) { 1080 return type().maxNumericStringLength_C(significantDigits(ev)); 1081 } else { 1082 return Math.max(getValue().type().maxStringLength_C(significantDigits(ev)), minimumLength(ev)); 1083 } 1084 } 1078 1085 1079 1086 /** -
branches/stable/Compiler/ModelicaFlatTree/src/jastadd/ConstantEvaluation/ConstantEvaluation.jrag
r13314 r13433 1669 1669 1670 1670 @Override 1671 public String objectValue() { 1672 return value; 1673 } 1674 1675 @Override 1671 1676 public String toString() { 1672 1677 return type.getName() + "." + value; … … 2784 2789 eq FEnumIntegerExp.cevalCalc(VariableEvaluator evaluator) = getFExp().ceval(evaluator).convertInteger(); 2785 2790 eq FStringExp.cevalCalc(VariableEvaluator evaluator) { 2786 Object value;2787 if (getValue().type().isReal())2788 value = getValue().ceval(evaluator).realValue();2789 else if (getValue().type().isInteger())2790 value = getValue().ceval(evaluator).intValue();2791 else if (getValue().type().isBoolean() || getValue().type().isEnum())2792 value = getValue().ceval(evaluator).stringExpValue();2793 else2794 return CValue.UNKNOWN;2795 return new CValueString(String.format((Locale) null, format String(), value));2791 if (getValue().isArray() || !getValue().type().isPrimitive()) { 2792 return CValue.UNKNOWN; 2793 } 2794 CValue cval = getValue().ceval(evaluator); 2795 if (getValue().type().isReal()) { 2796 cval = cval.convertReal(); 2797 } 2798 Object value = cval.objectValue(); 2799 String format = formatString(evaluator); 2800 return new CValueString(String.format((Locale) null, format, value)); 2796 2801 } 2797 2802 eq FGetInstanceName.cevalCalc(VariableEvaluator evaluator) = new CValueString(calcInstanceName()); … … 2805 2810 } 2806 2811 2807 // TODO: support format args 2808 syn String FStringExp.formatString() = "%" + formatFlags() + formatWidth() + formatPrecision() + formatSpecifier(); 2809 2810 syn String FStringExp.formatWidth() = minimumLength() > 0 ? String.valueOf(minimumLength()) : ""; 2811 syn String FStringExp.formatFlags() = leftJustified() && minimumLength() > 0 ? "-" : ""; 2812 syn String FStringExp.formatPrecision() = getValue().type().isReal() ? "." + significantDigits() : ""; 2813 syn String FStringExp.formatSpecifier() = getValue().type().formatSpecifier(); 2814 syn int FStringExp.minimumLength() = hasMinimumLength() ? getMinimumLength().ceval().intValue() : 0; 2815 syn boolean FStringExp.leftJustified() = hasLeftJustified() ? getLeftJustified().ceval().booleanValue() : true; 2816 syn int FStringExp.significantDigits() = hasSignificantDigits() ? getSignificantDigits().ceval().intValue() : DEFAULT_PRECISION; 2812 syn String FStringExp.formatString(VariableEvaluator evaluator) { 2813 StringBuilder buf = new StringBuilder("%"); 2814 if (hasFormat()) { 2815 buf.append(getFormat().ceval(evaluator).stringValue()); 2816 } else { 2817 int minLength = minimumLength(evaluator); 2818 if (minLength > 0) { 2819 if (leftJustified(evaluator)) { 2820 buf.append('-'); 2821 } 2822 buf.append(minLength); 2823 } 2824 if (getValue().type().isReal()) { 2825 buf.append('.'); 2826 buf.append(significantDigits(evaluator)); 2827 } 2828 buf.append(getValue().type().formatSpecifier()); 2829 } 2830 return buf.toString(); 2831 } 2832 2833 syn int FStringExp.minimumLength(VariableEvaluator evaluator) = 2834 hasMinimumLength() ? getMinimumLength().ceval(evaluator).intValue() : 0; 2835 syn boolean FStringExp.leftJustified(VariableEvaluator evaluator) = 2836 hasLeftJustified() ? getLeftJustified().ceval(evaluator).booleanValue() : true; 2837 syn int FStringExp.significantDigits(VariableEvaluator evaluator) = 2838 hasSignificantDigits() ? getSignificantDigits().ceval(evaluator).intValue() : DEFAULT_PRECISION; 2817 2839 syn String FType.formatSpecifier() { 2818 2840 throw new UnsupportedOperationException(); … … 2822 2844 eq FBooleanType.formatSpecifier() = "s"; 2823 2845 eq FEnumType.formatSpecifier() = "s"; 2846 eq FStringType.formatSpecifier() = "s"; 2824 2847 public static final int FStringExp.DEFAULT_PRECISION = 6; 2825 2848 -
branches/stable/Compiler/ModelicaFlatTree/src/jastadd/TypeAnalysis.jrag
r13396 r13433 52 52 public boolean isFunction(); 53 53 public boolean isExternalObject(); 54 public boolean isPrimitiveType(); 54 55 } 55 56 … … 157 158 }; 158 159 159 public boolean isBoolean() { return scalarType().isBoolean();}160 public boolean isInteger() { return scalarType().isInteger();}161 public boolean isReal() { return scalarType().isReal();}162 public boolean isNumeric() { return scalarType().isNumeric();}163 public boolean isString() { return scalarType().isString();}164 public boolean isEnum() { return scalarType().isEnum();}165 public boolean isRecord() { return scalarType().isRecord();}166 public boolean isFunction() { return scalarType().isFunction();}160 public boolean isBoolean() { return scalarType().isBoolean(); } 161 public boolean isInteger() { return scalarType().isInteger(); } 162 public boolean isReal() { return scalarType().isReal(); } 163 public boolean isNumeric() { return scalarType().isNumeric(); } 164 public boolean isString() { return scalarType().isString(); } 165 public boolean isEnum() { return scalarType().isEnum(); } 166 public boolean isRecord() { return scalarType().isRecord(); } 167 public boolean isFunction() { return scalarType().isFunction(); } 167 168 public boolean isExternalObject() { return scalarType().isExternalObject(); } 169 public boolean isPrimitiveType() { return scalarType().isPrimitiveType(); } 168 170 } 169 171 … … 1257 1259 syn boolean FType.isFunction() = false; 1258 1260 eq FFunctionType.isFunction() = true; 1261 syn boolean FType.isPrimitiveType() = false; 1262 eq FRealType .isPrimitiveType() = true; 1263 eq FIntegerType.isPrimitiveType() = true; 1264 eq FBooleanType.isPrimitiveType() = true; 1265 eq FStringType .isPrimitiveType() = true; 1266 eq FEnumType .isPrimitiveType() = true; 1259 1267 1260 1268 syn boolean FType.isArray() = getSize() != Size.SCALAR; -
branches/stable/Compiler/ModelicaFlatTree/test/modelica/EvaluationTests.mo
r13017 r13433 4357 4357 end EvaluatePartialFunction1; 4358 4358 4359 4360 package StringConvert "Test String conversion operator" 4361 4362 model StringConvertReal1 4363 constant Real x = 1.23456789; 4364 constant String s = String(x); 4365 4366 annotation(__JModelica(UnitTesting(tests={ 4367 FlatteningTestCase( 4368 name="StringConvert_StringConvertReal1", 4369 description="String() operator, Real, no options", 4370 flatModel=" 4371 fclass EvaluationTests.StringConvert.StringConvertReal1 4372 constant Real x = 1.23456789; 4373 constant String s = \"1.23457\"; 4374 end EvaluationTests.StringConvert.StringConvertReal1; 4375 ")}))); 4376 end StringConvertReal1; 4377 4378 4379 model StringConvertReal2 4380 constant Real x = 1.23456789; 4381 constant String s = String(x, minimumLength = 10); 4382 4383 annotation(__JModelica(UnitTesting(tests={ 4384 FlatteningTestCase( 4385 name="StringConvert_StringConvertReal2", 4386 description="String() operator, Real, minimumLength", 4387 flatModel=" 4388 fclass EvaluationTests.StringConvert.StringConvertReal2 4389 constant Real x = 1.23456789; 4390 constant String s = \"1.23457 \"; 4391 end EvaluationTests.StringConvert.StringConvertReal2; 4392 ")}))); 4393 end StringConvertReal2; 4394 4395 4396 model StringConvertReal3 4397 constant Real x = 1.23456789; 4398 constant String s = String(x, minimumLength = 2); 4399 4400 annotation(__JModelica(UnitTesting(tests={ 4401 FlatteningTestCase( 4402 name="StringConvert_StringConvertReal3", 4403 description="String() operator, Real, minimumLength < needed length", 4404 flatModel=" 4405 fclass EvaluationTests.StringConvert.StringConvertReal3 4406 constant Real x = 1.23456789; 4407 constant String s = \"1.23457\"; 4408 end EvaluationTests.StringConvert.StringConvertReal3; 4409 ")}))); 4410 end StringConvertReal3; 4411 4412 4413 model StringConvertReal4 4414 constant Real x = 1.23456789; 4415 constant String s = String(x, leftJustified = false); 4416 4417 annotation(__JModelica(UnitTesting(tests={ 4418 FlatteningTestCase( 4419 name="StringConvert_StringConvertReal4", 4420 description="String() operator, Real, leftJustified", 4421 flatModel=" 4422 fclass EvaluationTests.StringConvert.StringConvertReal4 4423 constant Real x = 1.23456789; 4424 constant String s = \"1.23457\"; 4425 end EvaluationTests.StringConvert.StringConvertReal4; 4426 ")}))); 4427 end StringConvertReal4; 4428 4429 4430 model StringConvertReal5 4431 constant Real x = 1.23456789; 4432 constant String s = String(x, leftJustified = false, minimumLength = 10); 4433 4434 annotation(__JModelica(UnitTesting(tests={ 4435 FlatteningTestCase( 4436 name="StringConvert_StringConvertReal5", 4437 description="String() operator, Real, leftJustified, minimumLength", 4438 flatModel=" 4439 fclass EvaluationTests.StringConvert.StringConvertReal5 4440 constant Real x = 1.23456789; 4441 constant String s = \" 1.23457\"; 4442 end EvaluationTests.StringConvert.StringConvertReal5; 4443 ")}))); 4444 end StringConvertReal5; 4445 4446 4447 model StringConvertReal6 4448 constant Real x = 1.23456789; 4449 constant String s = String(x, significantDigits = 4); 4450 4451 annotation(__JModelica(UnitTesting(tests={ 4452 FlatteningTestCase( 4453 name="StringConvert_StringConvertReal6", 4454 description="String() operator, Real, significantDigits", 4455 flatModel=" 4456 fclass EvaluationTests.StringConvert.StringConvertReal6 4457 constant Real x = 1.23456789; 4458 constant String s = \"1.235\"; 4459 end EvaluationTests.StringConvert.StringConvertReal6; 4460 ")}))); 4461 end StringConvertReal6; 4462 4463 4464 model StringConvertReal7 4465 constant Real x = 1.23456789; 4466 constant String s = String(x, significantDigits = 4, leftJustified = false, minimumLength = 8); 4467 4468 annotation(__JModelica(UnitTesting(tests={ 4469 FlatteningTestCase( 4470 name="StringConvert_StringConvertReal7", 4471 description="String() operator, Real, significantDigits, leftJustified, minimumLength", 4472 flatModel=" 4473 fclass EvaluationTests.StringConvert.StringConvertReal7 4474 constant Real x = 1.23456789; 4475 constant String s = \" 1.235\"; 4476 end EvaluationTests.StringConvert.StringConvertReal7; 4477 ")}))); 4478 end StringConvertReal7; 4479 4480 4481 model StringConvertReal8 4482 constant Real x = 1.23456789; 4483 constant String s = String(x, format = "10.4E"); 4484 4485 annotation(__JModelica(UnitTesting(tests={ 4486 FlatteningTestCase( 4487 name="StringConvert_StringConvertReal8", 4488 description="String() operator, Real, format", 4489 flatModel=" 4490 fclass EvaluationTests.StringConvert.StringConvertReal8 4491 constant Real x = 1.23456789; 4492 constant String s = \"1.2346E+00\"; 4493 end EvaluationTests.StringConvert.StringConvertReal8; 4494 ")}))); 4495 end StringConvertReal8; 4496 4497 4498 model StringConvertInteger1 4499 constant Integer x = 12; 4500 constant String s = String(x); 4501 4502 annotation(__JModelica(UnitTesting(tests={ 4503 FlatteningTestCase( 4504 name="StringConvert_StringConvertInteger1", 4505 description="String() operator, Integer, no options", 4506 flatModel=" 4507 fclass EvaluationTests.StringConvert.StringConvertInteger1 4508 constant Integer x = 12; 4509 constant String s = \"12\"; 4510 end EvaluationTests.StringConvert.StringConvertInteger1; 4511 ")}))); 4512 end StringConvertInteger1; 4513 4514 4515 model StringConvertInteger2 4516 constant Integer x = 12; 4517 constant String s = String(x, minimumLength = 3); 4518 4519 annotation(__JModelica(UnitTesting(tests={ 4520 FlatteningTestCase( 4521 name="StringConvert_StringConvertInteger2", 4522 description="String() operator, Integer, minimumLength", 4523 flatModel=" 4524 fclass EvaluationTests.StringConvert.StringConvertInteger2 4525 constant Integer x = 12; 4526 constant String s = \"12 \"; 4527 end EvaluationTests.StringConvert.StringConvertInteger2; 4528 ")}))); 4529 end StringConvertInteger2; 4530 4531 4532 model StringConvertInteger3 4533 constant Integer x = 12; 4534 constant String s = String(x, leftJustified = false, minimumLength = 3); 4535 4536 annotation(__JModelica(UnitTesting(tests={ 4537 FlatteningTestCase( 4538 name="StringConvert_StringConvertInteger3", 4539 description="String() operator, Integer, leftJustified, minimumLength", 4540 flatModel=" 4541 fclass EvaluationTests.StringConvert.StringConvertInteger3 4542 constant Integer x = 12; 4543 constant String s = \" 12\"; 4544 end EvaluationTests.StringConvert.StringConvertInteger3; 4545 ")}))); 4546 end StringConvertInteger3; 4547 4548 4549 model StringConvertBoolean1 4550 constant Boolean x = true; 4551 constant String s = String(x); 4552 4553 annotation(__JModelica(UnitTesting(tests={ 4554 FlatteningTestCase( 4555 name="StringConvert_StringConvertBoolean1", 4556 description="String() operator, Boolean true, no options", 4557 flatModel=" 4558 fclass EvaluationTests.StringConvert.StringConvertBoolean1 4559 constant Boolean x = true; 4560 constant String s = \"true\"; 4561 end EvaluationTests.StringConvert.StringConvertBoolean1; 4562 ")}))); 4563 end StringConvertBoolean1; 4564 4565 4566 model StringConvertBoolean2 4567 constant Boolean x = false; 4568 constant String s = String(x); 4569 4570 annotation(__JModelica(UnitTesting(tests={ 4571 FlatteningTestCase( 4572 name="StringConvert_StringConvertBoolean2", 4573 description="String() operator, Boolean false, no options", 4574 flatModel=" 4575 fclass EvaluationTests.StringConvert.StringConvertBoolean2 4576 constant Boolean x = false; 4577 constant String s = \"false\"; 4578 end EvaluationTests.StringConvert.StringConvertBoolean2; 4579 ")}))); 4580 end StringConvertBoolean2; 4581 4582 4583 model StringConvertBoolean3 4584 constant Boolean x = true; 4585 constant String s = String(x, minimumLength = 5); 4586 4587 annotation(__JModelica(UnitTesting(tests={ 4588 FlatteningTestCase( 4589 name="StringConvert_StringConvertBoolean3", 4590 description="String() operator, Boolean, minimumLength", 4591 flatModel=" 4592 fclass EvaluationTests.StringConvert.StringConvertBoolean3 4593 constant Boolean x = true; 4594 constant String s = \"true \"; 4595 end EvaluationTests.StringConvert.StringConvertBoolean3; 4596 ")}))); 4597 end StringConvertBoolean3; 4598 4599 4600 model StringConvertBoolean4 4601 constant Boolean x = true; 4602 constant String s = String(x, leftJustified = false, minimumLength = 5); 4603 4604 annotation(__JModelica(UnitTesting(tests={ 4605 FlatteningTestCase( 4606 name="StringConvert_StringConvertBoolean4", 4607 description="String() operator, Boolean, leftJustified, minimumLength", 4608 flatModel=" 4609 fclass EvaluationTests.StringConvert.StringConvertBoolean4 4610 constant Boolean x = true; 4611 constant String s = \" true\"; 4612 end EvaluationTests.StringConvert.StringConvertBoolean4; 4613 ")}))); 4614 end StringConvertBoolean4; 4615 4616 4617 model StringConvertEnumeration1 4618 type E = enumeration(Alpha, Beta, Gamma); 4619 constant E x = E.Beta; 4620 constant String s = String(x); 4621 4622 annotation(__JModelica(UnitTesting(tests={ 4623 FlatteningTestCase( 4624 name="StringConvert_StringConvertEnumeration1", 4625 description="String() operator, Enumeration, no options", 4626 flatModel=" 4627 fclass EvaluationTests.StringConvert.StringConvertEnumeration1 4628 constant EvaluationTests.StringConvert.StringConvertEnumeration1.E x = EvaluationTests.StringConvert.StringConvertEnumeration1.E.Beta; 4629 constant String s = \"Beta\"; 4630 4631 public 4632 type EvaluationTests.StringConvert.StringConvertEnumeration1.E = enumeration(Alpha, Beta, Gamma); 4633 4634 end EvaluationTests.StringConvert.StringConvertEnumeration1; 4635 ")}))); 4636 end StringConvertEnumeration1; 4637 4638 4639 model StringConvertEnumeration2 4640 type E = enumeration(Alpha, Beta, Gamma); 4641 constant E x = E.Beta; 4642 constant String s = String(x, minimumLength = 5); 4643 4644 annotation(__JModelica(UnitTesting(tests={ 4645 FlatteningTestCase( 4646 name="StringConvert_StringConvertEnumeration2", 4647 description="String() operator, Enumeration, minimumLength", 4648 flatModel=" 4649 fclass EvaluationTests.StringConvert.StringConvertEnumeration2 4650 constant EvaluationTests.StringConvert.StringConvertEnumeration2.E x = EvaluationTests.StringConvert.StringConvertEnumeration2.E.Beta; 4651 constant String s = \"Beta \"; 4652 4653 public 4654 type EvaluationTests.StringConvert.StringConvertEnumeration2.E = enumeration(Alpha, Beta, Gamma); 4655 4656 end EvaluationTests.StringConvert.StringConvertEnumeration2; 4657 ")}))); 4658 end StringConvertEnumeration2; 4659 4660 4661 model StringConvertEnumeration3 4662 type E = enumeration(Alpha, Beta, Gamma); 4663 constant E x = E.Beta; 4664 constant String s = String(x, leftJustified = false, minimumLength = 5); 4665 4666 annotation(__JModelica(UnitTesting(tests={ 4667 FlatteningTestCase( 4668 name="StringConvert_StringConvertEnumeration3", 4669 description="String() operator, Enumeration, leftJustified, minimumLength", 4670 flatModel=" 4671 fclass EvaluationTests.StringConvert.StringConvertEnumeration3 4672 constant EvaluationTests.StringConvert.StringConvertEnumeration3.E x = EvaluationTests.StringConvert.StringConvertEnumeration3.E.Beta; 4673 constant String s = \" Beta\"; 4674 4675 public 4676 type EvaluationTests.StringConvert.StringConvertEnumeration3.E = enumeration(Alpha, Beta, Gamma); 4677 4678 end EvaluationTests.StringConvert.StringConvertEnumeration3; 4679 ")}))); 4680 end StringConvertEnumeration3; 4681 4682 4683 model StringConvertWithParam1 4684 parameter Integer len = 8; 4685 parameter Boolean left = false; 4686 parameter Integer dig = 4; 4687 constant Real x = 1.23456789; 4688 constant String s = String(x, significantDigits = dig - 1, leftJustified = left, minimumLength = len - 1); 4689 4690 annotation(__JModelica(UnitTesting(tests={ 4691 FlatteningTestCase( 4692 name="StringConvert_StringConvertWithParam1", 4693 description="String() operator, Real, all options given as parameter expressions", 4694 flatModel=" 4695 fclass EvaluationTests.StringConvert.StringConvertWithParam1 4696 structural parameter Integer len = 8 /* 8 */; 4697 structural parameter Boolean left = false /* false */; 4698 structural parameter Integer dig = 4 /* 4 */; 4699 constant Real x = 1.23456789; 4700 constant String s = \" 1.23\"; 4701 end EvaluationTests.StringConvert.StringConvertWithParam1; 4702 ")}))); 4703 end StringConvertWithParam1; 4704 4705 4706 model StringConvertWithParam2 4707 parameter String fmtSize = "10.4"; 4708 constant Real x = 1.23456789; 4709 constant String s = String(x, format = fmtSize + "E"); 4710 4711 annotation(__JModelica(UnitTesting(tests={ 4712 FlatteningTestCase( 4713 name="StringConvert_StringConvertWithParam2", 4714 description="String() operator, Real, format given as parameter expressions", 4715 flatModel=" 4716 fclass EvaluationTests.StringConvert.StringConvertWithParam2 4717 parameter String fmtSize = \"10.4\" /* \"10.4\" */; 4718 constant Real x = 1.23456789; 4719 constant String s = \"1.2346E+00\"; 4720 end EvaluationTests.StringConvert.StringConvertWithParam2; 4721 ")}))); 4722 end StringConvertWithParam2; 4723 4724 end StringConvert; 4725 4359 4726 end EvaluationTests; -
branches/stable/Compiler/ModelicaFrontEnd/src/java/org/jmodelica/util/TestAnnotationizer.java
r12940 r13433 139 139 140 140 if (filePath == null && !hasInputFilePath) { 141 System.err.println("No input file specified. give path as argument or use -f ile");141 System.err.println("No input file specified. give path as argument or use -f"); 142 142 } 143 143 144 144 if (all_models && hasInputFilePath) { 145 System.err.println("Cannot use -a and -f ileat the same time");145 System.err.println("Cannot use -a and -f at the same time"); 146 146 } 147 147 … … 157 157 cont = inputFileScanner.hasNextLine(); 158 158 } 159 @SuppressWarnings("resource") 160 BufferedReader in = cont ? new BufferedReader(new InputStreamReader(System.in)) : null; 161 String packageName = getPackageName(filePath); 159 162 while (cont) { 160 BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); 161 if(hasInputFilePath) { 163 if (hasInputFilePath) { 162 164 String line = inputFileScanner.nextLine(); 163 165 String[] parts = line.split(","); 164 166 filePath = parts[0]; 165 modelName = parts[1];166 }167 String packageName = null;168 if(!(all_models || hasInputFilePath)) {169 167 packageName = getPackageName(filePath); 170 modelName = composeModelName(packageName, modelName); 171 } else if (hasInputFilePath) { 172 packageName = getPackageName(filePath); 173 modelName = packageName + "." + modelName; 174 } 175 if (all_models) { 168 modelName = packageName + "." + parts[1]; 169 } else if (all_models) { 176 170 modelName = allModelsIterator.next(); 177 } else if ( !modelName.contains(".")) {171 } else if (modelName == null) { 178 172 System.out.print("Enter class name: "); 179 173 System.out.flush(); … … 183 177 System.exit(0); 184 178 } 185 modelName = composeModelName( modelName, given);179 modelName = composeModelName(packageName, given); 186 180 } 187 181 … … 205 199 206 200 if (repeat) { 207 modelName = packageName;201 modelName = null; 208 202 } else if (all_models) { 209 203 cont = allModelsIterator.hasNext(); -
branches/stable/Compiler/ModelicaFrontEnd/test/modelica/OperatorRecordTests.mo
r13103 r13433 708 708 ")}))); 709 709 end OperatorOverload13; 710 711 712 model OperatorOverload14713 operator record Cplx2 = Cplx;714 Cplx c1 = Cplx(1, 2);715 Cplx2 c2 = Cplx2(3, 4);716 Cplx c3 = c1 + c2;717 718 annotation(__JModelica(UnitTesting(tests={719 FlatteningTestCase(720 name="OperatorOverload14",721 description="Short class decls of operator records",722 flatModel="723 fclass OperatorRecordTests.OperatorOverload14724 OperatorRecordTests.Cplx c1 = OperatorRecordTests.Cplx.'constructor'(1, 2);725 OperatorRecordTests.OperatorOverload14.Cplx2 c2 = OperatorRecordTests.Cplx.'constructor'(3, 4);726 OperatorRecordTests.Cplx c3 = OperatorRecordTests.Cplx.'+'(c1, c2);727 728 public729 function OperatorRecordTests.Cplx.'constructor'730 input Real re;731 input Real im;732 output OperatorRecordTests.Cplx c;733 algorithm734 c.re := re;735 c.im := im;736 return;737 end OperatorRecordTests.Cplx.'constructor';738 739 function OperatorRecordTests.Cplx.'+'740 input OperatorRecordTests.Cplx a;741 input OperatorRecordTests.Cplx b;742 output OperatorRecordTests.Cplx c;743 algorithm744 (c) := OperatorRecordTests.Cplx.'constructor'(a.re + b.re, a.im + b.im);745 return;746 end OperatorRecordTests.Cplx.'+';747 748 record OperatorRecordTests.Cplx749 Real re;750 Real im;751 end OperatorRecordTests.Cplx;752 753 record OperatorRecordTests.OperatorOverload14.Cplx2754 Real re;755 Real im;756 end OperatorRecordTests.OperatorOverload14.Cplx2;757 758 end OperatorRecordTests.OperatorOverload14;759 ")})));760 end OperatorOverload14;761 710 762 711 … … 1642 1591 1643 1592 1644 model OperatorRecordConnect31645 connector C = Cplx;1646 1647 C c1, c2, c3;1648 equation1649 connect(c1, c2);1650 c3 = c1 + c2;1651 1652 annotation(__JModelica(UnitTesting(tests={1653 FlatteningTestCase(1654 name="OperatorRecordConnect3",1655 description="Connectors that are operator records",1656 flatModel="1657 fclass OperatorRecordTests.OperatorRecordConnect31658 OperatorRecordTests.OperatorRecordConnect3.C c1;1659 OperatorRecordTests.OperatorRecordConnect3.C c2;1660 OperatorRecordTests.OperatorRecordConnect3.C c3;1661 equation1662 c3 = OperatorRecordTests.Cplx.'+'(c1, c2);1663 c1 = c2;1664 1665 public1666 function OperatorRecordTests.Cplx.'+'1667 input OperatorRecordTests.Cplx a;1668 input OperatorRecordTests.Cplx b;1669 output OperatorRecordTests.Cplx c;1670 algorithm1671 (c) := OperatorRecordTests.Cplx.'constructor'(a.re + b.re, a.im + b.im);1672 return;1673 end OperatorRecordTests.Cplx.'+';1674 1675 function OperatorRecordTests.Cplx.'constructor'1676 input Real re;1677 input Real im;1678 output OperatorRecordTests.Cplx c;1679 algorithm1680 c.re := re;1681 c.im := im;1682 return;1683 end OperatorRecordTests.Cplx.'constructor';1684 1685 record OperatorRecordTests.OperatorRecordConnect3.C1686 Real re;1687 Real im;1688 end OperatorRecordTests.OperatorRecordConnect3.C;1689 1690 record OperatorRecordTests.Cplx1691 Real re;1692 Real im;1693 end OperatorRecordTests.Cplx;1694 1695 end OperatorRecordTests.OperatorRecordConnect3;1696 ")})));1697 end OperatorRecordConnect3;1698 1699 1593 1700 1594 model OperatorRecordConnect4 … … 1742 1636 end OperatorRecordConnect4; 1743 1637 1744 1745 model OperatorRecordConnect51746 connector C = Cplx;1747 1748 model A1749 C c;1750 end A;1751 1752 A a[2];1753 C c[2];1754 equation1755 connect(a.c, c);1756 1757 annotation(__JModelica(UnitTesting(tests={1758 FlatteningTestCase(1759 name="OperatorRecordConnect5",1760 description="Test connecting to array of operator record",1761 flatModel="1762 fclass OperatorRecordTests.OperatorRecordConnect51763 OperatorRecordTests.OperatorRecordConnect5.C a[1].c;1764 OperatorRecordTests.OperatorRecordConnect5.C a[2].c;1765 OperatorRecordTests.OperatorRecordConnect5.C c[2];1766 equation1767 a[1].c = c[1];1768 a[2].c = c[2];1769 1770 public1771 record OperatorRecordTests.OperatorRecordConnect5.C1772 Real re;1773 Real im;1774 end OperatorRecordTests.OperatorRecordConnect5.C;1775 1776 end OperatorRecordTests.OperatorRecordConnect5;1777 ")})));1778 end OperatorRecordConnect5;1779 1638 1780 1639
Note: See TracChangeset
for help on using the changeset viewer.