diff --git a/compiler/.jvmopts b/compiler/.jvmopts index 4b07f94897..603bb1dc73 100644 --- a/compiler/.jvmopts +++ b/compiler/.jvmopts @@ -1,2 +1 @@ --XX:+CMSClassUnloadingEnabled -Xss2M diff --git a/compiler/lib/src/main/resources/META-INF/native-image/reflect-config.json b/compiler/lib/src/main/resources/META-INF/native-image/reflect-config.json index 670648caba..e781295683 100644 --- a/compiler/lib/src/main/resources/META-INF/native-image/reflect-config.json +++ b/compiler/lib/src/main/resources/META-INF/native-image/reflect-config.json @@ -28,147 +28,187 @@ }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1", - "fields":[{"name":"0bitmap$2"}] + "fields":[{"name":"0bitmap$407"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1009", - "fields":[{"name":"0bitmap$920"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1000", + "fields":[{"name":"0bitmap$914"}] +}, +{ + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1001", + "fields":[{"name":"0bitmap$906"}] +}, +{ + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1002", + "fields":[{"name":"0bitmap$907"}] +}, +{ + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1003", + "fields":[{"name":"0bitmap$908"}] +}, +{ + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1004", + "fields":[{"name":"0bitmap$909"}] +}, +{ + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1005", + "fields":[{"name":"0bitmap$910"}] +}, +{ + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1006", + "fields":[{"name":"0bitmap$911"}] +}, +{ + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1007", + "fields":[{"name":"0bitmap$912"}] +}, +{ + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1008", + "fields":[{"name":"0bitmap$913"}] +}, +{ + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1010", + "fields":[{"name":"0bitmap$934"}] +}, +{ + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1011", + "fields":[{"name":"0bitmap$918"}] +}, +{ + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1013", + "fields":[{"name":"0bitmap$919"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1014", - "fields":[{"name":"0bitmap$921"}] + "fields":[{"name":"0bitmap$933"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1015", - "fields":[{"name":"0bitmap$922"}] + "fields":[{"name":"0bitmap$932"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1016", - "fields":[{"name":"0bitmap$923"}] + "fields":[{"name":"0bitmap$920"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1017", - "fields":[{"name":"0bitmap$925"}] + "fields":[{"name":"0bitmap$926"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1018", - "fields":[{"name":"0bitmap$924"}] + "fields":[{"name":"0bitmap$925"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1019", - "fields":[{"name":"0bitmap$927"}] + "fields":[{"name":"0bitmap$921"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1020", - "fields":[{"name":"0bitmap$926"}] + "fields":[{"name":"0bitmap$922"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1021", - "fields":[{"name":"0bitmap$944"}] + "fields":[{"name":"0bitmap$923"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1022", - "fields":[{"name":"0bitmap$928"}] -}, -{ - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1023", - "fields":[{"name":"0bitmap$929"}] + "fields":[{"name":"0bitmap$924"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1024", - "fields":[{"name":"0bitmap$943"}] + "fields":[{"name":"0bitmap$931"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1025", - "fields":[{"name":"0bitmap$942"}] + "fields":[{"name":"0bitmap$930"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1026", - "fields":[{"name":"0bitmap$930"}] + "fields":[{"name":"0bitmap$927"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1027", - "fields":[{"name":"0bitmap$936"}] + "fields":[{"name":"0bitmap$928"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1028", - "fields":[{"name":"0bitmap$935"}] -}, -{ - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1029", - "fields":[{"name":"0bitmap$931"}] + "fields":[{"name":"0bitmap$929"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1030", - "fields":[{"name":"0bitmap$932"}] + "fields":[{"name":"0bitmap$935"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1031", - "fields":[{"name":"0bitmap$933"}] + "fields":[{"name":"0bitmap$936"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1032", - "fields":[{"name":"0bitmap$934"}] + "fields":[{"name":"0bitmap$980"}] +}, +{ + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1033", + "fields":[{"name":"0bitmap$958"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1034", - "fields":[{"name":"0bitmap$941"}] + "fields":[{"name":"0bitmap$947"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1035", - "fields":[{"name":"0bitmap$940"}] + "fields":[{"name":"0bitmap$946"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1036", - "fields":[{"name":"0bitmap$937"}] + "fields":[{"name":"0bitmap$938"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1037", - "fields":[{"name":"0bitmap$938"}] + "fields":[{"name":"0bitmap$939"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1038", - "fields":[{"name":"0bitmap$939"}] + "fields":[{"name":"0bitmap$940"}] +}, +{ + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1039", + "fields":[{"name":"0bitmap$941"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1040", - "fields":[{"name":"0bitmap$957"}] + "fields":[{"name":"0bitmap$942"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1041", - "fields":[{"name":"0bitmap$946"}] + "fields":[{"name":"0bitmap$943"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1043", - "fields":[{"name":"0bitmap$956"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1042", + "fields":[{"name":"0bitmap$944"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1044", - "fields":[{"name":"0bitmap$955"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1043", + "fields":[{"name":"0bitmap$945"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1045", - "fields":[{"name":"0bitmap$947"}] + "fields":[{"name":"0bitmap$948"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1046", - "fields":[{"name":"0bitmap$948"}] + "fields":[{"name":"0bitmap$952"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1047", - "fields":[{"name":"0bitmap$949"}] + "fields":[{"name":"0bitmap$951"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1048", - "fields":[{"name":"0bitmap$950"}] + "fields":[{"name":"0bitmap$949"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1049", - "fields":[{"name":"0bitmap$951"}] -}, -{ - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1050", - "fields":[{"name":"0bitmap$952"}] + "fields":[{"name":"0bitmap$950"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1051", @@ -179,432 +219,372 @@ "fields":[{"name":"0bitmap$954"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1054", - "fields":[{"name":"0bitmap$975"}] -}, -{ - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1055", - "fields":[{"name":"0bitmap$959"}] -}, -{ - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1057", - "fields":[{"name":"0bitmap$960"}] -}, -{ - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1058", - "fields":[{"name":"0bitmap$974"}] -}, -{ - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1059", - "fields":[{"name":"0bitmap$973"}] -}, -{ - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1060", - "fields":[{"name":"0bitmap$961"}] -}, -{ - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1061", - "fields":[{"name":"0bitmap$967"}] -}, -{ - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1062", - "fields":[{"name":"0bitmap$966"}] -}, -{ - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1063", - "fields":[{"name":"0bitmap$962"}] -}, -{ - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1064", - "fields":[{"name":"0bitmap$963"}] -}, -{ - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1065", - "fields":[{"name":"0bitmap$964"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1053", + "fields":[{"name":"0bitmap$957"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1066", - "fields":[{"name":"0bitmap$965"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1054", + "fields":[{"name":"0bitmap$956"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1068", - "fields":[{"name":"0bitmap$972"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1055", + "fields":[{"name":"0bitmap$955"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1069", - "fields":[{"name":"0bitmap$971"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1056", + "fields":[{"name":"0bitmap$979"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1070", + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1057", "fields":[{"name":"0bitmap$968"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1071", + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1068", "fields":[{"name":"0bitmap$969"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1072", - "fields":[{"name":"0bitmap$970"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1069", + "fields":[{"name":"0bitmap$973"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1074", - "fields":[{"name":"0bitmap$976"}] + "fields":[{"name":"0bitmap$974"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1075", - "fields":[{"name":"0bitmap$977"}] + "fields":[{"name":"0bitmap$975"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1076", - "fields":[{"name":"0bitmap$1000"}] -}, -{ - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1077", - "fields":[{"name":"0bitmap$999"}] -}, -{ - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1078", - "fields":[{"name":"0bitmap$988"}] + "fields":[{"name":"0bitmap$978"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1079", - "fields":[{"name":"0bitmap$987"}] + "fields":[{"name":"0bitmap$1002"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1080", - "fields":[{"name":"0bitmap$979"}] + "fields":[{"name":"0bitmap$1001"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1081", - "fields":[{"name":"0bitmap$980"}] + "fields":[{"name":"0bitmap$990"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1082", - "fields":[{"name":"0bitmap$981"}] + "fields":[{"name":"0bitmap$989"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1083", - "fields":[{"name":"0bitmap$982"}] + "fields":[{"name":"0bitmap$981"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1084", - "fields":[{"name":"0bitmap$983"}] + "fields":[{"name":"0bitmap$982"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1085", - "fields":[{"name":"0bitmap$984"}] + "fields":[{"name":"0bitmap$983"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1086", - "fields":[{"name":"0bitmap$985"}] + "fields":[{"name":"0bitmap$984"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1087", + "fields":[{"name":"0bitmap$985"}] +}, +{ + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1088", "fields":[{"name":"0bitmap$986"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1089", - "fields":[{"name":"0bitmap$989"}] + "fields":[{"name":"0bitmap$987"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1090", - "fields":[{"name":"0bitmap$993"}] -}, -{ - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1091", - "fields":[{"name":"0bitmap$992"}] + "fields":[{"name":"0bitmap$988"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1092", - "fields":[{"name":"0bitmap$990"}] + "fields":[{"name":"0bitmap$991"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1093", - "fields":[{"name":"0bitmap$991"}] + "fields":[{"name":"0bitmap$995"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1095", + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1094", "fields":[{"name":"0bitmap$994"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1096", - "fields":[{"name":"0bitmap$995"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1095", + "fields":[{"name":"0bitmap$992"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1097", - "fields":[{"name":"0bitmap$998"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1096", + "fields":[{"name":"0bitmap$993"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1098", - "fields":[{"name":"0bitmap$997"}] + "fields":[{"name":"0bitmap$996"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1099", - "fields":[{"name":"0bitmap$996"}] + "fields":[{"name":"0bitmap$997"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1100", - "fields":[{"name":"0bitmap$1022"}] + "fields":[{"name":"0bitmap$1000"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1101", - "fields":[{"name":"0bitmap$1021"}] + "fields":[{"name":"0bitmap$999"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1102", - "fields":[{"name":"0bitmap$1010"}] + "fields":[{"name":"0bitmap$998"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1103", - "fields":[{"name":"0bitmap$1009"}] + "fields":[{"name":"0bitmap$1020"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1104", - "fields":[{"name":"0bitmap$1001"}] + "fields":[{"name":"0bitmap$1019"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1105", - "fields":[{"name":"0bitmap$1002"}] -}, -{ - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1106", "fields":[{"name":"0bitmap$1003"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1107", + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1106", "fields":[{"name":"0bitmap$1004"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1108", - "fields":[{"name":"0bitmap$1005"}] -}, -{ - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1109", - "fields":[{"name":"0bitmap$1006"}] -}, -{ - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1110", - "fields":[{"name":"0bitmap$1007"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1107", + "fields":[{"name":"0bitmap$1018"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1111", - "fields":[{"name":"0bitmap$1008"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1123", + "fields":[{"name":"0bitmap$1039"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1113", - "fields":[{"name":"0bitmap$1011"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1124", + "fields":[{"name":"0bitmap$1038"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1114", - "fields":[{"name":"0bitmap$1015"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1125", + "fields":[{"name":"0bitmap$1022"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1115", - "fields":[{"name":"0bitmap$1014"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1127", + "fields":[{"name":"0bitmap$1023"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1116", - "fields":[{"name":"0bitmap$1012"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1128", + "fields":[{"name":"0bitmap$1037"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1117", - "fields":[{"name":"0bitmap$1013"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1144", + "fields":[{"name":"0bitmap$1060"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1119", - "fields":[{"name":"0bitmap$1016"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1145", + "fields":[{"name":"0bitmap$1049"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1120", - "fields":[{"name":"0bitmap$1017"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1156", + "fields":[{"name":"0bitmap$1050"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1121", - "fields":[{"name":"0bitmap$1020"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1157", + "fields":[{"name":"0bitmap$1054"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1122", - "fields":[{"name":"0bitmap$1019"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1162", + "fields":[{"name":"0bitmap$1055"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1123", - "fields":[{"name":"0bitmap$1018"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1163", + "fields":[{"name":"0bitmap$1056"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1124", - "fields":[{"name":"0bitmap$1040"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1164", + "fields":[{"name":"0bitmap$1059"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1125", - "fields":[{"name":"0bitmap$1039"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1167", + "fields":[{"name":"0bitmap$1061"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1126", - "fields":[{"name":"0bitmap$1023"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1168", + "fields":[{"name":"0bitmap$1085"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1127", - "fields":[{"name":"0bitmap$1024"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1169", + "fields":[{"name":"0bitmap$1075"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1128", - "fields":[{"name":"0bitmap$1038"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1184", + "fields":[{"name":"0bitmap$1084"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1144", - "fields":[{"name":"0bitmap$1059"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1185", + "fields":[{"name":"0bitmap$1083"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1145", - "fields":[{"name":"0bitmap$1058"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1186", + "fields":[{"name":"0bitmap$1076"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1146", - "fields":[{"name":"0bitmap$1042"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1187", + "fields":[{"name":"0bitmap$1077"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1148", - "fields":[{"name":"0bitmap$1043"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1188", + "fields":[{"name":"0bitmap$1078"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1149", - "fields":[{"name":"0bitmap$1057"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1189", + "fields":[{"name":"0bitmap$1079"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1165", + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1190", "fields":[{"name":"0bitmap$1080"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1166", - "fields":[{"name":"0bitmap$1069"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1191", + "fields":[{"name":"0bitmap$1081"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1177", - "fields":[{"name":"0bitmap$1070"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1192", + "fields":[{"name":"0bitmap$1082"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1178", - "fields":[{"name":"0bitmap$1074"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1194", + "fields":[{"name":"0bitmap$1151"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1183", - "fields":[{"name":"0bitmap$1075"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1195", + "fields":[{"name":"0bitmap$1121"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1184", - "fields":[{"name":"0bitmap$1076"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1234", + "fields":[{"name":"0bitmap$1145"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1185", - "fields":[{"name":"0bitmap$1079"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1235", + "fields":[{"name":"0bitmap$1125"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1188", - "fields":[{"name":"0bitmap$1081"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1236", + "fields":[{"name":"0bitmap$1122"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1189", - "fields":[{"name":"0bitmap$1105"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1237", + "fields":[{"name":"0bitmap$1123"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1190", - "fields":[{"name":"0bitmap$1095"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1238", + "fields":[{"name":"0bitmap$1124"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1205", - "fields":[{"name":"0bitmap$1104"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1240", + "fields":[{"name":"0bitmap$1139"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1206", - "fields":[{"name":"0bitmap$1103"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1241", + "fields":[{"name":"0bitmap$1126"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1207", - "fields":[{"name":"0bitmap$1096"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1242", + "fields":[{"name":"0bitmap$1127"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1208", - "fields":[{"name":"0bitmap$1097"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1243", + "fields":[{"name":"0bitmap$1128"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1209", - "fields":[{"name":"0bitmap$1098"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1244", + "fields":[{"name":"0bitmap$1129"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1210", - "fields":[{"name":"0bitmap$1099"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1245", + "fields":[{"name":"0bitmap$1130"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1211", - "fields":[{"name":"0bitmap$1100"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1246", + "fields":[{"name":"0bitmap$1131"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1212", - "fields":[{"name":"0bitmap$1101"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1247", + "fields":[{"name":"0bitmap$1132"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1213", - "fields":[{"name":"0bitmap$1102"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1248", + "fields":[{"name":"0bitmap$1133"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1215", - "fields":[{"name":"0bitmap$1171"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1249", + "fields":[{"name":"0bitmap$1134"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1216", - "fields":[{"name":"0bitmap$1141"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1250", + "fields":[{"name":"0bitmap$1135"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1255", - "fields":[{"name":"0bitmap$1165"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1251", + "fields":[{"name":"0bitmap$1136"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1256", - "fields":[{"name":"0bitmap$1145"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1252", + "fields":[{"name":"0bitmap$1137"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1257", - "fields":[{"name":"0bitmap$1142"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1253", + "fields":[{"name":"0bitmap$1138"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1258", - "fields":[{"name":"0bitmap$1143"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1255", + "fields":[{"name":"0bitmap$1144"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1259", - "fields":[{"name":"0bitmap$1144"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1260", + "fields":[{"name":"0bitmap$1150"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1261", - "fields":[{"name":"0bitmap$1159"}] + "fields":[{"name":"0bitmap$1146"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1262", - "fields":[{"name":"0bitmap$1146"}] + "fields":[{"name":"0bitmap$1147"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1263", - "fields":[{"name":"0bitmap$1147"}] + "fields":[{"name":"0bitmap$1148"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1264", - "fields":[{"name":"0bitmap$1148"}] + "fields":[{"name":"0bitmap$1149"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1265", - "fields":[{"name":"0bitmap$1149"}] + "fields":[{"name":"0bitmap$1152"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1266", - "fields":[{"name":"0bitmap$1150"}] + "fields":[{"name":"0bitmap$1169"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1267", - "fields":[{"name":"0bitmap$1151"}] + "fields":[{"name":"0bitmap$1165"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1268", - "fields":[{"name":"0bitmap$1152"}] + "fields":[{"name":"0bitmap$1154"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1269", @@ -612,67 +592,59 @@ }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1270", - "fields":[{"name":"0bitmap$1154"}] + "fields":[{"name":"0bitmap$1164"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1271", - "fields":[{"name":"0bitmap$1155"}] + "fields":[{"name":"0bitmap$1158"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1272", - "fields":[{"name":"0bitmap$1156"}] + "fields":[{"name":"0bitmap$1157"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1273", - "fields":[{"name":"0bitmap$1157"}] + "fields":[{"name":"0bitmap$1156"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1274", - "fields":[{"name":"0bitmap$1158"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1275", + "fields":[{"name":"0bitmap$1163"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1276", - "fields":[{"name":"0bitmap$1164"}] + "fields":[{"name":"0bitmap$1162"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1281", - "fields":[{"name":"0bitmap$1170"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1277", + "fields":[{"name":"0bitmap$1161"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1282", - "fields":[{"name":"0bitmap$1166"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1280", + "fields":[{"name":"0bitmap$1168"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1283", - "fields":[{"name":"0bitmap$1167"}] + "fields":[{"name":"0bitmap$1224"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1284", - "fields":[{"name":"0bitmap$1168"}] + "fields":[{"name":"0bitmap$1186"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1285", - "fields":[{"name":"0bitmap$1169"}] -}, -{ - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1286", "fields":[{"name":"0bitmap$1172"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1287", - "fields":[{"name":"0bitmap$1189"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1286", + "fields":[{"name":"0bitmap$1171"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1288", - "fields":[{"name":"0bitmap$1185"}] -}, -{ - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1289", "fields":[{"name":"0bitmap$1174"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1290", - "fields":[{"name":"0bitmap$1173"}] + "fields":[{"name":"0bitmap$1185"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1291", @@ -704,579 +676,599 @@ }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1301", - "fields":[{"name":"0bitmap$1188"}] -}, -{ - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1304", - "fields":[{"name":"0bitmap$1244"}] -}, -{ - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1305", "fields":[{"name":"0bitmap$1206"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1306", - "fields":[{"name":"0bitmap$1192"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1302", + "fields":[{"name":"0bitmap$1189"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1307", - "fields":[{"name":"0bitmap$1191"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1303", + "fields":[{"name":"0bitmap$1188"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1309", + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1305", "fields":[{"name":"0bitmap$1194"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1311", + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1310", "fields":[{"name":"0bitmap$1205"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1312", + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1311", "fields":[{"name":"0bitmap$1204"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1313", + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1312", "fields":[{"name":"0bitmap$1198"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1314", + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1313", "fields":[{"name":"0bitmap$1197"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1315", + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1314", "fields":[{"name":"0bitmap$1196"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1317", + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1316", "fields":[{"name":"0bitmap$1203"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1318", + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1317", "fields":[{"name":"0bitmap$1202"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1319", + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1318", "fields":[{"name":"0bitmap$1201"}] }, +{ + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1321", + "fields":[{"name":"0bitmap$1223"}] +}, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1322", - "fields":[{"name":"0bitmap$1226"}] + "fields":[{"name":"0bitmap$1210"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1323", "fields":[{"name":"0bitmap$1209"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1324", - "fields":[{"name":"0bitmap$1208"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1326", + "fields":[{"name":"0bitmap$1211"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1326", - "fields":[{"name":"0bitmap$1214"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1327", + "fields":[{"name":"0bitmap$1222"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1331", - "fields":[{"name":"0bitmap$1225"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1328", + "fields":[{"name":"0bitmap$1221"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1332", - "fields":[{"name":"0bitmap$1224"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1329", + "fields":[{"name":"0bitmap$1215"}] +}, +{ + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1330", + "fields":[{"name":"0bitmap$1214"}] +}, +{ + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1331", + "fields":[{"name":"0bitmap$1213"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1333", - "fields":[{"name":"0bitmap$1218"}] + "fields":[{"name":"0bitmap$1220"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1334", - "fields":[{"name":"0bitmap$1217"}] + "fields":[{"name":"0bitmap$1219"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1335", - "fields":[{"name":"0bitmap$1216"}] + "fields":[{"name":"0bitmap$1218"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1337", - "fields":[{"name":"0bitmap$1223"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1338", + "fields":[{"name":"0bitmap$1225"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1338", - "fields":[{"name":"0bitmap$1222"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1340", + "fields":[{"name":"0bitmap$1226"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1339", - "fields":[{"name":"0bitmap$1221"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1341", + "fields":[{"name":"0bitmap$1236"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1342", - "fields":[{"name":"0bitmap$1243"}] + "fields":[{"name":"0bitmap$1227"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1343", - "fields":[{"name":"0bitmap$1230"}] + "fields":[{"name":"0bitmap$1228"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1344", "fields":[{"name":"0bitmap$1229"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1347", + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1345", + "fields":[{"name":"0bitmap$1230"}] +}, +{ + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1346", "fields":[{"name":"0bitmap$1231"}] }, +{ + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1347", + "fields":[{"name":"0bitmap$1232"}] +}, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1348", - "fields":[{"name":"0bitmap$1242"}] + "fields":[{"name":"0bitmap$1233"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1349", - "fields":[{"name":"0bitmap$1241"}] + "fields":[{"name":"0bitmap$1234"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1350", "fields":[{"name":"0bitmap$1235"}] }, -{ - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1351", - "fields":[{"name":"0bitmap$1234"}] -}, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1352", - "fields":[{"name":"0bitmap$1233"}] + "fields":[{"name":"0bitmap$1237"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1354", - "fields":[{"name":"0bitmap$1240"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1353", + "fields":[{"name":"0bitmap$1248"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1355", - "fields":[{"name":"0bitmap$1239"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1365", + "fields":[{"name":"0bitmap$1249"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1356", - "fields":[{"name":"0bitmap$1238"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1366", + "fields":[{"name":"0bitmap$1252"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1359", - "fields":[{"name":"0bitmap$1245"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1367", + "fields":[{"name":"0bitmap$1251"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1361", - "fields":[{"name":"0bitmap$1246"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1369", + "fields":[{"name":"0bitmap$1253"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1362", - "fields":[{"name":"0bitmap$1255"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1370", + "fields":[{"name":"0bitmap$1265"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1363", - "fields":[{"name":"0bitmap$1247"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1371", + "fields":[{"name":"0bitmap$1264"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1364", - "fields":[{"name":"0bitmap$1248"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1372", + "fields":[{"name":"0bitmap$1263"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1365", - "fields":[{"name":"0bitmap$1249"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1373", + "fields":[{"name":"0bitmap$1257"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1366", - "fields":[{"name":"0bitmap$1250"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1374", + "fields":[{"name":"0bitmap$1256"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1367", - "fields":[{"name":"0bitmap$1251"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1375", + "fields":[{"name":"0bitmap$1255"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1368", - "fields":[{"name":"0bitmap$1252"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1377", + "fields":[{"name":"0bitmap$1262"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1369", - "fields":[{"name":"0bitmap$1253"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1378", + "fields":[{"name":"0bitmap$1261"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1370", - "fields":[{"name":"0bitmap$1254"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1379", + "fields":[{"name":"0bitmap$1260"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1372", - "fields":[{"name":"0bitmap$1256"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1382", + "fields":[{"name":"0bitmap$1277"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1373", - "fields":[{"name":"0bitmap$1266"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1383", + "fields":[{"name":"0bitmap$1276"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1384", - "fields":[{"name":"0bitmap$1267"}] + "fields":[{"name":"0bitmap$1275"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1385", - "fields":[{"name":"0bitmap$1270"}] + "fields":[{"name":"0bitmap$1269"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1386", - "fields":[{"name":"0bitmap$1269"}] + "fields":[{"name":"0bitmap$1268"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1388", - "fields":[{"name":"0bitmap$1271"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1387", + "fields":[{"name":"0bitmap$1267"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1389", - "fields":[{"name":"0bitmap$1283"}] + "fields":[{"name":"0bitmap$1274"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1390", - "fields":[{"name":"0bitmap$1282"}] + "fields":[{"name":"0bitmap$1273"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1391", - "fields":[{"name":"0bitmap$1281"}] + "fields":[{"name":"0bitmap$1272"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1392", - "fields":[{"name":"0bitmap$1275"}] -}, -{ - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1393", - "fields":[{"name":"0bitmap$1274"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1394", + "fields":[{"name":"0bitmap$1297"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1394", - "fields":[{"name":"0bitmap$1273"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1395", + "fields":[{"name":"0bitmap$1279"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1396", - "fields":[{"name":"0bitmap$1280"}] + "fields":[{"name":"0bitmap$1278"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1397", - "fields":[{"name":"0bitmap$1279"}] + "fields":[{"name":"0bitmap$1296"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1398", - "fields":[{"name":"0bitmap$1278"}] + "fields":[{"name":"0bitmap$1292"}] +}, +{ + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1399", + "fields":[{"name":"0bitmap$1281"}] +}, +{ + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1400", + "fields":[{"name":"0bitmap$1280"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1401", - "fields":[{"name":"0bitmap$1295"}] + "fields":[{"name":"0bitmap$1291"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1402", - "fields":[{"name":"0bitmap$1294"}] + "fields":[{"name":"0bitmap$1285"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1403", - "fields":[{"name":"0bitmap$1293"}] + "fields":[{"name":"0bitmap$1284"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1404", - "fields":[{"name":"0bitmap$1287"}] + "fields":[{"name":"0bitmap$1283"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1405", - "fields":[{"name":"0bitmap$1286"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1406", + "fields":[{"name":"0bitmap$1290"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1406", - "fields":[{"name":"0bitmap$1285"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1407", + "fields":[{"name":"0bitmap$1289"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1408", - "fields":[{"name":"0bitmap$1292"}] + "fields":[{"name":"0bitmap$1288"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1409", - "fields":[{"name":"0bitmap$1291"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1411", + "fields":[{"name":"0bitmap$1295"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1410", - "fields":[{"name":"0bitmap$1290"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1412", + "fields":[{"name":"0bitmap$1294"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1413", - "fields":[{"name":"0bitmap$1315"}] + "fields":[{"name":"0bitmap$1293"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1414", - "fields":[{"name":"0bitmap$1297"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1416", + "fields":[{"name":"0bitmap$1698"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1415", - "fields":[{"name":"0bitmap$1296"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1417", + "fields":[{"name":"0bitmap$1430"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1416", - "fields":[{"name":"0bitmap$1314"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$151", + "fields":[{"name":"0bitmap$166"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1417", - "fields":[{"name":"0bitmap$1310"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1562", + "fields":[{"name":"0bitmap$1460"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1418", - "fields":[{"name":"0bitmap$1299"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1563", + "fields":[{"name":"0bitmap$1454"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1419", - "fields":[{"name":"0bitmap$1298"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1564", + "fields":[{"name":"0bitmap$1444"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1420", - "fields":[{"name":"0bitmap$1309"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1580", + "fields":[{"name":"0bitmap$1453"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1421", - "fields":[{"name":"0bitmap$1303"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1581", + "fields":[{"name":"0bitmap$1450"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1422", - "fields":[{"name":"0bitmap$1302"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1582", + "fields":[{"name":"0bitmap$1449"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1423", - "fields":[{"name":"0bitmap$1301"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1583", + "fields":[{"name":"0bitmap$1445"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1425", - "fields":[{"name":"0bitmap$1308"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1584", + "fields":[{"name":"0bitmap$1446"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1426", - "fields":[{"name":"0bitmap$1307"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1585", + "fields":[{"name":"0bitmap$1447"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1427", - "fields":[{"name":"0bitmap$1306"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1586", + "fields":[{"name":"0bitmap$1448"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1430", - "fields":[{"name":"0bitmap$1313"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1587", + "fields":[{"name":"0bitmap$1451"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1431", - "fields":[{"name":"0bitmap$1312"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1588", + "fields":[{"name":"0bitmap$1452"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1432", - "fields":[{"name":"0bitmap$1311"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1590", + "fields":[{"name":"0bitmap$1459"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1435", - "fields":[{"name":"0bitmap$1716"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1591", + "fields":[{"name":"0bitmap$1455"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1436", - "fields":[{"name":"0bitmap$1448"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1592", + "fields":[{"name":"0bitmap$1458"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1581", - "fields":[{"name":"0bitmap$1478"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1593", + "fields":[{"name":"0bitmap$1456"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1582", - "fields":[{"name":"0bitmap$1472"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1594", + "fields":[{"name":"0bitmap$1457"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1583", - "fields":[{"name":"0bitmap$1462"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1596", + "fields":[{"name":"0bitmap$1490"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1599", - "fields":[{"name":"0bitmap$1471"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1597", + "fields":[{"name":"0bitmap$1472"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1600", - "fields":[{"name":"0bitmap$1468"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1612", + "fields":[{"name":"0bitmap$1475"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1601", - "fields":[{"name":"0bitmap$1467"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1613", + "fields":[{"name":"0bitmap$1473"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1602", - "fields":[{"name":"0bitmap$1463"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1614", + "fields":[{"name":"0bitmap$1474"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1603", - "fields":[{"name":"0bitmap$1464"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1616", + "fields":[{"name":"0bitmap$1489"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1604", - "fields":[{"name":"0bitmap$1465"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1617", + "fields":[{"name":"0bitmap$1488"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1605", - "fields":[{"name":"0bitmap$1466"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1618", + "fields":[{"name":"0bitmap$1476"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1606", - "fields":[{"name":"0bitmap$1469"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1619", + "fields":[{"name":"0bitmap$1482"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1607", - "fields":[{"name":"0bitmap$1470"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1626", + "fields":[{"name":"0bitmap$1487"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1609", - "fields":[{"name":"0bitmap$1477"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1627", + "fields":[{"name":"0bitmap$1486"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1610", - "fields":[{"name":"0bitmap$1473"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1628", + "fields":[{"name":"0bitmap$1483"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1611", - "fields":[{"name":"0bitmap$1476"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1629", + "fields":[{"name":"0bitmap$1484"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1612", - "fields":[{"name":"0bitmap$1474"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1630", + "fields":[{"name":"0bitmap$1485"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1613", - "fields":[{"name":"0bitmap$1475"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1632", + "fields":[{"name":"0bitmap$1520"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1615", - "fields":[{"name":"0bitmap$1508"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1633", + "fields":[{"name":"0bitmap$1502"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1616", - "fields":[{"name":"0bitmap$1490"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1648", + "fields":[{"name":"0bitmap$1505"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1631", - "fields":[{"name":"0bitmap$1493"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1649", + "fields":[{"name":"0bitmap$1503"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1632", - "fields":[{"name":"0bitmap$1491"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1650", + "fields":[{"name":"0bitmap$1504"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1633", - "fields":[{"name":"0bitmap$1492"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1652", + "fields":[{"name":"0bitmap$1519"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1635", - "fields":[{"name":"0bitmap$1507"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1653", + "fields":[{"name":"0bitmap$1518"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1636", + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1654", "fields":[{"name":"0bitmap$1506"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1637", - "fields":[{"name":"0bitmap$1494"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1655", + "fields":[{"name":"0bitmap$1512"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1638", - "fields":[{"name":"0bitmap$1500"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1662", + "fields":[{"name":"0bitmap$1517"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1645", - "fields":[{"name":"0bitmap$1505"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1663", + "fields":[{"name":"0bitmap$1516"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1646", - "fields":[{"name":"0bitmap$1504"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1664", + "fields":[{"name":"0bitmap$1513"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1647", - "fields":[{"name":"0bitmap$1501"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1665", + "fields":[{"name":"0bitmap$1514"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1648", - "fields":[{"name":"0bitmap$1502"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1666", + "fields":[{"name":"0bitmap$1515"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1649", - "fields":[{"name":"0bitmap$1503"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1668", + "fields":[{"name":"0bitmap$1550"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1651", - "fields":[{"name":"0bitmap$1538"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1669", + "fields":[{"name":"0bitmap$1533"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1652", - "fields":[{"name":"0bitmap$1520"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1684", + "fields":[{"name":"0bitmap$1547"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1667", - "fields":[{"name":"0bitmap$1523"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1685", + "fields":[{"name":"0bitmap$1546"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1668", - "fields":[{"name":"0bitmap$1521"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1686", + "fields":[{"name":"0bitmap$1534"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1669", - "fields":[{"name":"0bitmap$1522"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1687", + "fields":[{"name":"0bitmap$1540"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1671", - "fields":[{"name":"0bitmap$1537"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1688", + "fields":[{"name":"0bitmap$1539"}] +}, +{ + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1689", + "fields":[{"name":"0bitmap$1535"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1672", + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1690", "fields":[{"name":"0bitmap$1536"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1673", - "fields":[{"name":"0bitmap$1524"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1691", + "fields":[{"name":"0bitmap$1537"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1674", - "fields":[{"name":"0bitmap$1530"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1692", + "fields":[{"name":"0bitmap$1538"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1681", - "fields":[{"name":"0bitmap$1535"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1694", + "fields":[{"name":"0bitmap$1545"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1682", - "fields":[{"name":"0bitmap$1534"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1695", + "fields":[{"name":"0bitmap$1544"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1683", - "fields":[{"name":"0bitmap$1531"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1696", + "fields":[{"name":"0bitmap$1541"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1684", - "fields":[{"name":"0bitmap$1532"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1697", + "fields":[{"name":"0bitmap$1542"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1685", - "fields":[{"name":"0bitmap$1533"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1698", + "fields":[{"name":"0bitmap$1543"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1687", - "fields":[{"name":"0bitmap$1568"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1700", + "fields":[{"name":"0bitmap$1549"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1688", - "fields":[{"name":"0bitmap$1551"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1701", + "fields":[{"name":"0bitmap$1548"}] +}, +{ + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1702", + "fields":[{"name":"0bitmap$1573"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1703", - "fields":[{"name":"0bitmap$1565"}] + "fields":[{"name":"0bitmap$1551"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1704", - "fields":[{"name":"0bitmap$1564"}] + "fields":[{"name":"0bitmap$1572"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1705", - "fields":[{"name":"0bitmap$1552"}] + "fields":[{"name":"0bitmap$1561"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1706", - "fields":[{"name":"0bitmap$1558"}] + "fields":[{"name":"0bitmap$1560"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1707", - "fields":[{"name":"0bitmap$1557"}] + "fields":[{"name":"0bitmap$1552"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1708", @@ -1295,224 +1287,220 @@ "fields":[{"name":"0bitmap$1556"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1713", - "fields":[{"name":"0bitmap$1563"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1712", + "fields":[{"name":"0bitmap$1557"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1714", - "fields":[{"name":"0bitmap$1562"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1713", + "fields":[{"name":"0bitmap$1558"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1715", + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1714", "fields":[{"name":"0bitmap$1559"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1716", - "fields":[{"name":"0bitmap$1560"}] + "fields":[{"name":"0bitmap$1562"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1717", - "fields":[{"name":"0bitmap$1561"}] + "fields":[{"name":"0bitmap$1566"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1719", - "fields":[{"name":"0bitmap$1567"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1718", + "fields":[{"name":"0bitmap$1565"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1720", - "fields":[{"name":"0bitmap$1566"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1719", + "fields":[{"name":"0bitmap$1563"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1721", - "fields":[{"name":"0bitmap$1591"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1720", + "fields":[{"name":"0bitmap$1564"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1722", - "fields":[{"name":"0bitmap$1569"}] + "fields":[{"name":"0bitmap$1567"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1723", - "fields":[{"name":"0bitmap$1590"}] + "fields":[{"name":"0bitmap$1568"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1724", - "fields":[{"name":"0bitmap$1579"}] -}, -{ - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1725", - "fields":[{"name":"0bitmap$1578"}] -}, -{ - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1726", - "fields":[{"name":"0bitmap$1570"}] + "fields":[{"name":"0bitmap$1571"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1727", - "fields":[{"name":"0bitmap$1571"}] + "fields":[{"name":"0bitmap$1574"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1728", - "fields":[{"name":"0bitmap$1572"}] + "fields":[{"name":"0bitmap$1589"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1729", - "fields":[{"name":"0bitmap$1573"}] + "fields":[{"name":"0bitmap$1580"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1730", - "fields":[{"name":"0bitmap$1574"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1735", + "fields":[{"name":"0bitmap$1583"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1731", - "fields":[{"name":"0bitmap$1575"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1736", + "fields":[{"name":"0bitmap$1582"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1732", - "fields":[{"name":"0bitmap$1576"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1738", + "fields":[{"name":"0bitmap$1588"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1733", - "fields":[{"name":"0bitmap$1577"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1739", + "fields":[{"name":"0bitmap$1584"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1735", - "fields":[{"name":"0bitmap$1580"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1740", + "fields":[{"name":"0bitmap$1585"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1736", - "fields":[{"name":"0bitmap$1584"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1741", + "fields":[{"name":"0bitmap$1586"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1737", - "fields":[{"name":"0bitmap$1583"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1742", + "fields":[{"name":"0bitmap$1587"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1738", - "fields":[{"name":"0bitmap$1581"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1743", + "fields":[{"name":"0bitmap$1693"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1739", - "fields":[{"name":"0bitmap$1582"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1744", + "fields":[{"name":"0bitmap$1590"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1741", - "fields":[{"name":"0bitmap$1585"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1745", + "fields":[{"name":"0bitmap$1641"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1742", - "fields":[{"name":"0bitmap$1586"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1746", + "fields":[{"name":"0bitmap$1626"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1743", - "fields":[{"name":"0bitmap$1589"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1785", + "fields":[{"name":"0bitmap$1637"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1746", - "fields":[{"name":"0bitmap$1592"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1786", + "fields":[{"name":"0bitmap$1631"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1747", - "fields":[{"name":"0bitmap$1607"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1787", + "fields":[{"name":"0bitmap$1627"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1748", - "fields":[{"name":"0bitmap$1598"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1788", + "fields":[{"name":"0bitmap$1628"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1754", - "fields":[{"name":"0bitmap$1601"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1789", + "fields":[{"name":"0bitmap$1629"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1755", - "fields":[{"name":"0bitmap$1600"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1790", + "fields":[{"name":"0bitmap$1630"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1757", - "fields":[{"name":"0bitmap$1606"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1792", + "fields":[{"name":"0bitmap$1636"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1758", - "fields":[{"name":"0bitmap$1602"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1797", + "fields":[{"name":"0bitmap$1640"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1759", - "fields":[{"name":"0bitmap$1603"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1798", + "fields":[{"name":"0bitmap$1638"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1760", - "fields":[{"name":"0bitmap$1604"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1799", + "fields":[{"name":"0bitmap$1639"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1761", - "fields":[{"name":"0bitmap$1605"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1800", + "fields":[{"name":"0bitmap$1692"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1762", - "fields":[{"name":"0bitmap$1711"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1801", + "fields":[{"name":"0bitmap$1677"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1763", - "fields":[{"name":"0bitmap$1608"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1840", + "fields":[{"name":"0bitmap$1688"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1764", - "fields":[{"name":"0bitmap$1659"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1841", + "fields":[{"name":"0bitmap$1682"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1765", - "fields":[{"name":"0bitmap$1644"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1842", + "fields":[{"name":"0bitmap$1678"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1804", - "fields":[{"name":"0bitmap$1655"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1843", + "fields":[{"name":"0bitmap$1679"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1805", - "fields":[{"name":"0bitmap$1649"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1844", + "fields":[{"name":"0bitmap$1680"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1806", - "fields":[{"name":"0bitmap$1645"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1845", + "fields":[{"name":"0bitmap$1681"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1807", - "fields":[{"name":"0bitmap$1646"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1847", + "fields":[{"name":"0bitmap$1687"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1808", - "fields":[{"name":"0bitmap$1647"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$185", + "fields":[{"name":"0bitmap$196"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1809", - "fields":[{"name":"0bitmap$1648"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1852", + "fields":[{"name":"0bitmap$1691"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1811", - "fields":[{"name":"0bitmap$1654"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1853", + "fields":[{"name":"0bitmap$1689"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1816", - "fields":[{"name":"0bitmap$1658"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1854", + "fields":[{"name":"0bitmap$1690"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1817", - "fields":[{"name":"0bitmap$1656"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1855", + "fields":[{"name":"0bitmap$1695"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1818", - "fields":[{"name":"0bitmap$1657"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1856", + "fields":[{"name":"0bitmap$1694"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1819", - "fields":[{"name":"0bitmap$1710"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1857", + "fields":[{"name":"0bitmap$1697"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1820", - "fields":[{"name":"0bitmap$1695"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1858", + "fields":[{"name":"0bitmap$1696"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1859", - "fields":[{"name":"0bitmap$1706"}] + "fields":[{"name":"0bitmap$1714"}] +}, +{ + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$186", + "fields":[{"name":"0bitmap$178"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1860", @@ -1520,42 +1508,38 @@ }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1861", - "fields":[{"name":"0bitmap$1696"}] + "fields":[{"name":"0bitmap$1699"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1862", - "fields":[{"name":"0bitmap$1697"}] + "fields":[{"name":"0bitmap$1713"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1863", - "fields":[{"name":"0bitmap$1698"}] + "fields":[{"name":"0bitmap$1702"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1864", - "fields":[{"name":"0bitmap$1699"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1865", + "fields":[{"name":"0bitmap$1704"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1866", - "fields":[{"name":"0bitmap$1705"}] + "fields":[{"name":"0bitmap$1703"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1871", - "fields":[{"name":"0bitmap$1709"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1867", + "fields":[{"name":"0bitmap$1706"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1872", - "fields":[{"name":"0bitmap$1707"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1869", + "fields":[{"name":"0bitmap$1709"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1873", + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1870", "fields":[{"name":"0bitmap$1708"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1874", - "fields":[{"name":"0bitmap$1713"}] -}, -{ - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1875", + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1872", "fields":[{"name":"0bitmap$1712"}] }, { @@ -1564,183 +1548,223 @@ }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1877", - "fields":[{"name":"0bitmap$1714"}] + "fields":[{"name":"0bitmap$1803"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1878", - "fields":[{"name":"0bitmap$1732"}] + "fields":[{"name":"0bitmap$1754"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1879", - "fields":[{"name":"0bitmap$1718"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1920", + "fields":[{"name":"0bitmap$1755"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1880", - "fields":[{"name":"0bitmap$1717"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1921", + "fields":[{"name":"0bitmap$1795"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1881", - "fields":[{"name":"0bitmap$1731"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1922", + "fields":[{"name":"0bitmap$1794"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1882", - "fields":[{"name":"0bitmap$1720"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1964", + "fields":[{"name":"0bitmap$1797"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1884", - "fields":[{"name":"0bitmap$1722"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1966", + "fields":[{"name":"0bitmap$1800"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1885", - "fields":[{"name":"0bitmap$1721"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1967", + "fields":[{"name":"0bitmap$1799"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1886", - "fields":[{"name":"0bitmap$1724"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1969", + "fields":[{"name":"0bitmap$1801"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1888", - "fields":[{"name":"0bitmap$1727"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1970", + "fields":[{"name":"0bitmap$1802"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1889", - "fields":[{"name":"0bitmap$1726"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1971", + "fields":[{"name":"0bitmap$1824"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1891", - "fields":[{"name":"0bitmap$1730"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1972", + "fields":[{"name":"0bitmap$1813"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1895", - "fields":[{"name":"0bitmap$1733"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1973", + "fields":[{"name":"0bitmap$1812"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1896", - "fields":[{"name":"0bitmap$1821"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1974", + "fields":[{"name":"0bitmap$1804"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1897", - "fields":[{"name":"0bitmap$1772"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1975", + "fields":[{"name":"0bitmap$1805"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1939", - "fields":[{"name":"0bitmap$1773"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1976", + "fields":[{"name":"0bitmap$1806"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1940", - "fields":[{"name":"0bitmap$1813"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1977", + "fields":[{"name":"0bitmap$1807"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1941", - "fields":[{"name":"0bitmap$1812"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1978", + "fields":[{"name":"0bitmap$1808"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$195", - "fields":[{"name":"0bitmap$207"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1979", + "fields":[{"name":"0bitmap$1809"}] +}, +{ + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1980", + "fields":[{"name":"0bitmap$1810"}] +}, +{ + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1981", + "fields":[{"name":"0bitmap$1811"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1983", - "fields":[{"name":"0bitmap$1815"}] + "fields":[{"name":"0bitmap$1814"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1985", + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1984", "fields":[{"name":"0bitmap$1818"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1986", + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1985", "fields":[{"name":"0bitmap$1817"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1988", - "fields":[{"name":"0bitmap$1819"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1986", + "fields":[{"name":"0bitmap$1815"}] +}, +{ + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1987", + "fields":[{"name":"0bitmap$1816"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1989", - "fields":[{"name":"0bitmap$1820"}] + "fields":[{"name":"0bitmap$1819"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1990", - "fields":[{"name":"0bitmap$1842"}] + "fields":[{"name":"0bitmap$1820"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1991", - "fields":[{"name":"0bitmap$1831"}] + "fields":[{"name":"0bitmap$1823"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$2002", - "fields":[{"name":"0bitmap$1832"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1994", + "fields":[{"name":"0bitmap$1827"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$2003", - "fields":[{"name":"0bitmap$1836"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1995", + "fields":[{"name":"0bitmap$1826"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$2004", - "fields":[{"name":"0bitmap$1835"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1997", + "fields":[{"name":"0bitmap$1870"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$2005", - "fields":[{"name":"0bitmap$1833"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$1998", + "fields":[{"name":"0bitmap$1869"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$2006", - "fields":[{"name":"0bitmap$1834"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$2", + "fields":[{"name":"0bitmap$2"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$2008", - "fields":[{"name":"0bitmap$1837"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$201", + "fields":[{"name":"0bitmap$181"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$2009", - "fields":[{"name":"0bitmap$1838"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$202", + "fields":[{"name":"0bitmap$179"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$2010", - "fields":[{"name":"0bitmap$1841"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$203", + "fields":[{"name":"0bitmap$180"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$2013", - "fields":[{"name":"0bitmap$1845"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$205", + "fields":[{"name":"0bitmap$195"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$2014", - "fields":[{"name":"0bitmap$1844"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$206", + "fields":[{"name":"0bitmap$194"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$2016", - "fields":[{"name":"0bitmap$1888"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$207", + "fields":[{"name":"0bitmap$182"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$2017", - "fields":[{"name":"0bitmap$1887"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$208", + "fields":[{"name":"0bitmap$188"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$229", - "fields":[{"name":"0bitmap$237"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$215", + "fields":[{"name":"0bitmap$193"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$230", - "fields":[{"name":"0bitmap$219"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$216", + "fields":[{"name":"0bitmap$192"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$245", - "fields":[{"name":"0bitmap$222"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$217", + "fields":[{"name":"0bitmap$189"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$246", - "fields":[{"name":"0bitmap$220"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$218", + "fields":[{"name":"0bitmap$190"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$247", - "fields":[{"name":"0bitmap$221"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$219", + "fields":[{"name":"0bitmap$191"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$249", - "fields":[{"name":"0bitmap$236"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$221", + "fields":[{"name":"0bitmap$226"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$250", - "fields":[{"name":"0bitmap$235"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$222", + "fields":[{"name":"0bitmap$208"}] +}, +{ + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$237", + "fields":[{"name":"0bitmap$211"}] +}, +{ + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$238", + "fields":[{"name":"0bitmap$209"}] +}, +{ + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$239", + "fields":[{"name":"0bitmap$210"}] +}, +{ + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$241", + "fields":[{"name":"0bitmap$225"}] +}, +{ + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$242", + "fields":[{"name":"0bitmap$224"}] +}, +{ + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$243", + "fields":[{"name":"0bitmap$212"}] +}, +{ + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$244", + "fields":[{"name":"0bitmap$218"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$251", @@ -1748,683 +1772,719 @@ }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$252", - "fields":[{"name":"0bitmap$229"}] + "fields":[{"name":"0bitmap$222"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$259", - "fields":[{"name":"0bitmap$234"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$253", + "fields":[{"name":"0bitmap$219"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$260", - "fields":[{"name":"0bitmap$233"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$254", + "fields":[{"name":"0bitmap$220"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$261", - "fields":[{"name":"0bitmap$230"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$255", + "fields":[{"name":"0bitmap$221"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$262", - "fields":[{"name":"0bitmap$231"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$257", + "fields":[{"name":"0bitmap$256"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$263", - "fields":[{"name":"0bitmap$232"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$291", + "fields":[{"name":"0bitmap$279"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$265", - "fields":[{"name":"0bitmap$267"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$316", + "fields":[{"name":"0bitmap$280"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$266", - "fields":[{"name":"0bitmap$249"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$317", + "fields":[{"name":"0bitmap$295"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$281", - "fields":[{"name":"0bitmap$252"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$318", + "fields":[{"name":"0bitmap$286"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$282", - "fields":[{"name":"0bitmap$250"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$324", + "fields":[{"name":"0bitmap$289"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$283", - "fields":[{"name":"0bitmap$251"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$325", + "fields":[{"name":"0bitmap$288"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$285", - "fields":[{"name":"0bitmap$266"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$327", + "fields":[{"name":"0bitmap$294"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$286", - "fields":[{"name":"0bitmap$265"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$328", + "fields":[{"name":"0bitmap$290"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$287", - "fields":[{"name":"0bitmap$253"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$329", + "fields":[{"name":"0bitmap$291"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$288", - "fields":[{"name":"0bitmap$259"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$330", + "fields":[{"name":"0bitmap$292"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$295", - "fields":[{"name":"0bitmap$264"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$331", + "fields":[{"name":"0bitmap$293"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$296", - "fields":[{"name":"0bitmap$263"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$332", + "fields":[{"name":"0bitmap$399"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$297", - "fields":[{"name":"0bitmap$260"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$333", + "fields":[{"name":"0bitmap$296"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$298", - "fields":[{"name":"0bitmap$261"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$334", + "fields":[{"name":"0bitmap$347"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$299", - "fields":[{"name":"0bitmap$262"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$335", + "fields":[{"name":"0bitmap$332"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$3", - "fields":[{"name":"0bitmap$41"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$374", + "fields":[{"name":"0bitmap$343"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$301", - "fields":[{"name":"0bitmap$297"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$375", + "fields":[{"name":"0bitmap$337"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$335", - "fields":[{"name":"0bitmap$320"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$376", + "fields":[{"name":"0bitmap$333"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$360", - "fields":[{"name":"0bitmap$321"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$377", + "fields":[{"name":"0bitmap$334"}] +}, +{ + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$378", + "fields":[{"name":"0bitmap$335"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$361", + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$379", "fields":[{"name":"0bitmap$336"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$362", - "fields":[{"name":"0bitmap$327"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$381", + "fields":[{"name":"0bitmap$342"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$368", - "fields":[{"name":"0bitmap$330"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$386", + "fields":[{"name":"0bitmap$346"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$369", - "fields":[{"name":"0bitmap$329"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$387", + "fields":[{"name":"0bitmap$344"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$371", - "fields":[{"name":"0bitmap$335"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$388", + "fields":[{"name":"0bitmap$345"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$372", - "fields":[{"name":"0bitmap$331"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$389", + "fields":[{"name":"0bitmap$398"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$373", - "fields":[{"name":"0bitmap$332"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$390", + "fields":[{"name":"0bitmap$383"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$374", - "fields":[{"name":"0bitmap$333"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$4", + "fields":[{"name":"0bitmap$3"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$375", - "fields":[{"name":"0bitmap$334"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$429", + "fields":[{"name":"0bitmap$394"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$376", - "fields":[{"name":"0bitmap$440"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$430", + "fields":[{"name":"0bitmap$388"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$377", - "fields":[{"name":"0bitmap$337"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$431", + "fields":[{"name":"0bitmap$384"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$378", - "fields":[{"name":"0bitmap$388"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$432", + "fields":[{"name":"0bitmap$385"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$379", - "fields":[{"name":"0bitmap$373"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$433", + "fields":[{"name":"0bitmap$386"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$418", - "fields":[{"name":"0bitmap$384"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$434", + "fields":[{"name":"0bitmap$387"}] +}, +{ + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$436", + "fields":[{"name":"0bitmap$393"}] +}, +{ + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$441", + "fields":[{"name":"0bitmap$397"}] +}, +{ + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$442", + "fields":[{"name":"0bitmap$395"}] +}, +{ + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$443", + "fields":[{"name":"0bitmap$396"}] +}, +{ + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$444", + "fields":[{"name":"0bitmap$401"}] +}, +{ + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$446", + "fields":[{"name":"0bitmap$403"}] +}, +{ + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$448", + "fields":[{"name":"0bitmap$406"}] +}, +{ + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$449", + "fields":[{"name":"0bitmap$405"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$419", - "fields":[{"name":"0bitmap$378"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$450", + "fields":[{"name":"0bitmap$540"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$420", - "fields":[{"name":"0bitmap$374"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$5", + "fields":[{"name":"0bitmap$404"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$421", - "fields":[{"name":"0bitmap$375"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$595", + "fields":[{"name":"0bitmap$571"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$422", - "fields":[{"name":"0bitmap$376"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$6", + "fields":[{"name":"0bitmap$136"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$423", - "fields":[{"name":"0bitmap$377"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$630", + "fields":[{"name":"0bitmap$602"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$425", - "fields":[{"name":"0bitmap$383"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$631", + "fields":[{"name":"0bitmap$601"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$430", - "fields":[{"name":"0bitmap$387"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$632", + "fields":[{"name":"0bitmap$583"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$431", - "fields":[{"name":"0bitmap$385"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$647", + "fields":[{"name":"0bitmap$586"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$432", - "fields":[{"name":"0bitmap$386"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$648", + "fields":[{"name":"0bitmap$584"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$433", - "fields":[{"name":"0bitmap$439"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$649", + "fields":[{"name":"0bitmap$585"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$434", - "fields":[{"name":"0bitmap$424"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$651", + "fields":[{"name":"0bitmap$600"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$45", - "fields":[{"name":"0bitmap$448"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$667", + "fields":[{"name":"0bitmap$633"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$46", - "fields":[{"name":"0bitmap$43"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$702", + "fields":[{"name":"0bitmap$657"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$473", - "fields":[{"name":"0bitmap$435"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$728", + "fields":[{"name":"0bitmap$660"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$474", - "fields":[{"name":"0bitmap$429"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$731", + "fields":[{"name":"0bitmap$663"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$475", - "fields":[{"name":"0bitmap$425"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$734", + "fields":[{"name":"0bitmap$684"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$476", - "fields":[{"name":"0bitmap$426"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$735", + "fields":[{"name":"0bitmap$676"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$477", - "fields":[{"name":"0bitmap$427"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$749", + "fields":[{"name":"0bitmap$683"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$478", - "fields":[{"name":"0bitmap$428"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$750", + "fields":[{"name":"0bitmap$682"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$48", - "fields":[{"name":"0bitmap$44"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$756", + "fields":[{"name":"0bitmap$698"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$480", - "fields":[{"name":"0bitmap$434"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$757", + "fields":[{"name":"0bitmap$697"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$485", - "fields":[{"name":"0bitmap$438"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$758", + "fields":[{"name":"0bitmap$686"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$486", - "fields":[{"name":"0bitmap$436"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$760", + "fields":[{"name":"0bitmap$696"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$487", - "fields":[{"name":"0bitmap$437"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$761", + "fields":[{"name":"0bitmap$695"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$488", - "fields":[{"name":"0bitmap$442"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$762", + "fields":[{"name":"0bitmap$687"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$49", - "fields":[{"name":"0bitmap$445"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$763", + "fields":[{"name":"0bitmap$688"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$490", - "fields":[{"name":"0bitmap$444"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$764", + "fields":[{"name":"0bitmap$689"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$492", - "fields":[{"name":"0bitmap$447"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$765", + "fields":[{"name":"0bitmap$690"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$493", - "fields":[{"name":"0bitmap$446"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$766", + "fields":[{"name":"0bitmap$691"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$494", - "fields":[{"name":"0bitmap$581"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$767", + "fields":[{"name":"0bitmap$692"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$50", - "fields":[{"name":"0bitmap$177"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$768", + "fields":[{"name":"0bitmap$693"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$639", - "fields":[{"name":"0bitmap$612"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$769", + "fields":[{"name":"0bitmap$694"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$674", - "fields":[{"name":"0bitmap$643"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$771", + "fields":[{"name":"0bitmap$699"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$675", - "fields":[{"name":"0bitmap$642"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$772", + "fields":[{"name":"0bitmap$836"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$676", - "fields":[{"name":"0bitmap$624"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$773", + "fields":[{"name":"0bitmap$750"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$691", - "fields":[{"name":"0bitmap$627"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$774", + "fields":[{"name":"0bitmap$735"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$692", - "fields":[{"name":"0bitmap$625"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$813", + "fields":[{"name":"0bitmap$746"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$693", - "fields":[{"name":"0bitmap$626"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$814", + "fields":[{"name":"0bitmap$740"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$695", - "fields":[{"name":"0bitmap$641"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$815", + "fields":[{"name":"0bitmap$736"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$711", - "fields":[{"name":"0bitmap$674"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$816", + "fields":[{"name":"0bitmap$737"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$746", - "fields":[{"name":"0bitmap$698"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$817", + "fields":[{"name":"0bitmap$738"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$772", - "fields":[{"name":"0bitmap$701"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$818", + "fields":[{"name":"0bitmap$739"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$775", - "fields":[{"name":"0bitmap$704"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$820", + "fields":[{"name":"0bitmap$745"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$778", - "fields":[{"name":"0bitmap$725"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$825", + "fields":[{"name":"0bitmap$749"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$779", - "fields":[{"name":"0bitmap$717"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$826", + "fields":[{"name":"0bitmap$747"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$793", - "fields":[{"name":"0bitmap$724"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$827", + "fields":[{"name":"0bitmap$748"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$794", - "fields":[{"name":"0bitmap$723"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$828", + "fields":[{"name":"0bitmap$753"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$800", - "fields":[{"name":"0bitmap$739"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$829", + "fields":[{"name":"0bitmap$752"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$801", - "fields":[{"name":"0bitmap$738"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$831", + "fields":[{"name":"0bitmap$819"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$802", - "fields":[{"name":"0bitmap$727"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$832", + "fields":[{"name":"0bitmap$789"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$804", - "fields":[{"name":"0bitmap$737"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$871", + "fields":[{"name":"0bitmap$813"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$805", - "fields":[{"name":"0bitmap$736"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$872", + "fields":[{"name":"0bitmap$793"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$806", - "fields":[{"name":"0bitmap$728"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$873", + "fields":[{"name":"0bitmap$790"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$807", - "fields":[{"name":"0bitmap$729"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$874", + "fields":[{"name":"0bitmap$791"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$808", - "fields":[{"name":"0bitmap$730"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$875", + "fields":[{"name":"0bitmap$792"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$809", - "fields":[{"name":"0bitmap$731"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$877", + "fields":[{"name":"0bitmap$807"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$810", - "fields":[{"name":"0bitmap$732"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$878", + "fields":[{"name":"0bitmap$794"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$811", - "fields":[{"name":"0bitmap$733"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$879", + "fields":[{"name":"0bitmap$795"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$812", - "fields":[{"name":"0bitmap$734"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$880", + "fields":[{"name":"0bitmap$796"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$813", - "fields":[{"name":"0bitmap$735"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$881", + "fields":[{"name":"0bitmap$797"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$815", - "fields":[{"name":"0bitmap$740"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$882", + "fields":[{"name":"0bitmap$798"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$816", - "fields":[{"name":"0bitmap$877"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$883", + "fields":[{"name":"0bitmap$799"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$817", - "fields":[{"name":"0bitmap$791"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$884", + "fields":[{"name":"0bitmap$800"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$818", - "fields":[{"name":"0bitmap$776"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$885", + "fields":[{"name":"0bitmap$801"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$857", - "fields":[{"name":"0bitmap$787"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$886", + "fields":[{"name":"0bitmap$802"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$858", - "fields":[{"name":"0bitmap$781"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$887", + "fields":[{"name":"0bitmap$803"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$859", - "fields":[{"name":"0bitmap$777"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$888", + "fields":[{"name":"0bitmap$804"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$860", - "fields":[{"name":"0bitmap$778"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$889", + "fields":[{"name":"0bitmap$805"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$861", - "fields":[{"name":"0bitmap$779"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$890", + "fields":[{"name":"0bitmap$806"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$862", - "fields":[{"name":"0bitmap$780"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$892", + "fields":[{"name":"0bitmap$812"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$864", - "fields":[{"name":"0bitmap$786"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$897", + "fields":[{"name":"0bitmap$818"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$869", - "fields":[{"name":"0bitmap$790"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$898", + "fields":[{"name":"0bitmap$814"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$870", - "fields":[{"name":"0bitmap$788"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$899", + "fields":[{"name":"0bitmap$815"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$871", - "fields":[{"name":"0bitmap$789"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$900", + "fields":[{"name":"0bitmap$816"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$872", - "fields":[{"name":"0bitmap$794"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$901", + "fields":[{"name":"0bitmap$817"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$873", - "fields":[{"name":"0bitmap$793"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$902", + "fields":[{"name":"0bitmap$835"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$875", - "fields":[{"name":"0bitmap$860"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$903", + "fields":[{"name":"0bitmap$829"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$876", - "fields":[{"name":"0bitmap$830"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$914", + "fields":[{"name":"0bitmap$834"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$915", - "fields":[{"name":"0bitmap$854"}] + "fields":[{"name":"0bitmap$830"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$916", - "fields":[{"name":"0bitmap$834"}] + "fields":[{"name":"0bitmap$831"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$917", - "fields":[{"name":"0bitmap$831"}] + "fields":[{"name":"0bitmap$832"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$918", - "fields":[{"name":"0bitmap$832"}] + "fields":[{"name":"0bitmap$833"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$919", - "fields":[{"name":"0bitmap$833"}] + "fields":[{"name":"0bitmap$837"}] +}, +{ + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$920", + "fields":[{"name":"0bitmap$937"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$921", - "fields":[{"name":"0bitmap$848"}] + "fields":[{"name":"0bitmap$849"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$922", - "fields":[{"name":"0bitmap$835"}] + "fields":[{"name":"0bitmap$847"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$923", - "fields":[{"name":"0bitmap$836"}] + "fields":[{"name":"0bitmap$846"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$924", - "fields":[{"name":"0bitmap$837"}] -}, -{ - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$925", "fields":[{"name":"0bitmap$838"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$926", + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$925", "fields":[{"name":"0bitmap$839"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$927", + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$926", "fields":[{"name":"0bitmap$840"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$928", + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$927", "fields":[{"name":"0bitmap$841"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$929", + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$928", "fields":[{"name":"0bitmap$842"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$930", + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$929", "fields":[{"name":"0bitmap$843"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$931", + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$930", "fields":[{"name":"0bitmap$844"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$932", + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$931", "fields":[{"name":"0bitmap$845"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$933", - "fields":[{"name":"0bitmap$846"}] + "fields":[{"name":"0bitmap$848"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$934", - "fields":[{"name":"0bitmap$847"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$935", + "fields":[{"name":"0bitmap$865"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$936", - "fields":[{"name":"0bitmap$853"}] -}, -{ - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$941", "fields":[{"name":"0bitmap$859"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$942", - "fields":[{"name":"0bitmap$855"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$947", + "fields":[{"name":"0bitmap$863"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$943", - "fields":[{"name":"0bitmap$856"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$948", + "fields":[{"name":"0bitmap$862"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$944", - "fields":[{"name":"0bitmap$857"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$949", + "fields":[{"name":"0bitmap$860"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$945", - "fields":[{"name":"0bitmap$858"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$950", + "fields":[{"name":"0bitmap$861"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$946", - "fields":[{"name":"0bitmap$876"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$952", + "fields":[{"name":"0bitmap$864"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$947", - "fields":[{"name":"0bitmap$870"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$954", + "fields":[{"name":"0bitmap$875"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$958", - "fields":[{"name":"0bitmap$875"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$965", + "fields":[{"name":"0bitmap$879"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$959", - "fields":[{"name":"0bitmap$871"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$970", + "fields":[{"name":"0bitmap$880"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$960", - "fields":[{"name":"0bitmap$872"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$971", + "fields":[{"name":"0bitmap$881"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$961", - "fields":[{"name":"0bitmap$873"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$972", + "fields":[{"name":"0bitmap$882"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$962", - "fields":[{"name":"0bitmap$874"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$973", + "fields":[{"name":"0bitmap$884"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$963", - "fields":[{"name":"0bitmap$878"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$974", + "fields":[{"name":"0bitmap$883"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$964", - "fields":[{"name":"0bitmap$978"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$975", + "fields":[{"name":"0bitmap$886"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$965", - "fields":[{"name":"0bitmap$890"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$976", + "fields":[{"name":"0bitmap$885"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$966", - "fields":[{"name":"0bitmap$888"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$977", + "fields":[{"name":"0bitmap$903"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$967", + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$978", "fields":[{"name":"0bitmap$887"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$968", - "fields":[{"name":"0bitmap$879"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$979", + "fields":[{"name":"0bitmap$888"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$969", - "fields":[{"name":"0bitmap$880"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$980", + "fields":[{"name":"0bitmap$902"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$970", - "fields":[{"name":"0bitmap$881"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$981", + "fields":[{"name":"0bitmap$901"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$971", - "fields":[{"name":"0bitmap$882"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$982", + "fields":[{"name":"0bitmap$889"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$972", - "fields":[{"name":"0bitmap$883"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$983", + "fields":[{"name":"0bitmap$895"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$973", - "fields":[{"name":"0bitmap$884"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$984", + "fields":[{"name":"0bitmap$894"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$974", - "fields":[{"name":"0bitmap$885"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$985", + "fields":[{"name":"0bitmap$890"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$975", - "fields":[{"name":"0bitmap$886"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$986", + "fields":[{"name":"0bitmap$891"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$977", - "fields":[{"name":"0bitmap$889"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$987", + "fields":[{"name":"0bitmap$892"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$979", - "fields":[{"name":"0bitmap$906"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$988", + "fields":[{"name":"0bitmap$893"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$980", + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$990", "fields":[{"name":"0bitmap$900"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$991", - "fields":[{"name":"0bitmap$904"}] + "fields":[{"name":"0bitmap$899"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$992", - "fields":[{"name":"0bitmap$903"}] + "fields":[{"name":"0bitmap$896"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$993", - "fields":[{"name":"0bitmap$901"}] + "fields":[{"name":"0bitmap$897"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$994", - "fields":[{"name":"0bitmap$902"}] + "fields":[{"name":"0bitmap$898"}] }, { "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$996", + "fields":[{"name":"0bitmap$916"}] +}, +{ + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$997", "fields":[{"name":"0bitmap$905"}] }, { - "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$998", - "fields":[{"name":"0bitmap$916"}] + "name":"fpp.compiler.codegen.AnalysisJsonEncoder$$anon$999", + "fields":[{"name":"0bitmap$915"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$", @@ -2436,7 +2496,7 @@ }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$10", - "fields":[{"name":"0bitmap$287"}] + "fields":[{"name":"0bitmap$300"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$100", @@ -2496,95 +2556,95 @@ }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$114", - "fields":[{"name":"0bitmap$56"}] + "fields":[{"name":"0bitmap$54"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$115", - "fields":[{"name":"0bitmap$54"}] + "fields":[{"name":"0bitmap$55"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$116", - "fields":[{"name":"0bitmap$55"}] + "fields":[{"name":"0bitmap$56"}] +}, +{ + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$117", + "fields":[{"name":"0bitmap$65"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$118", - "fields":[{"name":"0bitmap$61"}] + "fields":[{"name":"0bitmap$64"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$119", - "fields":[{"name":"0bitmap$60"}] + "fields":[{"name":"0bitmap$63"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$12", - "fields":[{"name":"0bitmap$293"}] + "fields":[{"name":"0bitmap$306"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$120", - "fields":[{"name":"0bitmap$64"}] + "fields":[{"name":"0bitmap$62"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$121", - "fields":[{"name":"0bitmap$63"}] + "fields":[{"name":"0bitmap$60"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$122", - "fields":[{"name":"0bitmap$62"}] -}, -{ - "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$123", - "fields":[{"name":"0bitmap$66"}] + "fields":[{"name":"0bitmap$61"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$124", - "fields":[{"name":"0bitmap$65"}] + "fields":[{"name":"0bitmap$67"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$125", - "fields":[{"name":"0bitmap$68"}] + "fields":[{"name":"0bitmap$66"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$126", - "fields":[{"name":"0bitmap$67"}] + "fields":[{"name":"0bitmap$70"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$127", - "fields":[{"name":"0bitmap$70"}] + "fields":[{"name":"0bitmap$69"}] +}, +{ + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$128", + "fields":[{"name":"0bitmap$68"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$129", - "fields":[{"name":"0bitmap$81"}] + "fields":[{"name":"0bitmap$72"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$130", - "fields":[{"name":"0bitmap$80"}] + "fields":[{"name":"0bitmap$71"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$131", - "fields":[{"name":"0bitmap$79"}] + "fields":[{"name":"0bitmap$74"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$132", - "fields":[{"name":"0bitmap$71"}] + "fields":[{"name":"0bitmap$73"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$133", - "fields":[{"name":"0bitmap$72"}] -}, -{ - "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$134", - "fields":[{"name":"0bitmap$73"}] + "fields":[{"name":"0bitmap$76"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$135", - "fields":[{"name":"0bitmap$74"}] + "fields":[{"name":"0bitmap$88"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$136", - "fields":[{"name":"0bitmap$75"}] + "fields":[{"name":"0bitmap$87"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$137", - "fields":[{"name":"0bitmap$76"}] + "fields":[{"name":"0bitmap$86"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$138", @@ -2594,89 +2654,89 @@ "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$139", "fields":[{"name":"0bitmap$78"}] }, +{ + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$140", + "fields":[{"name":"0bitmap$79"}] +}, +{ + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$141", + "fields":[{"name":"0bitmap$80"}] +}, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$142", - "fields":[{"name":"0bitmap$85"}] + "fields":[{"name":"0bitmap$81"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$143", - "fields":[{"name":"0bitmap$83"}] + "fields":[{"name":"0bitmap$82"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$144", - "fields":[{"name":"0bitmap$84"}] + "fields":[{"name":"0bitmap$83"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$145", - "fields":[{"name":"0bitmap$117"}] + "fields":[{"name":"0bitmap$84"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$146", - "fields":[{"name":"0bitmap$87"}] -}, -{ - "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$147", - "fields":[{"name":"0bitmap$86"}] + "fields":[{"name":"0bitmap$85"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$148", - "fields":[{"name":"0bitmap$89"}] + "fields":[{"name":"0bitmap$94"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$149", - "fields":[{"name":"0bitmap$88"}] + "fields":[{"name":"0bitmap$93"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$150", - "fields":[{"name":"0bitmap$91"}] + "fields":[{"name":"0bitmap$92"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$151", - "fields":[{"name":"0bitmap$90"}] + "fields":[{"name":"0bitmap$89"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$152", - "fields":[{"name":"0bitmap$93"}] + "fields":[{"name":"0bitmap$90"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$153", - "fields":[{"name":"0bitmap$92"}] -}, -{ - "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$154", - "fields":[{"name":"0bitmap$97"}] + "fields":[{"name":"0bitmap$91"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$155", - "fields":[{"name":"0bitmap$96"}] + "fields":[{"name":"0bitmap$98"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$156", - "fields":[{"name":"0bitmap$94"}] + "fields":[{"name":"0bitmap$96"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$157", - "fields":[{"name":"0bitmap$95"}] + "fields":[{"name":"0bitmap$97"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$158", - "fields":[{"name":"0bitmap$99"}] + "fields":[{"name":"0bitmap$130"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$159", - "fields":[{"name":"0bitmap$98"}] + "fields":[{"name":"0bitmap$100"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$160", - "fields":[{"name":"0bitmap$102"}] + "fields":[{"name":"0bitmap$99"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$161", - "fields":[{"name":"0bitmap$101"}] + "fields":[{"name":"0bitmap$102"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$162", - "fields":[{"name":"0bitmap$100"}] + "fields":[{"name":"0bitmap$101"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$163", @@ -2696,67 +2756,75 @@ }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$167", - "fields":[{"name":"0bitmap$108"}] + "fields":[{"name":"0bitmap$110"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$168", - "fields":[{"name":"0bitmap$107"}] + "fields":[{"name":"0bitmap$109"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$169", - "fields":[{"name":"0bitmap$111"}] + "fields":[{"name":"0bitmap$107"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$17", - "fields":[{"name":"0bitmap$318"}] + "fields":[{"name":"0bitmap$331"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$170", - "fields":[{"name":"0bitmap$110"}] + "fields":[{"name":"0bitmap$108"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$171", - "fields":[{"name":"0bitmap$109"}] + "fields":[{"name":"0bitmap$112"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$172", - "fields":[{"name":"0bitmap$113"}] + "fields":[{"name":"0bitmap$111"}] +}, +{ + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$173", + "fields":[{"name":"0bitmap$115"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$174", - "fields":[{"name":"0bitmap$116"}] + "fields":[{"name":"0bitmap$114"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$175", - "fields":[{"name":"0bitmap$115"}] + "fields":[{"name":"0bitmap$113"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$176", - "fields":[{"name":"0bitmap$114"}] + "fields":[{"name":"0bitmap$117"}] +}, +{ + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$177", + "fields":[{"name":"0bitmap$116"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$178", - "fields":[{"name":"0bitmap$139"}] + "fields":[{"name":"0bitmap$119"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$179", - "fields":[{"name":"0bitmap$121"}] + "fields":[{"name":"0bitmap$118"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$18", - "fields":[{"name":"0bitmap$298"}] + "fields":[{"name":"0bitmap$311"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$180", - "fields":[{"name":"0bitmap$120"}] + "fields":[{"name":"0bitmap$121"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$181", - "fields":[{"name":"0bitmap$118"}] + "fields":[{"name":"0bitmap$120"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$182", - "fields":[{"name":"0bitmap$119"}] + "fields":[{"name":"0bitmap$124"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$183", @@ -2768,43 +2836,39 @@ }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$185", - "fields":[{"name":"0bitmap$125"}] + "fields":[{"name":"0bitmap$126"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$187", - "fields":[{"name":"0bitmap$128"}] + "fields":[{"name":"0bitmap$129"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$188", - "fields":[{"name":"0bitmap$127"}] + "fields":[{"name":"0bitmap$128"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$189", - "fields":[{"name":"0bitmap$126"}] -}, -{ - "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$190", - "fields":[{"name":"0bitmap$130"}] + "fields":[{"name":"0bitmap$127"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$191", - "fields":[{"name":"0bitmap$129"}] + "fields":[{"name":"0bitmap$152"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$192", - "fields":[{"name":"0bitmap$132"}] + "fields":[{"name":"0bitmap$134"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$193", - "fields":[{"name":"0bitmap$131"}] + "fields":[{"name":"0bitmap$133"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$194", - "fields":[{"name":"0bitmap$138"}] + "fields":[{"name":"0bitmap$131"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$195", - "fields":[{"name":"0bitmap$137"}] + "fields":[{"name":"0bitmap$132"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$196", @@ -2812,55 +2876,59 @@ }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$197", - "fields":[{"name":"0bitmap$134"}] + "fields":[{"name":"0bitmap$135"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$198", - "fields":[{"name":"0bitmap$133"}] + "fields":[{"name":"0bitmap$138"}] }, { - "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$199", - "fields":[{"name":"0bitmap$135"}] + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$2", + "fields":[{"name":"0bitmap$336"}] }, { - "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$2", - "fields":[{"name":"0bitmap$323"}] + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$200", + "fields":[{"name":"0bitmap$141"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$201", - "fields":[{"name":"0bitmap$157"}] + "fields":[{"name":"0bitmap$140"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$202", - "fields":[{"name":"0bitmap$143"}] + "fields":[{"name":"0bitmap$139"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$203", - "fields":[{"name":"0bitmap$142"}] + "fields":[{"name":"0bitmap$143"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$204", - "fields":[{"name":"0bitmap$140"}] + "fields":[{"name":"0bitmap$142"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$205", - "fields":[{"name":"0bitmap$141"}] + "fields":[{"name":"0bitmap$145"}] +}, +{ + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$206", + "fields":[{"name":"0bitmap$144"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$207", - "fields":[{"name":"0bitmap$153"}] + "fields":[{"name":"0bitmap$151"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$208", - "fields":[{"name":"0bitmap$152"}] + "fields":[{"name":"0bitmap$150"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$209", - "fields":[{"name":"0bitmap$144"}] + "fields":[{"name":"0bitmap$149"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$210", - "fields":[{"name":"0bitmap$145"}] + "fields":[{"name":"0bitmap$147"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$211", @@ -2868,751 +2936,795 @@ }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$212", - "fields":[{"name":"0bitmap$147"}] -}, -{ - "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$213", "fields":[{"name":"0bitmap$148"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$214", - "fields":[{"name":"0bitmap$149"}] + "fields":[{"name":"0bitmap$170"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$215", - "fields":[{"name":"0bitmap$150"}] + "fields":[{"name":"0bitmap$156"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$216", - "fields":[{"name":"0bitmap$151"}] + "fields":[{"name":"0bitmap$155"}] +}, +{ + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$217", + "fields":[{"name":"0bitmap$153"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$218", "fields":[{"name":"0bitmap$154"}] }, { - "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$219", - "fields":[{"name":"0bitmap$155"}] + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$220", + "fields":[{"name":"0bitmap$166"}] }, { - "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$220", - "fields":[{"name":"0bitmap$156"}] + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$221", + "fields":[{"name":"0bitmap$165"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$222", - "fields":[{"name":"0bitmap$283"}] + "fields":[{"name":"0bitmap$157"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$223", - "fields":[{"name":"0bitmap$159"}] + "fields":[{"name":"0bitmap$158"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$224", - "fields":[{"name":"0bitmap$158"}] + "fields":[{"name":"0bitmap$159"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$225", - "fields":[{"name":"0bitmap$161"}] + "fields":[{"name":"0bitmap$160"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$226", - "fields":[{"name":"0bitmap$160"}] + "fields":[{"name":"0bitmap$161"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$227", - "fields":[{"name":"0bitmap$163"}] + "fields":[{"name":"0bitmap$162"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$228", - "fields":[{"name":"0bitmap$162"}] + "fields":[{"name":"0bitmap$163"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$229", - "fields":[{"name":"0bitmap$165"}] + "fields":[{"name":"0bitmap$164"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$23", - "fields":[{"name":"0bitmap$312"}] -}, -{ - "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$230", - "fields":[{"name":"0bitmap$164"}] + "fields":[{"name":"0bitmap$325"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$231", - "fields":[{"name":"0bitmap$168"}] + "fields":[{"name":"0bitmap$167"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$232", - "fields":[{"name":"0bitmap$167"}] + "fields":[{"name":"0bitmap$168"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$233", - "fields":[{"name":"0bitmap$166"}] -}, -{ - "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$234", - "fields":[{"name":"0bitmap$170"}] + "fields":[{"name":"0bitmap$169"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$235", - "fields":[{"name":"0bitmap$169"}] + "fields":[{"name":"0bitmap$296"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$236", - "fields":[{"name":"0bitmap$173"}] + "fields":[{"name":"0bitmap$172"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$237", - "fields":[{"name":"0bitmap$172"}] + "fields":[{"name":"0bitmap$171"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$238", - "fields":[{"name":"0bitmap$171"}] + "fields":[{"name":"0bitmap$174"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$239", - "fields":[{"name":"0bitmap$188"}] + "fields":[{"name":"0bitmap$173"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$24", - "fields":[{"name":"0bitmap$299"}] + "fields":[{"name":"0bitmap$312"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$240", - "fields":[{"name":"0bitmap$187"}] + "fields":[{"name":"0bitmap$176"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$241", - "fields":[{"name":"0bitmap$177"}] + "fields":[{"name":"0bitmap$175"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$242", - "fields":[{"name":"0bitmap$174"}] + "fields":[{"name":"0bitmap$178"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$243", - "fields":[{"name":"0bitmap$175"}] + "fields":[{"name":"0bitmap$177"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$244", - "fields":[{"name":"0bitmap$176"}] + "fields":[{"name":"0bitmap$181"}] +}, +{ + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$245", + "fields":[{"name":"0bitmap$180"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$246", - "fields":[{"name":"0bitmap$181"}] + "fields":[{"name":"0bitmap$179"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$247", - "fields":[{"name":"0bitmap$180"}] + "fields":[{"name":"0bitmap$183"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$248", - "fields":[{"name":"0bitmap$178"}] + "fields":[{"name":"0bitmap$182"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$249", - "fields":[{"name":"0bitmap$179"}] + "fields":[{"name":"0bitmap$186"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$25", - "fields":[{"name":"0bitmap$300"}] + "fields":[{"name":"0bitmap$313"}] +}, +{ + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$250", + "fields":[{"name":"0bitmap$185"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$251", - "fields":[{"name":"0bitmap$186"}] + "fields":[{"name":"0bitmap$184"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$252", - "fields":[{"name":"0bitmap$182"}] + "fields":[{"name":"0bitmap$201"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$253", - "fields":[{"name":"0bitmap$183"}] + "fields":[{"name":"0bitmap$200"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$254", - "fields":[{"name":"0bitmap$184"}] + "fields":[{"name":"0bitmap$190"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$255", - "fields":[{"name":"0bitmap$185"}] + "fields":[{"name":"0bitmap$187"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$256", - "fields":[{"name":"0bitmap$190"}] + "fields":[{"name":"0bitmap$188"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$257", "fields":[{"name":"0bitmap$189"}] }, -{ - "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$258", - "fields":[{"name":"0bitmap$204"}] -}, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$259", - "fields":[{"name":"0bitmap$203"}] + "fields":[{"name":"0bitmap$194"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$26", - "fields":[{"name":"0bitmap$301"}] + "fields":[{"name":"0bitmap$314"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$260", - "fields":[{"name":"0bitmap$194"}] + "fields":[{"name":"0bitmap$193"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$261", - "fields":[{"name":"0bitmap$193"}] + "fields":[{"name":"0bitmap$191"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$262", - "fields":[{"name":"0bitmap$191"}] + "fields":[{"name":"0bitmap$192"}] }, { - "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$263", - "fields":[{"name":"0bitmap$192"}] + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$264", + "fields":[{"name":"0bitmap$199"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$265", - "fields":[{"name":"0bitmap$202"}] + "fields":[{"name":"0bitmap$195"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$266", - "fields":[{"name":"0bitmap$195"}] + "fields":[{"name":"0bitmap$196"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$267", - "fields":[{"name":"0bitmap$196"}] + "fields":[{"name":"0bitmap$197"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$268", - "fields":[{"name":"0bitmap$197"}] + "fields":[{"name":"0bitmap$198"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$269", - "fields":[{"name":"0bitmap$198"}] + "fields":[{"name":"0bitmap$203"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$27", - "fields":[{"name":"0bitmap$302"}] + "fields":[{"name":"0bitmap$315"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$270", - "fields":[{"name":"0bitmap$199"}] + "fields":[{"name":"0bitmap$202"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$271", - "fields":[{"name":"0bitmap$200"}] + "fields":[{"name":"0bitmap$217"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$272", - "fields":[{"name":"0bitmap$201"}] + "fields":[{"name":"0bitmap$216"}] +}, +{ + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$273", + "fields":[{"name":"0bitmap$207"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$274", "fields":[{"name":"0bitmap$206"}] }, { - "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$276", - "fields":[{"name":"0bitmap$217"}] + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$275", + "fields":[{"name":"0bitmap$204"}] }, { - "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$277", - "fields":[{"name":"0bitmap$216"}] + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$276", + "fields":[{"name":"0bitmap$205"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$278", - "fields":[{"name":"0bitmap$210"}] + "fields":[{"name":"0bitmap$215"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$279", - "fields":[{"name":"0bitmap$209"}] + "fields":[{"name":"0bitmap$208"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$28", - "fields":[{"name":"0bitmap$303"}] + "fields":[{"name":"0bitmap$316"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$280", - "fields":[{"name":"0bitmap$207"}] + "fields":[{"name":"0bitmap$209"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$281", - "fields":[{"name":"0bitmap$208"}] -}, -{ - "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$283", - "fields":[{"name":"0bitmap$215"}] + "fields":[{"name":"0bitmap$210"}] }, { - "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$284", + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$282", "fields":[{"name":"0bitmap$211"}] }, { - "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$285", + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$283", "fields":[{"name":"0bitmap$212"}] }, { - "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$286", + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$284", "fields":[{"name":"0bitmap$213"}] }, { - "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$287", + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$285", "fields":[{"name":"0bitmap$214"}] }, { - "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$288", + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$287", "fields":[{"name":"0bitmap$219"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$289", - "fields":[{"name":"0bitmap$218"}] + "fields":[{"name":"0bitmap$230"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$29", - "fields":[{"name":"0bitmap$304"}] + "fields":[{"name":"0bitmap$317"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$290", - "fields":[{"name":"0bitmap$256"}] + "fields":[{"name":"0bitmap$229"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$291", - "fields":[{"name":"0bitmap$255"}] + "fields":[{"name":"0bitmap$223"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$292", - "fields":[{"name":"0bitmap$230"}] + "fields":[{"name":"0bitmap$222"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$293", - "fields":[{"name":"0bitmap$224"}] -}, -{ - "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$294", "fields":[{"name":"0bitmap$220"}] }, { - "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$295", + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$294", "fields":[{"name":"0bitmap$221"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$296", - "fields":[{"name":"0bitmap$222"}] + "fields":[{"name":"0bitmap$228"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$297", - "fields":[{"name":"0bitmap$223"}] + "fields":[{"name":"0bitmap$224"}] +}, +{ + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$298", + "fields":[{"name":"0bitmap$225"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$299", - "fields":[{"name":"0bitmap$229"}] + "fields":[{"name":"0bitmap$226"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$3", - "fields":[{"name":"0bitmap$320"}] + "fields":[{"name":"0bitmap$333"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$30", - "fields":[{"name":"0bitmap$305"}] + "fields":[{"name":"0bitmap$318"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$300", - "fields":[{"name":"0bitmap$225"}] + "fields":[{"name":"0bitmap$227"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$301", - "fields":[{"name":"0bitmap$226"}] + "fields":[{"name":"0bitmap$232"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$302", - "fields":[{"name":"0bitmap$227"}] + "fields":[{"name":"0bitmap$231"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$303", - "fields":[{"name":"0bitmap$228"}] + "fields":[{"name":"0bitmap$269"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$304", - "fields":[{"name":"0bitmap$254"}] + "fields":[{"name":"0bitmap$268"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$305", - "fields":[{"name":"0bitmap$234"}] + "fields":[{"name":"0bitmap$243"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$306", - "fields":[{"name":"0bitmap$231"}] + "fields":[{"name":"0bitmap$237"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$307", - "fields":[{"name":"0bitmap$232"}] + "fields":[{"name":"0bitmap$233"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$308", - "fields":[{"name":"0bitmap$233"}] + "fields":[{"name":"0bitmap$234"}] }, { - "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$31", - "fields":[{"name":"0bitmap$306"}] + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$309", + "fields":[{"name":"0bitmap$235"}] }, { - "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$310", - "fields":[{"name":"0bitmap$248"}] + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$31", + "fields":[{"name":"0bitmap$319"}] }, { - "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$311", - "fields":[{"name":"0bitmap$235"}] + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$310", + "fields":[{"name":"0bitmap$236"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$312", - "fields":[{"name":"0bitmap$236"}] + "fields":[{"name":"0bitmap$242"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$313", - "fields":[{"name":"0bitmap$237"}] + "fields":[{"name":"0bitmap$238"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$314", - "fields":[{"name":"0bitmap$238"}] + "fields":[{"name":"0bitmap$239"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$315", - "fields":[{"name":"0bitmap$239"}] + "fields":[{"name":"0bitmap$240"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$316", - "fields":[{"name":"0bitmap$240"}] + "fields":[{"name":"0bitmap$241"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$317", - "fields":[{"name":"0bitmap$241"}] + "fields":[{"name":"0bitmap$267"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$318", - "fields":[{"name":"0bitmap$242"}] + "fields":[{"name":"0bitmap$247"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$319", - "fields":[{"name":"0bitmap$243"}] + "fields":[{"name":"0bitmap$244"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$32", - "fields":[{"name":"0bitmap$307"}] + "fields":[{"name":"0bitmap$320"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$320", - "fields":[{"name":"0bitmap$244"}] -}, -{ - "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$321", "fields":[{"name":"0bitmap$245"}] }, { - "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$322", + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$321", "fields":[{"name":"0bitmap$246"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$323", - "fields":[{"name":"0bitmap$247"}] + "fields":[{"name":"0bitmap$261"}] +}, +{ + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$324", + "fields":[{"name":"0bitmap$248"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$325", - "fields":[{"name":"0bitmap$253"}] + "fields":[{"name":"0bitmap$249"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$326", - "fields":[{"name":"0bitmap$249"}] + "fields":[{"name":"0bitmap$250"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$327", - "fields":[{"name":"0bitmap$250"}] + "fields":[{"name":"0bitmap$251"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$328", - "fields":[{"name":"0bitmap$251"}] + "fields":[{"name":"0bitmap$252"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$329", - "fields":[{"name":"0bitmap$252"}] + "fields":[{"name":"0bitmap$253"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$33", - "fields":[{"name":"0bitmap$308"}] + "fields":[{"name":"0bitmap$321"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$330", - "fields":[{"name":"0bitmap$258"}] + "fields":[{"name":"0bitmap$254"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$331", - "fields":[{"name":"0bitmap$257"}] + "fields":[{"name":"0bitmap$255"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$332", - "fields":[{"name":"0bitmap$260"}] + "fields":[{"name":"0bitmap$256"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$333", - "fields":[{"name":"0bitmap$259"}] + "fields":[{"name":"0bitmap$257"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$334", - "fields":[{"name":"0bitmap$267"}] + "fields":[{"name":"0bitmap$258"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$335", - "fields":[{"name":"0bitmap$266"}] + "fields":[{"name":"0bitmap$259"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$336", - "fields":[{"name":"0bitmap$265"}] -}, -{ - "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$337", - "fields":[{"name":"0bitmap$261"}] + "fields":[{"name":"0bitmap$260"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$338", - "fields":[{"name":"0bitmap$262"}] + "fields":[{"name":"0bitmap$266"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$339", - "fields":[{"name":"0bitmap$263"}] + "fields":[{"name":"0bitmap$262"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$34", - "fields":[{"name":"0bitmap$309"}] + "fields":[{"name":"0bitmap$322"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$340", - "fields":[{"name":"0bitmap$264"}] + "fields":[{"name":"0bitmap$263"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$341", - "fields":[{"name":"0bitmap$280"}] + "fields":[{"name":"0bitmap$264"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$342", - "fields":[{"name":"0bitmap$279"}] + "fields":[{"name":"0bitmap$265"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$343", - "fields":[{"name":"0bitmap$270"}] + "fields":[{"name":"0bitmap$271"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$344", - "fields":[{"name":"0bitmap$268"}] + "fields":[{"name":"0bitmap$270"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$345", - "fields":[{"name":"0bitmap$269"}] + "fields":[{"name":"0bitmap$273"}] +}, +{ + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$346", + "fields":[{"name":"0bitmap$272"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$347", - "fields":[{"name":"0bitmap$274"}] + "fields":[{"name":"0bitmap$280"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$348", - "fields":[{"name":"0bitmap$271"}] + "fields":[{"name":"0bitmap$279"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$349", - "fields":[{"name":"0bitmap$272"}] + "fields":[{"name":"0bitmap$278"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$35", - "fields":[{"name":"0bitmap$310"}] + "fields":[{"name":"0bitmap$323"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$350", - "fields":[{"name":"0bitmap$273"}] + "fields":[{"name":"0bitmap$274"}] +}, +{ + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$351", + "fields":[{"name":"0bitmap$275"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$352", - "fields":[{"name":"0bitmap$278"}] + "fields":[{"name":"0bitmap$276"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$353", - "fields":[{"name":"0bitmap$275"}] + "fields":[{"name":"0bitmap$277"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$354", - "fields":[{"name":"0bitmap$276"}] + "fields":[{"name":"0bitmap$293"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$355", - "fields":[{"name":"0bitmap$277"}] + "fields":[{"name":"0bitmap$292"}] +}, +{ + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$356", + "fields":[{"name":"0bitmap$283"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$357", - "fields":[{"name":"0bitmap$282"}] + "fields":[{"name":"0bitmap$281"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$358", - "fields":[{"name":"0bitmap$281"}] + "fields":[{"name":"0bitmap$282"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$36", - "fields":[{"name":"0bitmap$311"}] + "fields":[{"name":"0bitmap$324"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$360", - "fields":[{"name":"0bitmap$359"}] + "fields":[{"name":"0bitmap$287"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$361", - "fields":[{"name":"0bitmap$335"}] + "fields":[{"name":"0bitmap$284"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$362", - "fields":[{"name":"0bitmap$334"}] + "fields":[{"name":"0bitmap$285"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$363", - "fields":[{"name":"0bitmap$350"}] -}, -{ - "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$364", - "fields":[{"name":"0bitmap$349"}] + "fields":[{"name":"0bitmap$286"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$365", - "fields":[{"name":"0bitmap$339"}] + "fields":[{"name":"0bitmap$291"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$366", - "fields":[{"name":"0bitmap$338"}] + "fields":[{"name":"0bitmap$288"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$367", - "fields":[{"name":"0bitmap$336"}] + "fields":[{"name":"0bitmap$289"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$368", - "fields":[{"name":"0bitmap$337"}] -}, -{ - "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$369", - "fields":[{"name":"0bitmap$348"}] + "fields":[{"name":"0bitmap$290"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$370", - "fields":[{"name":"0bitmap$347"}] + "fields":[{"name":"0bitmap$295"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$371", - "fields":[{"name":"0bitmap$340"}] -}, -{ - "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$372", - "fields":[{"name":"0bitmap$341"}] + "fields":[{"name":"0bitmap$294"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$373", - "fields":[{"name":"0bitmap$342"}] + "fields":[{"name":"0bitmap$372"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$374", - "fields":[{"name":"0bitmap$343"}] + "fields":[{"name":"0bitmap$348"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$375", - "fields":[{"name":"0bitmap$344"}] + "fields":[{"name":"0bitmap$347"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$376", - "fields":[{"name":"0bitmap$345"}] + "fields":[{"name":"0bitmap$363"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$377", - "fields":[{"name":"0bitmap$346"}] + "fields":[{"name":"0bitmap$362"}] }, { - "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$379", + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$378", "fields":[{"name":"0bitmap$352"}] }, +{ + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$379", + "fields":[{"name":"0bitmap$351"}] +}, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$38", - "fields":[{"name":"0bitmap$317"}] + "fields":[{"name":"0bitmap$330"}] +}, +{ + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$380", + "fields":[{"name":"0bitmap$349"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$381", - "fields":[{"name":"0bitmap$355"}] + "fields":[{"name":"0bitmap$350"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$382", - "fields":[{"name":"0bitmap$354"}] + "fields":[{"name":"0bitmap$361"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$383", - "fields":[{"name":"0bitmap$353"}] + "fields":[{"name":"0bitmap$360"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$384", - "fields":[{"name":"0bitmap$358"}] + "fields":[{"name":"0bitmap$353"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$385", - "fields":[{"name":"0bitmap$357"}] + "fields":[{"name":"0bitmap$354"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$386", + "fields":[{"name":"0bitmap$355"}] +}, +{ + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$387", "fields":[{"name":"0bitmap$356"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$388", - "fields":[{"name":"0bitmap$360"}] + "fields":[{"name":"0bitmap$357"}] +}, +{ + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$389", + "fields":[{"name":"0bitmap$358"}] +}, +{ + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$390", + "fields":[{"name":"0bitmap$359"}] +}, +{ + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$392", + "fields":[{"name":"0bitmap$365"}] +}, +{ + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$394", + "fields":[{"name":"0bitmap$368"}] +}, +{ + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$395", + "fields":[{"name":"0bitmap$367"}] +}, +{ + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$396", + "fields":[{"name":"0bitmap$366"}] +}, +{ + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$397", + "fields":[{"name":"0bitmap$371"}] +}, +{ + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$398", + "fields":[{"name":"0bitmap$370"}] +}, +{ + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$399", + "fields":[{"name":"0bitmap$369"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$4", - "fields":[{"name":"0bitmap$319"}] + "fields":[{"name":"0bitmap$332"}] +}, +{ + "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$401", + "fields":[{"name":"0bitmap$373"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$43", - "fields":[{"name":"0bitmap$322"}] + "fields":[{"name":"0bitmap$335"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$44", - "fields":[{"name":"0bitmap$321"}] + "fields":[{"name":"0bitmap$334"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$46", - "fields":[{"name":"0bitmap$333"}] + "fields":[{"name":"0bitmap$346"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$47", - "fields":[{"name":"0bitmap$325"}] + "fields":[{"name":"0bitmap$338"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$49", - "fields":[{"name":"0bitmap$332"}] + "fields":[{"name":"0bitmap$345"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$5", - "fields":[{"name":"0bitmap$294"}] + "fields":[{"name":"0bitmap$307"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$50", - "fields":[{"name":"0bitmap$331"}] + "fields":[{"name":"0bitmap$344"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$51", - "fields":[{"name":"0bitmap$330"}] + "fields":[{"name":"0bitmap$343"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$52", - "fields":[{"name":"0bitmap$327"}] + "fields":[{"name":"0bitmap$340"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$54", - "fields":[{"name":"0bitmap$329"}] + "fields":[{"name":"0bitmap$342"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$55", - "fields":[{"name":"0bitmap$328"}] + "fields":[{"name":"0bitmap$341"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$58", @@ -3624,7 +3736,7 @@ }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$6", - "fields":[{"name":"0bitmap$288"}] + "fields":[{"name":"0bitmap$301"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$60", @@ -3668,7 +3780,7 @@ }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$7", - "fields":[{"name":"0bitmap$284"}] + "fields":[{"name":"0bitmap$297"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$70", @@ -3712,7 +3824,7 @@ }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$8", - "fields":[{"name":"0bitmap$285"}] + "fields":[{"name":"0bitmap$298"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$80", @@ -3736,7 +3848,7 @@ }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$86", - "fields":[{"name":"0bitmap$82"}] + "fields":[{"name":"0bitmap$95"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$87", @@ -3752,7 +3864,7 @@ }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$9", - "fields":[{"name":"0bitmap$286"}] + "fields":[{"name":"0bitmap$299"}] }, { "name":"fpp.compiler.codegen.AstJsonEncoder$$anon$90", diff --git a/compiler/lib/src/main/scala/analysis/Analysis.scala b/compiler/lib/src/main/scala/analysis/Analysis.scala index 168f3014c3..68fdce302d 100644 --- a/compiler/lib/src/main/scala/analysis/Analysis.scala +++ b/compiler/lib/src/main/scala/analysis/Analysis.scala @@ -88,6 +88,14 @@ case class Analysis( tlmPacketSet: Option[TlmPacketSet] = None, /** The mapping from nodes to implied uses */ impliedUseMap: Map[AstNode.Id, ImpliedUse.Uses] = Map(), + /** Node ID of the template expansion currently */ + template: Option[AstNode.Id] = None, + /** Maps template expansion AST nodes to their */ + templateExpansionMap: Map[AstNode.Id, TemplateExpansion] = Map(), + /** Tracks the current expansion we are analyzing inside of */ + templateExpansion: Option[TemplateExpansion] = None, + /** Node ID of the template definition we are currently cloning inside of */ + templateDefinition: Option[AstNode.Id] = None, /** The set of symbols defined with a dictionary specifier */ dictionarySymbolSet: Set[Symbol] = Set(), /** The mapping from system symbols to systems */ @@ -294,6 +302,7 @@ case class Analysis( this.useDefMap(id) match { case cis: Symbol.ComponentInstance => Right(cis) case ts: Symbol.Topology => Right(ts) + case ps: Symbol.TemplateInterfaceArg => Right(ps) case s => Left( SemanticError.InvalidSymbol( s.getUnqualifiedName, @@ -306,11 +315,20 @@ case class Analysis( /** Gets an interface instance from the topology or component instance map */ def getInterfaceInstance(id: AstNode.Id): Result.Result[InterfaceInstance] = - for (iis <- getInterfaceInstanceSymbol(id)) - yield iis match { - case cis: Symbol.ComponentInstance => InterfaceInstance.fromComponentInstance(this.componentInstanceMap(cis)) - case top: Symbol.Topology => InterfaceInstance.fromTopology(this.topologyMap(top)) + for { + iis <- getInterfaceInstanceSymbol(id) + ii <- { + iis match { + case cis: Symbol.ComponentInstance => Right(InterfaceInstance.fromComponentInstance(this.componentInstanceMap(cis))) + case top: Symbol.Topology => Right(InterfaceInstance.fromTopology(this.topologyMap(top))) + case ts: Symbol.TemplateInterfaceArg => + for { + ii <- getInterfaceInstance(ts.value.id) + iface <- this.getInterface(ts.paramDef.interface.id) + } yield InterfaceInstance.fromTemplateArg(ts.paramDef, iface, ii) + } } + } yield ii /** Gets an interface symbol from use-def map */ def getInterfaceSymbol(id: AstNode.Id): Result.Result[Symbol.Interface] = @@ -331,6 +349,20 @@ case class Analysis( for (cis <- getInterfaceSymbol(id)) yield this.interfaceMap(cis) + /** Gets a template symbol from use-def map */ + def getTemplateSymbol(id: AstNode.Id): Result.Result[Symbol.Template] = + this.useDefMap(id) match { + case ts: Symbol.Template => Right(ts) + case s => Left( + SemanticError.InvalidSymbol( + s.getUnqualifiedName, + Locations.get(id), + "not a template symbol", + s.getLoc + ) + ) + } + /** Gets a topology symbol from use-def map */ def getTopologySymbol(id: AstNode.Id): Result.Result[Symbol.Topology] = this.useDefMap(id) match { diff --git a/compiler/lib/src/main/scala/analysis/Analyzers/BasicUseAnalyzer.scala b/compiler/lib/src/main/scala/analysis/Analyzers/BasicUseAnalyzer.scala index 52ddae861f..3728336260 100644 --- a/compiler/lib/src/main/scala/analysis/Analyzers/BasicUseAnalyzer.scala +++ b/compiler/lib/src/main/scala/analysis/Analyzers/BasicUseAnalyzer.scala @@ -27,9 +27,27 @@ trait BasicUseAnalyzer extends TypeExpressionAnalyzer { /** A use of a type definition */ def typeUse(a: Analysis, node: AstNode[Ast.TypeName], use: Name.Qualified): Result = default(a) - /** A use of a state machine definition*/ + /** A use of a state machine definition */ def stateMachineUse(a: Analysis, node: AstNode[Ast.QualIdent], use: Name.Qualified): Result = default(a) + /** A use of a template definition */ + def templateUse(a: Analysis, node: AstNode[Ast.QualIdent], use: Name.Qualified): Result = default(a) + + /** A use of a template constant parameter */ + override def templateConstantArg(a: Analysis, arg: Symbol.TemplateConstantArg) = { + exprNode(a, arg.value) + } + + /** A use of a template type parameter */ + override def templateTypeArg(a: Analysis, arg: Symbol.TemplateTypeArg) = { + typeNameNode(a, arg.value) + } + + /** A use of a template interface parameter */ + override def templateInterfaceArg(a: Analysis, arg: Symbol.TemplateInterfaceArg) = { + qualIdentNode (interfaceInstanceUse) (a, arg.value) + } + /** An implied constant use */ def impliedConstantUse(a: Analysis, iu: ImpliedUse) = { val result = for { @@ -206,33 +224,70 @@ trait BasicUseAnalyzer extends TypeExpressionAnalyzer { portInstanceIdentifierNode(a, data.underlyingPort) } + private def portInstanceIdentifierNode(a: Analysis, node: AstNode[Ast.PortInstanceIdentifier]): Result = + qualIdentNode (interfaceInstanceUse) (a, node.data.interfaceInstance) + override def typeNameQualIdentNode(a: Analysis, node: AstNode[Ast.TypeName], tn: Ast.TypeNameQualIdent) = { val use = Name.Qualified.fromQualIdent(tn.name.data) typeUse(a, node, use) } - override def typeNameStringNode( + override def specTemplateExpandAnnotatedNode( a: Analysis, - node: AstNode[Ast.TypeName], - tn: Ast.TypeNameString + aNode: Ast.Annotated[AstNode[Ast.SpecTemplateExpand]] ) = { - val id = node.id + val (_, node, _) = aNode + val data = node.data for { - a <- visitImpliedUses(a, id) - a <- super.typeNameStringNode(a, node, tn) + a <- templateUse( + a, + data.template, + Name.Qualified.fromQualIdent(data.template.data) + ) + + a <- super.specTemplateExpandAnnotatedNode(a, aNode) } yield a } - private def portInstanceIdentifierNode(a: Analysis, node: AstNode[Ast.PortInstanceIdentifier]): Result = - qualIdentNode (interfaceInstanceUse) (a, node.data.interfaceInstance) + override def defModuleTemplateAnnotatedNode( + a: Analysis, + aNode: Ast.Annotated[AstNode[Ast.DefModuleTemplate]] + ) = { + def templateParam( + a: Analysis, + pNode: Ast.Annotated[AstNode[Ast.TemplateParam]] + ) = { + val (_, node, _) = pNode + node.data match { + case Ast.TemplateParam.Constant(_, tn) => typeNameNode(a, tn) + case Ast.TemplateParam.Interface(_, interface) => + qualIdentNode(interfaceUse)(a, interface) + case _: Ast.TemplateParam.Type => Right(a) + } + } - private def qualIdentNode + Result.foldLeft (aNode._2.data.params) (a) (templateParam) + } + + protected def qualIdentNode (f: (Analysis, AstNode[Ast.QualIdent], Name.Qualified) => Result) (a: Analysis, qualIdent: AstNode[Ast.QualIdent]): Result = { val use = Name.Qualified.fromQualIdent(qualIdent.data) f(a, qualIdent, use) } + override def typeNameStringNode( + a: Analysis, + node: AstNode[Ast.TypeName], + tn: Ast.TypeNameString + ) = { + val id = node.id + for { + a <- visitImpliedUses(a, id) + a <- super.typeNameStringNode(a, node, tn) + } yield a + } + private def tlmChannelIdentifierNode ( a: Analysis, node: AstNode[Ast.TlmChannelIdentifier] diff --git a/compiler/lib/src/main/scala/analysis/Analyzers/ModuleAnalyzer.scala b/compiler/lib/src/main/scala/analysis/Analyzers/ModuleAnalyzer.scala index 8cf78d705b..10604d50f0 100644 --- a/compiler/lib/src/main/scala/analysis/Analyzers/ModuleAnalyzer.scala +++ b/compiler/lib/src/main/scala/analysis/Analyzers/ModuleAnalyzer.scala @@ -8,13 +8,30 @@ trait ModuleAnalyzer extends Analyzer { override def defModuleAnnotatedNode( a: Analysis, - node: Ast.Annotated[AstNode[Ast.DefModule]] + aNode: Ast.Annotated[AstNode[Ast.DefModule]] ) = { - val (_, node1, _) = node - val Ast.DefModule(name, members) = node1.data + val (_, node, _) = aNode + val Ast.DefModule(name, members) = node.data val a1 = a.copy(scopeNameList = name :: a.scopeNameList) for { a2 <- visitList(a1, members, matchModuleMember) } yield a2.copy(scopeNameList = a.scopeNameList) } + override def specTemplateExpandAnnotatedNode( + a: Analysis, + aNode: Ast.Annotated[AstNode[Ast.SpecTemplateExpand]] + ) = { + val (_, node, _) = aNode + // Check if this template has been expanded + node.data.members match { + case Some(members) => { + // Mark the analysis with the proper expansion + val a1 = a.copy(templateExpansion = Some(a.templateExpansionMap(node.id))) + for { a2 <- visitList(a1, members, matchModuleMember) } + yield a2.copy(templateExpansion = a.templateExpansion) + } + case None => Right(a) + } + } + } diff --git a/compiler/lib/src/main/scala/analysis/Analyzers/TemplateExpandAnalyzer.scala b/compiler/lib/src/main/scala/analysis/Analyzers/TemplateExpandAnalyzer.scala new file mode 100644 index 0000000000..8d268d0dde --- /dev/null +++ b/compiler/lib/src/main/scala/analysis/Analyzers/TemplateExpandAnalyzer.scala @@ -0,0 +1,45 @@ +package fpp.compiler.analysis + +import fpp.compiler.ast._ +import fpp.compiler.util._ + +/** Analyze template expansions members */ +trait TemplateExpandAnalyzer extends Analyzer { + + /** A use of a template constant argument */ + def templateConstantArg(a: Analysis, arg: Symbol.TemplateConstantArg) = default(a) + + /** A use of a template type parameter */ + def templateTypeArg(a: Analysis, arg: Symbol.TemplateTypeArg) = default(a) + + /** A use of a template interface parameter */ + def templateInterfaceArg(a: Analysis, arg: Symbol.TemplateInterfaceArg) = default(a) + + def templateParam(a: Analysis, arg: TemplateArgSymbol) = { + arg match { + case param: Symbol.TemplateConstantArg => templateConstantArg(a, param) + case param: Symbol.TemplateTypeArg => templateTypeArg(a, param) + case param: Symbol.TemplateInterfaceArg => templateInterfaceArg(a, param) + } + } + + override def specTemplateExpandAnnotatedNode( + a: Analysis, + aNode: Ast.Annotated[AstNode[Ast.SpecTemplateExpand]] + ) = { + val (_, node, _) = aNode + val data = node.data + for { + + // Analyze the parameters on this template expansion. + a <- a.templateExpansionMap.get(node.id) match { + case Some(expansion) => + Result.foldLeft (expansion.params.values.toList) (a) (templateParam) + case None => Right(a) + } + + a <- super.specTemplateExpandAnnotatedNode(a, aNode) + } yield a + } + +} diff --git a/compiler/lib/src/main/scala/analysis/Analyzers/TypeExpressionAnalyzer.scala b/compiler/lib/src/main/scala/analysis/Analyzers/TypeExpressionAnalyzer.scala index 49453d8d0f..baede0a8e0 100644 --- a/compiler/lib/src/main/scala/analysis/Analyzers/TypeExpressionAnalyzer.scala +++ b/compiler/lib/src/main/scala/analysis/Analyzers/TypeExpressionAnalyzer.scala @@ -12,6 +12,7 @@ trait TypeExpressionAnalyzer with StateMachineAnalyzer with TlmPacketSetAnalyzer with TopologyAnalyzer + with TemplateExpandAnalyzer { def defEnumConstantAnnotatedNode(a: Analysis, node: Ast.Annotated[AstNode[Ast.DefEnumConstant]]): Result = { @@ -296,4 +297,22 @@ trait TypeExpressionAnalyzer } yield a } + override def defModuleTemplateAnnotatedNode(a: Analysis, aNode: Ast.Annotated[AstNode[Ast.DefModuleTemplate]]) = { + val (_, node, _) = aNode + val data = node.data + Result.foldLeft(data.params) (a) ((a, param) => { + param._2.data match { + case Ast.TemplateParam.Constant(name, typeName) => + typeNameNode(a, typeName) + case _ => Right(a) + } + }) + } + + override def templateConstantArg(a: Analysis, arg: Symbol.TemplateConstantArg) = { + for { + a <- exprNode(a, arg.value) + } yield a + } + } diff --git a/compiler/lib/src/main/scala/analysis/Analyzers/UseAnalyzer.scala b/compiler/lib/src/main/scala/analysis/Analyzers/UseAnalyzer.scala index afa08dbb03..0da8bda3dc 100644 --- a/compiler/lib/src/main/scala/analysis/Analyzers/UseAnalyzer.scala +++ b/compiler/lib/src/main/scala/analysis/Analyzers/UseAnalyzer.scala @@ -26,7 +26,7 @@ trait UseAnalyzer extends BasicUseAnalyzer { override def exprDotNode(a: Analysis, node: AstNode[Ast.Expr], e: Ast.ExprDot) = a.useDefMap.get(node.id) match { - case Some(Symbol.Constant(_) | Symbol.EnumConstant(_)) => + case Some(Symbol.Constant(_) | Symbol.EnumConstant(_) | Symbol.TemplateConstantArg(_, _)) => // e is a use, so it must be a constant use val use = getQualifiedName(e) constantUse(a, node, use) diff --git a/compiler/lib/src/main/scala/analysis/CheckSemantics/CheckExprTypes.scala b/compiler/lib/src/main/scala/analysis/CheckSemantics/CheckExprTypes.scala index 5c1dba4f1a..0c7651a1b9 100644 --- a/compiler/lib/src/main/scala/analysis/CheckSemantics/CheckExprTypes.scala +++ b/compiler/lib/src/main/scala/analysis/CheckSemantics/CheckExprTypes.scala @@ -11,12 +11,15 @@ object CheckExprTypes extends UseAnalyzer { val symbol = a.useDefMap(node.id) for { a <- symbol match { - // Unqualified constant symbol: visit the constant definition + // Constant symbol: visit the constant definition // to ensure it has a type case Symbol.Constant(node) => defConstantAnnotatedNode(a, node) - // Unqualified enum symbol: if this is in scope, then we are in + // Enum symbol: if this is in scope, then we are in // the enum definition, so it already has a type case Symbol.EnumConstant(node) => Right(a) + // Template constant argument symbol: we are already inside the template expansion + // therefore this already has a type + case Symbol.TemplateConstantArg(_, _) => Right(a) // Invalid use of a symbol in an expression case _ => Left(SemanticError.InvalidSymbol( @@ -279,6 +282,23 @@ object CheckExprTypes extends UseAnalyzer { } yield a.assignType(node -> t) } + override def templateConstantArg( + a: Analysis, + arg: Symbol.TemplateConstantArg + ) = { + val Symbol.TemplateConstantArg(paramDef, value) = arg + for { + // Visit the literal value + a <- super.templateConstantArg(a, arg) + + // Make sure the value can be converted into the type in the template + ty <- Analysis.convertTypes( + Locations.get(value.id), + a.typeMap(value.id) -> a.typeMap(paramDef.typeName.id) + ) + } yield a.assignType(value -> ty) + } + override def specCommandAnnotatedNode(a: Analysis, aNode: Ast.Annotated[AstNode[Ast.SpecCommand]]) = { val (_, node, _) = aNode val data = node.data diff --git a/compiler/lib/src/main/scala/analysis/CheckSemantics/CheckSemantics.scala b/compiler/lib/src/main/scala/analysis/CheckSemantics/CheckSemantics.scala index c542847ed7..ecf256f563 100644 --- a/compiler/lib/src/main/scala/analysis/CheckSemantics/CheckSemantics.scala +++ b/compiler/lib/src/main/scala/analysis/CheckSemantics/CheckSemantics.scala @@ -10,6 +10,9 @@ object CheckSemantics { def tuList(a: Analysis, tul: List[Ast.TransUnit]): Result.Result[Analysis] = { for { a <- EnterSymbols.visitList(a, tul, EnterSymbols.transUnit) + a_tul <- ResolveTemplates.transUnit(a, tul) + a <- Right(a_tul._1) + tul <- Right(a_tul._2) a <- ConstructImpliedUseMap.visitList(a, tul, ConstructImpliedUseMap.transUnit) a <- CheckUses.visitList(a, tul, CheckUses.transUnit) _ <- CheckUseDefCycles.visitList(a, tul, CheckUseDefCycles.transUnit) @@ -19,6 +22,7 @@ object CheckSemantics { a <- EvalImpliedEnumConsts.visitList(a, tul, EvalImpliedEnumConsts.transUnit) a <- EvalConstantExprs.visitList(a, tul, EvalConstantExprs.transUnit) a <- FinalizeTypeDefs.visitList(a, tul, FinalizeTypeDefs.transUnit) + a <- FinalizeConstantExprs.visitList(a, tul, FinalizeConstantExprs.transUnit) _ <- CheckFrameworkConstantValues.check(a) a <- CheckPortDefs.visitList(a, tul, CheckPortDefs.transUnit) a <- CheckInterfaceDefs.visitList(a, tul, CheckInterfaceDefs.transUnit) @@ -28,6 +32,7 @@ object CheckSemantics { a <- CheckStateMachineDefs.visitList(a, tul, CheckStateMachineDefs.transUnit) a <- CheckTopologyInstances.visitList(a, tul, CheckTopologyInstances.transUnit) a <- CheckTopologyDefs.visitList(a, tul, CheckTopologyDefs.transUnit) + _ <- CheckTemplateInterfaceArgs.check(a) a <- BuildSpecLocMap.visitList(a, tul, BuildSpecLocMap.transUnit) a <- CheckSpecLocs.visitList(a, tul, CheckSpecLocs.transUnit) a <- CheckDictionaryDefs.visitList(a, tul, CheckDictionaryDefs.transUnit) diff --git a/compiler/lib/src/main/scala/analysis/CheckSemantics/CheckTemplateInterfaceArgs.scala b/compiler/lib/src/main/scala/analysis/CheckSemantics/CheckTemplateInterfaceArgs.scala new file mode 100644 index 0000000000..4476b86d77 --- /dev/null +++ b/compiler/lib/src/main/scala/analysis/CheckSemantics/CheckTemplateInterfaceArgs.scala @@ -0,0 +1,35 @@ +package fpp.compiler.analysis + +import fpp.compiler.ast._ +import fpp.compiler.util._ + +object CheckTemplateInterfaceArgs +{ + + /** Check all interface parameters template expansions implement the proper interfaces */ + def check(a: Analysis): Result.Result[Unit] = + Result.foldLeft(a.templateExpansionMap.toList) (()) ((_, expansion) => { + val (expansionNodeId, t) = expansion + Result.foldLeft(t.params.values.collect { + case arg @ Symbol.TemplateInterfaceArg(_, _) => arg + })(())((_, arg) => { + for { + // Resolve the concrete instance supplied as the argument + instance <- a.getInterfaceInstance(arg.value.id) + // Resolve the interface declared for this parameter + iface <- a.getInterface(arg.paramDef.interface.id) + // Make sure the concrete instance provides everything the declared + // interface requires (the declared interface must be a sub-interface + // of the concrete instance's port interface) + _ <- instance.getInterface.implements(iface.portInterface) match { + case Right(_) => Right(()) + case Left(err) => Left(SemanticError.InterfaceImplements( + Locations.get(arg.value.id), + err + )) + } + } yield (()) + }) + }) + +} diff --git a/compiler/lib/src/main/scala/analysis/CheckSemantics/CheckTemplateUses.scala b/compiler/lib/src/main/scala/analysis/CheckSemantics/CheckTemplateUses.scala new file mode 100644 index 0000000000..8adff45ff7 --- /dev/null +++ b/compiler/lib/src/main/scala/analysis/CheckSemantics/CheckTemplateUses.scala @@ -0,0 +1,50 @@ +package fpp.compiler.analysis + +import fpp.compiler.ast._ +import fpp.compiler.util._ + +object CheckTemplateUses + extends Analyzer + with ModuleAnalyzer +{ + val helpers = CheckUsesHelpers( + (a: Analysis) => a.nestedScope, + (a: Analysis, ns: NestedScope) => a.copy(nestedScope = ns), + (a: Analysis) => a.symbolScopeMap, + (a: Analysis) => a.useDefMap, + (a: Analysis, udm: Map[AstNode.Id, Symbol]) => a.copy(useDefMap = udm) + ) + + override def defModuleAnnotatedNode( + a: Analysis, + aNode: Ast.Annotated[AstNode[Ast.DefModule]] + ) = { + val node = aNode._2 + val Ast.DefModule(name, members) = node.data + for { + symbol <- { + val mapping = a.nestedScope.get (NameGroup.Value) _ + helpers.getSymbolForName(NameGroup.Value, mapping)(node.id, name) + } + a <- { + val scope = a.symbolScopeMap(symbol) + val newNestedScope = a.nestedScope.push(scope) + val a1 = a.copy(nestedScope = newNestedScope) + visitList(a1, members, matchModuleMember) + } + } + yield a.copy(nestedScope = a.nestedScope.pop) + } + + override def specTemplateExpandAnnotatedNode( + a: Analysis, + aNode: Ast.Annotated[AstNode[Ast.SpecTemplateExpand]] + ) = { + val (_, node, _) = aNode + val data = node.data + for { + a <- super.specTemplateExpandAnnotatedNode(a, aNode) + a <- helpers.visitQualIdentNode (NameGroup.Template) (a, data.template) + } yield a + } +} diff --git a/compiler/lib/src/main/scala/analysis/CheckSemantics/CheckUseDefCycles.scala b/compiler/lib/src/main/scala/analysis/CheckSemantics/CheckUseDefCycles.scala index 9e0c2fc7d9..3f45f2510a 100644 --- a/compiler/lib/src/main/scala/analysis/CheckSemantics/CheckUseDefCycles.scala +++ b/compiler/lib/src/main/scala/analysis/CheckSemantics/CheckUseDefCycles.scala @@ -49,6 +49,18 @@ object CheckUseDefCycles extends UseAnalyzer { visitDefPost(a, symbol, node, super.defInterfaceAnnotatedNode) } + override def templateConstantArg(a: Analysis, arg: Symbol.TemplateConstantArg) = { + visitDefPost(a, arg, arg, super.templateConstantArg) + } + + override def templateTypeArg(a: Analysis, arg: Symbol.TemplateTypeArg) = { + visitDefPost(a, arg, arg, super.templateTypeArg) + } + + override def templateInterfaceArg(a: Analysis, arg: Symbol.TemplateInterfaceArg) = { + visitDefPost(a, arg, arg, super.templateInterfaceArg) + } + override def interfaceUse(a: Analysis, node: AstNode[Ast.QualIdent], use: Name.Qualified) = visitUse(a, node, use) @@ -77,6 +89,9 @@ object CheckUseDefCycles extends UseAnalyzer { case Symbol.Interface(node) => defInterfaceAnnotatedNode(a, node) case Symbol.Struct(node) => defStructAnnotatedNode(a, node) case Symbol.Topology(node) => defTopologyAnnotatedNode(a, node) + case arg: Symbol.TemplateConstantArg => templateConstantArg(a, arg) + case arg: Symbol.TemplateTypeArg => templateTypeArg(a, arg) + case arg: Symbol.TemplateInterfaceArg => templateInterfaceArg(a, arg) case _ => Right(a) } } diff --git a/compiler/lib/src/main/scala/analysis/CheckSemantics/CheckUses.scala b/compiler/lib/src/main/scala/analysis/CheckSemantics/CheckUses.scala index 303a80a39f..91f228c762 100644 --- a/compiler/lib/src/main/scala/analysis/CheckSemantics/CheckUses.scala +++ b/compiler/lib/src/main/scala/analysis/CheckSemantics/CheckUses.scala @@ -2,8 +2,6 @@ package fpp.compiler.analysis import fpp.compiler.ast._ import fpp.compiler.util._ -import fpp.compiler.ast.Ast.Expr -import fpp.compiler.ast.Ast.ExprIdent /** Match uses to their definitions */ object CheckUses extends BasicUseAnalyzer { @@ -42,6 +40,7 @@ object CheckUses extends BasicUseAnalyzer { // Left side is a constant, we are selecting a member of this constant // we are not creating another use. case Some(Symbol.Constant(_)) => Right(None) + case Some(Symbol.TemplateConstantArg(_, _)) => Right(None) // The left side is some symbol other than a constant (a qualifier), // look up this symbol and add it to the use-def entries @@ -156,6 +155,55 @@ object CheckUses extends BasicUseAnalyzer { yield a.copy(nestedScope = a.nestedScope.pop) } + override def specTemplateExpandAnnotatedNode( + a: Analysis, + aNode: Ast.Annotated[AstNode[Ast.SpecTemplateExpand]] + ) = { + val node = aNode._2 + val expansion = a.templateExpansionMap(node.id) + val Right(tmpl) = a.getTemplateSymbol(node.data.template.id) + val scope = expansion.scope + + // We do use-analysis on the scope of the definition + param scope + // This is a bit unorthodox but we need to build a new nested scope from scratch + def getNestedScope(symbol: Symbol): NestedScope = { + val parentScope = a.parentSymbolMap.get(symbol) match { + case None => a.nestedScope.globalScope + case Some(parent) => getNestedScope(parent) + } + + a.symbolScopeMap.get(symbol) match { + case None => parentScope + case Some(symbolScope) => parentScope.push(symbolScope) + } + } + + val oldNestedScope = a.nestedScope + val newNestedScope = getNestedScope(tmpl) + .push(expansion.paramScope) + .push(expansion.scope) + + val Some(members) = node.data.members + + for { + // Analyze the inside of the template expansion + a <- { + val a1 = a.copy(nestedScope = newNestedScope) + visitList(a1, members, matchModuleMember) + } + + // Reset the use analysis scope back to the outer scope + a <- Right(a.copy(nestedScope = oldNestedScope)) + + // Analyze the parameter list + a <- { + val expansion = a.templateExpansionMap(node.id) + Result.foldLeft (expansion.params.values.toList) (a) (templateParam) + } + } + yield a + } + override def defStateMachineAnnotatedNode(a: Analysis, aNode: Ast.Annotated[AstNode[Ast.DefStateMachine]]) = { val (_, node, _) = aNode val data = node.data @@ -179,6 +227,9 @@ object CheckUses extends BasicUseAnalyzer { override def interfaceUse(a: Analysis, node: AstNode[Ast.QualIdent], use: Name.Qualified) = helpers.visitQualIdentNode (NameGroup.PortInterface) (a, node) + override def templateUse(a: Analysis, node: AstNode[Ast.QualIdent], use: Name.Qualified) = + helpers.visitQualIdentNode (NameGroup.Template) (a, node) + override def typeUse(a: Analysis, node: AstNode[Ast.TypeName], use: Name.Qualified) = { val data = node.data data match { diff --git a/compiler/lib/src/main/scala/analysis/CheckSemantics/ConstructImpliedUseMap.scala b/compiler/lib/src/main/scala/analysis/CheckSemantics/ConstructImpliedUseMap.scala index ab82f8e164..f807c84c8c 100644 --- a/compiler/lib/src/main/scala/analysis/CheckSemantics/ConstructImpliedUseMap.scala +++ b/compiler/lib/src/main/scala/analysis/CheckSemantics/ConstructImpliedUseMap.scala @@ -6,6 +6,16 @@ import fpp.compiler.util._ /** Construct the implied use map */ object ConstructImpliedUseMap extends TypeExpressionAnalyzer { + override def defModuleTemplateAnnotatedNode( + a: Analysis, + aNode: Ast.Annotated[AstNode[Ast.DefModuleTemplate]] + ) = { + for { + a <- super.defModuleTemplateAnnotatedNode(a, aNode) + a <- visitList(a, aNode._2.data.members, matchModuleMember) + } yield a + } + override def specPortInstanceAnnotatedNode( a: Analysis, aNode: Ast.Annotated[AstNode[Ast.SpecPortInstance]] diff --git a/compiler/lib/src/main/scala/analysis/CheckSemantics/EnterSymbols.scala b/compiler/lib/src/main/scala/analysis/CheckSemantics/EnterSymbols.scala index bceb967076..df62c55431 100644 --- a/compiler/lib/src/main/scala/analysis/CheckSemantics/EnterSymbols.scala +++ b/compiler/lib/src/main/scala/analysis/CheckSemantics/EnterSymbols.scala @@ -233,6 +233,25 @@ object EnterSymbols } } + override def defModuleTemplateAnnotatedNode( + a: Analysis, + aNode: Ast.Annotated[AstNode[Ast.DefModuleTemplate]] + ) = { + val (_, node, _) = aNode + val data = node.data + val name = data.name + val symbol = Symbol.Template(aNode) + val nestedScope = a.nestedScope + + for (nestedScope <- nestedScope.put(NameGroup.Template)(name, symbol)) + yield updateMap(a, symbol).copy(nestedScope = nestedScope) + } + + override def specTemplateExpandAnnotatedNode( + a: Analysis, + aNode: Ast.Annotated[AstNode[Ast.SpecTemplateExpand]] + ) = Right(a) + override def defPortAnnotatedNode( a: Analysis, aNode: Ast.Annotated[AstNode[Ast.DefPort]] diff --git a/compiler/lib/src/main/scala/analysis/CheckSemantics/EnterTemplateSymbols.scala b/compiler/lib/src/main/scala/analysis/CheckSemantics/EnterTemplateSymbols.scala new file mode 100644 index 0000000000..16033cb939 --- /dev/null +++ b/compiler/lib/src/main/scala/analysis/CheckSemantics/EnterTemplateSymbols.scala @@ -0,0 +1,231 @@ +package fpp.compiler.analysis + +import fpp.compiler.ast._ +import fpp.compiler.util._ + +/** + * Enter symbols from new template expansions + * (as well as the template expansion itself) + */ +object EnterTemplateSymbols + extends Analyzer + with ModuleAnalyzer +{ + override def defModuleAnnotatedNode( + a: Analysis, + aNode: Ast.Annotated[AstNode[Ast.DefModule]] + ) = { + val (_, node, _) = aNode + val Ast.DefModule(name, members) = node.data + val oldScopeNameList = a.scopeNameList + val newScopeNameList = name :: oldScopeNameList + val parentSymbol = a.parentSymbol + val a1 = a.copy(scopeNameList = newScopeNameList) + for { + triple <- a1.nestedScope.innerScope.get (NameGroup.Value) (name) match { + case Some(symbol: Symbol.Module) => + // We found a module symbol with the same name at the current level. + // Re-open the scope. + val scope = a1.symbolScopeMap(symbol) + Right((a1, symbol, scope)) + case Some(symbol) => + // We found a non-module symbol with the same name at the current level. + // This is an error. + val error = SemanticError.RedefinedSymbol( + name, + Locations.get(node.id), + symbol.getLoc + ) + Left(error) + case None => + // We did not find a symbol with the same name at the current level. + // Create a new module symbol now. + val symbol = Symbol.Module(aNode) + val scope = Scope.empty + for { + nestedScope <- Result.foldLeft (NameGroup.groups) (a1.nestedScope) ( + (ns, ng) => ns.put (ng) (name, symbol) + ) + } + yield { + val a = a1.copy(nestedScope = nestedScope) + (a, symbol, scope) + } + } + a <- { + val (a2, symbol, scope) = triple + val a3 = a2.copy( + nestedScope = a2.nestedScope.push(scope), + parentSymbol = Some(symbol) + ) + visitList(a3, members, matchModuleMember) + } + } + yield { + val symbol = triple._2 + val scope = a.nestedScope.innerScope + val newSymbolScopeMap = a.symbolScopeMap + (symbol -> scope) + val a1 = a.copy( + scopeNameList = oldScopeNameList, + nestedScope = a.nestedScope.pop, + parentSymbol = parentSymbol, + symbolScopeMap = newSymbolScopeMap + ) + updateMap(a1, symbol) + } + } + + override def specTemplateExpandAnnotatedNode( + a: Analysis, + aNode: Ast.Annotated[AstNode[Ast.SpecTemplateExpand]] + ) = { + val (_, node, _) = aNode + val data = node.data + + (data.members, a.templateExpansionMap.get(node.id)) match { + case (None, _) => { + // This template has not been expanded yet, can't do much + Right(a) + } + case (Some(members), Some(expansion)) => { + // We already entered this expansion + // Make sure we recursively enter all the symbols + // We still need to update the scope on re-expand + for { + a <- Right(a.copy(nestedScope = a.nestedScope.push(expansion.scope))) + a <- this.visitList(a, members, this.matchModuleMember) + } yield { + val templateScope = a.nestedScope.innerScope + val nestedScope = a.nestedScope.pop + + a.copy( + nestedScope = nestedScope, + templateExpansionMap = a.templateExpansionMap + ( + node.id -> expansion.copy(scope = templateScope) + ) + ) + } + } + case (Some(members), None) => { + val tmpl = a.getTemplateSymbol(data.template.id) match { + case Right(tmpl) => tmpl + case Left(error) => throw InternalError( + s"template symbol should already be resolved: $error" + ) + } + val defParams = tmpl.node._2.data.params + + // Build the parameter set of the expansion + for { + // Make sure the lengths line up + _ <- { + if data.args.length == defParams.length + then Right(()) + else Left(SemanticError.MismatchedTemplateParameters( + Locations.get(node.id), + Locations.get(tmpl.node._2.id), + data.args.length, + defParams.length + )) + } + + // Create the parameter symbols by mapping each argument together with the definition + // Make sure each argument is of the proper type + params <- { + Result.map[ + (AstNode[Ast.TemplateArg], Ast.Annotated[AstNode[Ast.TemplateParam]]), + TemplateArgSymbol + ](data.args zip defParams, (valueParam, defParam) => { + (defParam._2.data, valueParam.data) match { + case (defParam: Ast.TemplateParam.Constant, Ast.TemplateArg.Constant(value)) => + Right(Symbol.TemplateConstantArg(defParam, value)) + case (defParam: Ast.TemplateParam.Type, Ast.TemplateArg.Type(typeName)) => + Right(Symbol.TemplateTypeArg(defParam, typeName)) + case (defParam: Ast.TemplateParam.Interface, Ast.TemplateArg.Interface(instance)) => + Right(Symbol.TemplateInterfaceArg(defParam, instance)) + case (dp, vp) => { + val (name, defKind) = dp match { + case Ast.TemplateParam.Constant(name, _) => (name, "constant") + case Ast.TemplateParam.Type(name) => (name, "type") + case Ast.TemplateParam.Interface(name, _) => (name, "interface") + } + + val valKind = vp match { + case Ast.TemplateArg.Constant(_) => "constant" + case Ast.TemplateArg.Type(_) => "type" + case Ast.TemplateArg.Interface(_) => "interface" + } + + Left(SemanticError.InvalidTemplateParameter( + name, + Locations.get(valueParam.id), + Locations.get(defParam._2.id), + s"expected ${defKind} template parameter, got ${valKind} parameter" + )) + } + } + }) + } + + // Enter the template parameters into a new scope + nestedScope <- { + val scope = Scope.empty + Result.foldLeft(params) (a.nestedScope.push(scope)) ((nestedScope, param) => { + param match { + case Symbol.TemplateConstantArg(_, _) => nestedScope.put(NameGroup.Value)(param.getUnqualifiedName, param) + case Symbol.TemplateTypeArg(_, _) => nestedScope.put(NameGroup.Type)(param.getUnqualifiedName, param) + case Symbol.TemplateInterfaceArg(_, _) => nestedScope.put(NameGroup.PortInterfaceInstance)(param.getUnqualifiedName, param) + } + }) + } + + paramScope <- Right(nestedScope.innerScope) + a <- Right(a.copy(nestedScope = nestedScope.pop)) + + // Create an empty scope for entering template expanded symbols + a <- { + val scope = Scope.empty + Right(a.copy(nestedScope = a.nestedScope.push(scope))) + } + + // Enter the child symbols in to the analysis + a <- EnterSymbols.visitList(a, List(Ast.TransUnit(members)), EnterSymbols.transUnit) + + // Duplicate the symbols entries into the outer scope + a <- { + val templateScope = a.nestedScope.innerScope + val nestedScope = a.nestedScope.pop + + for { + nestedScope <- Result.foldLeft (templateScope.map.toList) (nestedScope) ((ns, ngs) => { + val (ng, symbols) = ngs + Result.foldLeft (symbols.map.toList) (ns) ((ns, symEntry) => { + val (name, symbol) = symEntry + ns.put (ng) (name, symbol) + }) + }) + } yield a.copy( + nestedScope = nestedScope, + templateExpansionMap = a.templateExpansionMap + (node.id -> TemplateExpansion( + tmpl.node, + aNode, + Map.from(params.map(p => (p.getUnqualifiedName, p))), + paramScope, + templateScope, + )) + ) + } + + a <- this.visitList(a, members, this.matchModuleMember) + } yield a + } + } + } + + private def updateMap(a: Analysis, s: Symbol): Analysis = { + val parentSymbolMap = a.parentSymbol.fold (a.parentSymbolMap) (ps => + a.parentSymbolMap + (s -> ps) + ) + a.copy(parentSymbolMap = parentSymbolMap) + } +} diff --git a/compiler/lib/src/main/scala/analysis/CheckSemantics/EvalConstantExprs.scala b/compiler/lib/src/main/scala/analysis/CheckSemantics/EvalConstantExprs.scala index b7ede9f102..ecf255dcfb 100644 --- a/compiler/lib/src/main/scala/analysis/CheckSemantics/EvalConstantExprs.scala +++ b/compiler/lib/src/main/scala/analysis/CheckSemantics/EvalConstantExprs.scala @@ -12,6 +12,11 @@ object EvalConstantExprs extends UseAnalyzer { a <- symbol match { case Symbol.EnumConstant(node) => defEnumConstantAnnotatedNode(a, node) case Symbol.Constant(node) => defConstantAnnotatedNode(a, node) + // We must be inside a template expansion, the parameter's value + // has already been added to the valueMap + case Symbol.TemplateConstantArg(paramDef, value) => { + Right(a) + } case _ => throw InternalError(s"invalid constant use symbol ${symbol} (${symbol.getClass.getName()})") } } yield { @@ -83,12 +88,36 @@ object EvalConstantExprs extends UseAnalyzer { else Right(a) } + override def templateConstantArg( + a: Analysis, + arg: Symbol.TemplateConstantArg + ) = { + val Symbol.TemplateConstantArg(paramDef, value) = arg + val loc = Locations.get(arg.value.id) + for { + a <- super.templateConstantArg(a, arg) + a <- FinalizeTypeDefs.typeNameNode(a, paramDef.typeName) + ty <- Right(a.typeMap(paramDef.typeName.id)) + v <- Right(a.valueMap(value.id)) + newVal <- { + v.convertToType(ty) match { + case Some(v) => Right(v) + case None => Left(SemanticError.TypeMismatch(loc, s"cannot convert value $v to type $ty")) + } + } + } yield { + a.assignType(value -> ty) + a.assignValue(value -> newVal) + } + } + override def exprArrayNode(a: Analysis, node: AstNode[Ast.Expr], e: Ast.ExprArray) = for (a <- super.exprArrayNode(a, node, e)) yield { val eltType = a.typeMap(node.id) match { case Type.AnonArray(_, eltType) => eltType - case _ => throw InternalError("element type of array expression should be AnonArray") + case Type.Array(_, Type.AnonArray(_, eltType), _, _) => eltType + case _ => throw InternalError("element type of array expression should be AnonArray or Array") } def f(node: AstNode[Ast.Expr]) = { val v = a.valueMap(node.id) @@ -106,8 +135,8 @@ object EvalConstantExprs extends UseAnalyzer { elements <- { a.valueMap(e.e1.id) match { - case Value.AnonArray(elements) => Right(elements) - case Value.Array(Value.AnonArray(elements), _) => Right(elements) + case Value.AnonArray(elements, None) => Right(elements) + case Value.Array(Value.AnonArray(elements, None), _) => Right(elements) case _ => throw InternalError("expected array value") } } @@ -161,7 +190,6 @@ object EvalConstantExprs extends UseAnalyzer { Right(a.assignValue(node -> v)) } - override def exprLiteralFloatNode(a: Analysis, node: AstNode[Ast.Expr], e: Ast.ExprLiteralFloat) = { val v = Value.Float(e.value.toDouble, Type.Float.F64) Right(a.assignValue(node -> v)) diff --git a/compiler/lib/src/main/scala/analysis/CheckSemantics/FinalizeConstantExprs.scala b/compiler/lib/src/main/scala/analysis/CheckSemantics/FinalizeConstantExprs.scala new file mode 100644 index 0000000000..fee6e3f6a5 --- /dev/null +++ b/compiler/lib/src/main/scala/analysis/CheckSemantics/FinalizeConstantExprs.scala @@ -0,0 +1,64 @@ +package fpp.compiler.analysis + +import fpp.compiler.ast._ +import fpp.compiler.util._ + +/** Finalize constant expressions. Fill in any missing anonymous array sizes */ +object FinalizeConstantExprs extends UseAnalyzer +{ + override def exprArrayNode(a: Analysis, node: AstNode[Ast.Expr], e: Ast.ExprArray) = { + val loc = Locations.get(node.id) + val emptyListError = SemanticError.EmptyArray(loc) + for { + a <- super.exprArrayNode(a, node, e) + eltType <- a.commonType(e.elts.map(_.id), emptyListError) + _ <- { + val typeNames = e.elts.map(elt => a.typeMap(elt.id).toString) + val msg = "cannot compute common type of array value with elements: " + typeNames.mkString(", ") + eltType match { + case Type.AnonArray(None, _) => Left( + SemanticError.TypeMismatch(loc, msg) + ) + case _ => Right(()) + } + } + } yield { + def f(node: AstNode[Ast.Expr]) = { + val v = a.valueMap(node.id) + Analysis.convertValueToType(v, eltType) + } + val elts = e.elts.map(f) + val v = Value.AnonArray(elts) + a.assignType(node -> Type.AnonArray(Some(e.elts.size), eltType)) + .assignValue(node -> v) + } + } + + override def constantUse(a: Analysis, node: AstNode[Ast.Expr], use: Name.Qualified) = { + val symbol = a.useDefMap(node.id) + for { + a <- symbol match { + // Constant symbol: visit the constant definition + // to ensure it has a type + case Symbol.Constant(node) => defConstantAnnotatedNode(a, node) + // Enum symbol: if this is in scope, then we are in + // the enum definition, so it already has a type + case Symbol.EnumConstant(node) => Right(a) + // Template parameter symbol: we are already inside the template expansion + // therefore this already has a type + case Symbol.TemplateConstantArg(_, _) => Right(a) + // Invalid use of a symbol in an expression + case _ => + Left(SemanticError.InvalidSymbol( + symbol.getUnqualifiedName, + Locations.get(node.id), + "not a constant symbol", + symbol.getLoc + )) + } + } yield { + val t = a.typeMap(symbol.getNodeId) + a.assignType(node -> t) + } + } +} diff --git a/compiler/lib/src/main/scala/analysis/CheckSemantics/ResolveTemplates.scala b/compiler/lib/src/main/scala/analysis/CheckSemantics/ResolveTemplates.scala new file mode 100644 index 0000000000..5994229f3f --- /dev/null +++ b/compiler/lib/src/main/scala/analysis/CheckSemantics/ResolveTemplates.scala @@ -0,0 +1,20 @@ +package fpp.compiler.analysis + +import fpp.compiler.ast._ +import fpp.compiler.util._ +import fpp.compiler.transform._ + +/** Expand template expansion specifiers and enter the symbols they produce. */ +object ResolveTemplates { + def transUnit( + a: Analysis, + tul: List[Ast.TransUnit] + ): Result.Result[(Analysis, List[Ast.TransUnit])] = { + for { + a <- CheckTemplateUses.visitList(a, tul, CheckTemplateUses.transUnit) + s_tul <- ExpandTemplates.transformList(a, tul, ExpandTemplates.transUnit) + tul <- Right(s_tul._2) + a <- EnterTemplateSymbols.visitList(a, tul, EnterTemplateSymbols.transUnit) + } yield (a, tul) + } +} diff --git a/compiler/lib/src/main/scala/analysis/ComputeDependencies/AddDependencies.scala b/compiler/lib/src/main/scala/analysis/ComputeDependencies/AddDependencies.scala index 231c366c64..e3b4c091d3 100644 --- a/compiler/lib/src/main/scala/analysis/ComputeDependencies/AddDependencies.scala +++ b/compiler/lib/src/main/scala/analysis/ComputeDependencies/AddDependencies.scala @@ -50,6 +50,35 @@ object AddDependencies extends BasicUseAnalyzer { } yield a } + override def defModuleTemplateAnnotatedNode( + a: Analysis, + aNode: Ast.Annotated[AstNode[Ast.DefModuleTemplate]] + ) = { + for { + a <- super.defModuleTemplateAnnotatedNode(a, aNode) + a <- visitList(a, aNode._2.data.members, matchModuleMember) + } yield a + } + + override def specTemplateExpandAnnotatedNode( + a: Analysis, + aNode: Ast.Annotated[AstNode[Ast.SpecTemplateExpand]] + ) = { + val (_, node, _) = aNode + for { + a <- super.specTemplateExpandAnnotatedNode(a, aNode) + a <- Result.foldLeft (node.data.args) (a) ((a, arg) => arg.data match { + case Ast.TemplateArg.Constant(value) => exprNode(a, value) + case Ast.TemplateArg.Type(typeName) => typeNameNode(a, typeName) + case Ast.TemplateArg.Interface(instance) => + qualIdentNode (interfaceInstanceUse) (a, instance) + }) + } yield a + } + + override def templateUse(a: Analysis, node: AstNode[Ast.QualIdent], use: Name.Qualified) = + analyzeUse(a, Ast.SpecLoc.Template, use) + override def stateMachineUse(a: Analysis, node: AstNode[Ast.QualIdent], use: Name.Qualified) = analyzeUse(a, Ast.SpecLoc.StateMachine, use) diff --git a/compiler/lib/src/main/scala/analysis/ComputeDependencies/Framework/ComputeFrameworkDependencies.scala b/compiler/lib/src/main/scala/analysis/ComputeDependencies/Framework/ComputeFrameworkDependencies.scala index c90c04795d..ad705b6179 100644 --- a/compiler/lib/src/main/scala/analysis/ComputeDependencies/Framework/ComputeFrameworkDependencies.scala +++ b/compiler/lib/src/main/scala/analysis/ComputeDependencies/Framework/ComputeFrameworkDependencies.scala @@ -42,6 +42,15 @@ object ComputeFrameworkDependencies extends AstStateVisitor { visitList(s, data.members, matchModuleMember) } + override def defModuleTemplateAnnotatedNode( + s: State, + aNode: Ast.Annotated[AstNode[Ast.DefModuleTemplate]] + ) = { + val (_, node, _) = aNode + val data = node.data + visitList(s, data.members, matchModuleMember) + } + override def specPortInstanceAnnotatedNode( s: State, aNode: Ast.Annotated[AstNode[Ast.SpecPortInstance]] diff --git a/compiler/lib/src/main/scala/analysis/Semantics/Connection.scala b/compiler/lib/src/main/scala/analysis/Semantics/Connection.scala index 496651e408..8b5f3ecf75 100644 --- a/compiler/lib/src/main/scala/analysis/Semantics/Connection.scala +++ b/compiler/lib/src/main/scala/analysis/Semantics/Connection.scala @@ -219,16 +219,22 @@ object Connection { /** Get underlying endpoint by stripping off topology port aliases */ def getUnderlyingEndpoint(): Endpoint = { - port.interfaceInstance match { - // This endpoint is already a component instance - case InterfaceInstance.InterfaceComponentInstance(ci) => this - case InterfaceInstance.InterfaceTopology(top) => this.copy( - // Look up the mapping for this port instance - port = top.portMap(port.portInstance.getUnqualifiedName).pii, - topologyPort = Some(this) - // Recursively resolve the endpoint to a component instance - ).getUnderlyingEndpoint() + def underlyingEndpointHelper(ii: InterfaceInstance): Endpoint = { + ii match { + // This endpoint is already a component instance + case InterfaceInstance.InterfaceComponentInstance(ci) => this + case InterfaceInstance.InterfaceTopology(top) => this.copy( + // Look up the mapping for this port instance + port = top.portMap(port.portInstance.getUnqualifiedName).pii, + topologyPort = Some(this) + // Recursively resolve the endpoint to a component instance + ).getUnderlyingEndpoint() + case InterfaceInstance.InterfaceTemplateArg(_, _, tii) => + underlyingEndpointHelper(tii) + } } + + underlyingEndpointHelper(port.interfaceInstance) } } diff --git a/compiler/lib/src/main/scala/analysis/Semantics/GenericScope/GenericNestedScope.scala b/compiler/lib/src/main/scala/analysis/Semantics/GenericScope/GenericNestedScope.scala index 042cc9cb4b..f1c7d446b8 100644 --- a/compiler/lib/src/main/scala/analysis/Semantics/GenericScope/GenericNestedScope.scala +++ b/compiler/lib/src/main/scala/analysis/Semantics/GenericScope/GenericNestedScope.scala @@ -49,6 +49,9 @@ case class GenericNestedScope[NG, S <: SymbolInterface]( /** Get the innermost nested scope */ def innerScope: GenericScope[NG,S] = splitScopes._1 + /** Get the outmost nested scope (the global scope) */ + def globalScope: GenericNestedScope[NG,S] = GenericNestedScope(List(scopes.last)) + private def splitScopes: (GenericScope[NG,S], List[GenericScope[NG,S]]) = scopes match { case head :: tail => (head, tail) case _ => throw new InternalError("empty scope stack") diff --git a/compiler/lib/src/main/scala/analysis/Semantics/GenericScope/GenericScope.scala b/compiler/lib/src/main/scala/analysis/Semantics/GenericScope/GenericScope.scala index 5622f917c2..2c96431d5a 100644 --- a/compiler/lib/src/main/scala/analysis/Semantics/GenericScope/GenericScope.scala +++ b/compiler/lib/src/main/scala/analysis/Semantics/GenericScope/GenericScope.scala @@ -30,4 +30,9 @@ case class GenericScope[NG, S <: SymbolInterface]( case None => GenericNameSymbolMap[S]() } + override def toString(): String = + (this.map.map((ng, g) => { + (ng, g.map.keySet) + })).toString() + } diff --git a/compiler/lib/src/main/scala/analysis/Semantics/ImpliedUse.scala b/compiler/lib/src/main/scala/analysis/Semantics/ImpliedUse.scala index 008478514e..60cc47cfb2 100644 --- a/compiler/lib/src/main/scala/analysis/Semantics/ImpliedUse.scala +++ b/compiler/lib/src/main/scala/analysis/Semantics/ImpliedUse.scala @@ -14,7 +14,6 @@ case class ImpliedUse( ) { def asExprNode: AstNode[Ast.Expr] = { - val Name.Qualified(qualifier, base) = name val head :: tail = name.toIdentList val expr = tail.foldLeft (Ast.ExprIdent(head): Ast.Expr) ((e1, s) => Ast.ExprDot(AstNode.create(e1, id), AstNode.create(s, id)) @@ -22,6 +21,17 @@ case class ImpliedUse( AstNode.create(expr, id) } + def asUniqueExprNode: AstNode[Ast.Expr] = { + val head :: tail = name.toIdentList + val expr = tail.foldLeft (Ast.ExprIdent(head): Ast.Expr) ((e1, s) => + Ast.ExprDot( + AstNode.create(e1, ImpliedUse.replicateId(id)), + AstNode.create(s, ImpliedUse.replicateId(id)) + ) + ) + AstNode.create(expr, ImpliedUse.replicateId(id)) + } + def asQualIdentNode: AstNode[Ast.QualIdent] = { val nodeList = name.toIdentList.map(AstNode.create(_, id)) val qualIdent = Ast.QualIdent.fromNodeList(nodeList) diff --git a/compiler/lib/src/main/scala/analysis/Semantics/Interface.scala b/compiler/lib/src/main/scala/analysis/Semantics/Interface.scala index 95f43b27ec..81b6de7526 100644 --- a/compiler/lib/src/main/scala/analysis/Semantics/Interface.scala +++ b/compiler/lib/src/main/scala/analysis/Semantics/Interface.scala @@ -12,6 +12,9 @@ case class Interface( /* The port interface of the component */ portInterface: PortInterface = PortInterface("interface"), ) { + + def getUnqualifiedName: String = aNode._2.data.name + /** Add a port instance */ def addPortInstance(instance: PortInstance): Result.Result[Interface] = for { diff --git a/compiler/lib/src/main/scala/analysis/Semantics/InterfaceInstance.scala b/compiler/lib/src/main/scala/analysis/Semantics/InterfaceInstance.scala index 5f960ffa5f..15267d1423 100644 --- a/compiler/lib/src/main/scala/analysis/Semantics/InterfaceInstance.scala +++ b/compiler/lib/src/main/scala/analysis/Semantics/InterfaceInstance.scala @@ -45,10 +45,30 @@ object InterfaceInstance { override def getInterface: PortInterface = top.portInterface } + final case class InterfaceTemplateArg( + paramDef: Ast.TemplateParam.Interface, + interface: Interface, + ii: InterfaceInstance, + ) extends InterfaceInstance { + override def getQualifiedName: Name.Qualified = Name.Qualified.fromIdent(paramDef.name) + override def getUnqualifiedName: String = paramDef.name + override def getLoc: Location = Locations.get(paramDef.interface.id) + override def getInterface: PortInterface = interface.portInterface + + override def getPortInstance(name: AstNode[Ast.Ident]): Result.Result[PortInstance] = + getInterface.getPortInstance(name, interface.getUnqualifiedName) + } + def fromComponentInstance(ci: ComponentInstance) = InterfaceComponentInstance(ci) def fromTopology(top: Topology) = InterfaceTopology(top) + def fromTemplateArg( + paramDef: Ast.TemplateParam.Interface, + interface: Interface, + ii: InterfaceInstance + ) = InterfaceTemplateArg(paramDef, interface, ii) + } diff --git a/compiler/lib/src/main/scala/analysis/Semantics/NameGroup.scala b/compiler/lib/src/main/scala/analysis/Semantics/NameGroup.scala index c66d335832..42e9935d3f 100644 --- a/compiler/lib/src/main/scala/analysis/Semantics/NameGroup.scala +++ b/compiler/lib/src/main/scala/analysis/Semantics/NameGroup.scala @@ -36,16 +36,24 @@ object NameGroup { override def toString(): String = "type" } + case object Template extends NameGroup { + override def toString(): String = "template" + } + case object Value extends NameGroup { override def toString(): String = "constant" } + // Template parameters can only be referred inside an expansion + case object TemplateParam extends NameGroup + val groups: List[NameGroup] = List( Component, Port, StateMachine, PortInterfaceInstance, PortInterface, + Template, Type, Value ) diff --git a/compiler/lib/src/main/scala/analysis/Semantics/ResolveTopology/ResolveTopologyInstances.scala b/compiler/lib/src/main/scala/analysis/Semantics/ResolveTopology/ResolveTopologyInstances.scala index 1f8014ccc3..d0247722a0 100644 --- a/compiler/lib/src/main/scala/analysis/Semantics/ResolveTopology/ResolveTopologyInstances.scala +++ b/compiler/lib/src/main/scala/analysis/Semantics/ResolveTopology/ResolveTopologyInstances.scala @@ -11,16 +11,33 @@ object ResolveTopologyInstances { t <- { val tops = t.directTopologies.toList Right(tops.foldLeft (t) ((t, ti) => { - t.addInstance(InterfaceInstance.fromTopology(a.topologyMap(ti._1)), ti._2) + val ii = InterfaceInstance.fromTopology(a.topologyMap(ti._1)) + t.addInstance(ii, ti._2) })) } t <- { val comps = t.directComponentInstances.toList Right(comps.foldLeft (t) ((t, ci) => { - t.addInstance(InterfaceInstance.fromComponentInstance(a.componentInstanceMap(ci._1)), ci._2) + val ii = InterfaceInstance.fromComponentInstance(a.componentInstanceMap(ci._1)) + t.addInstance(ii, ci._2) })) } + + t <- { + val instances = t.directTemplateArgs.toList + Result.foldLeft(instances) (t) ((t, symI) => { + val (tip, loc) = symI + for { + ii <- a.getInterfaceInstance(symI._1.value.id) + iface <- a.getInterface(tip.paramDef.interface.id) + } yield t.addInstance(InterfaceInstance.fromTemplateArg( + tip.paramDef, + iface, + ii + ), loc) + }) + } } yield t diff --git a/compiler/lib/src/main/scala/analysis/Semantics/Symbol.scala b/compiler/lib/src/main/scala/analysis/Semantics/Symbol.scala index 91282441dc..436945338f 100644 --- a/compiler/lib/src/main/scala/analysis/Semantics/Symbol.scala +++ b/compiler/lib/src/main/scala/analysis/Semantics/Symbol.scala @@ -14,6 +14,9 @@ sealed trait TypeSymbol extends Symbol /** A port interface instance symbol */ sealed trait InterfaceInstanceSymbol extends Symbol +/** A template argument symbol */ +sealed trait TemplateArgSymbol extends Symbol + object Symbol { final case class AbsType(node: Ast.Annotated[AstNode[Ast.DefAbsType]]) extends TypeSymbol { @@ -81,5 +84,30 @@ object Symbol { override def getNodeId = node._2.id override def getUnqualifiedName = node._2.data.name } + final case class Template(node: Ast.Annotated[AstNode[Ast.DefModuleTemplate]]) extends Symbol { + override def getNodeId = node._2.id + override def getUnqualifiedName = node._2.data.name + } + final case class TemplateConstantArg( + paramDef: Ast.TemplateParam.Constant, + value: AstNode[Ast.Expr] + ) extends TemplateArgSymbol { + override def getUnqualifiedName = paramDef.name + override def getNodeId = value.id + } + final case class TemplateTypeArg( + paramDef: Ast.TemplateParam.Type, + value: AstNode[Ast.TypeName] + ) extends TemplateArgSymbol { + override def getUnqualifiedName = paramDef.name + override def getNodeId = value.id + } + final case class TemplateInterfaceArg( + paramDef: Ast.TemplateParam.Interface, + value: AstNode[Ast.QualIdent] + ) extends TemplateArgSymbol, InterfaceInstanceSymbol { + override def getUnqualifiedName = paramDef.name + override def getNodeId = value.id + } } diff --git a/compiler/lib/src/main/scala/analysis/Semantics/TemplateExpansion.scala b/compiler/lib/src/main/scala/analysis/Semantics/TemplateExpansion.scala new file mode 100644 index 0000000000..e3c3e86f3a --- /dev/null +++ b/compiler/lib/src/main/scala/analysis/Semantics/TemplateExpansion.scala @@ -0,0 +1,20 @@ +package fpp.compiler.analysis + +import fpp.compiler.ast._ +import fpp.compiler.util._ + +/** An FPP template */ +case class TemplateExpansion( + /** The AST node defining the template */ + defNode: Ast.Annotated[AstNode[Ast.DefModuleTemplate]], + /** The AST node expanding the template */ + expansion: Ast.Annotated[AstNode[Ast.SpecTemplateExpand]], + /** Arguments bound to the parameters of this template during expansion */ + params: Map[String, TemplateArgSymbol], + /** Scope where template argument symbols are entered */ + paramScope: Scope, + /** Scope where symbols defined in the expansion are entered */ + scope: Scope +) { + +} diff --git a/compiler/lib/src/main/scala/analysis/Semantics/Topology.scala b/compiler/lib/src/main/scala/analysis/Semantics/Topology.scala index 62efcd059f..e5d4840895 100644 --- a/compiler/lib/src/main/scala/analysis/Semantics/Topology.scala +++ b/compiler/lib/src/main/scala/analysis/Semantics/Topology.scala @@ -14,6 +14,8 @@ case class Topology( directTopologies: Map[Symbol.Topology, Location] = Map(), /** The directly imported component instances */ directComponentInstances: Map[Symbol.ComponentInstance, Location] = Map(), + /** The directly imported template arguments */ + directTemplateArgs: Map[Symbol.TemplateInterfaceArg, Location] = Map(), /** The transitively imported topologies */ transitiveImportSet: Set[Symbol.Topology] = Set(), /** The instances of this topology */ @@ -173,10 +175,13 @@ case class Topology( instance: InterfaceInstance, loc: Location ): Topology = { - val pairOpt = instanceMap.get(instance) // Use the previous location, if it exists - val mergedLoc = pairOpt.getOrElse(loc) - val map = instanceMap + (instance -> mergedLoc) + val o = instanceMap.get(instance) match { + case None => loc + case Some(otherLoc) => otherLoc + } + + val map = instanceMap + (instance -> o) this.copy(instanceMap = map) } @@ -225,6 +230,20 @@ case class Topology( ) ) } + + case arg: Symbol.TemplateInterfaceArg => + directTemplateArgs.get(arg) match { + case Some(prevLoc) => Left( + SemanticError.DuplicateInstance( + symbol.getUnqualifiedName, + loc, + prevLoc + ) + ) + case None => + val map = directTemplateArgs + (arg -> loc) + Right(this.copy(directTemplateArgs = map)) + } } /** Assigns a port number to a connection at a port instance */ @@ -294,7 +313,10 @@ case class Topology( /** Precompute the set of component instances in the topology */ lazy val componentInstanceMap: Map[ComponentInstance, Location] = { - instanceMap collect { case (InterfaceInstance.InterfaceComponentInstance(ci), loc: Location) => (ci, loc) } + instanceMap collect { + case (InterfaceInstance.InterfaceComponentInstance(ci), loc) => (ci, loc) + case (InterfaceInstance.InterfaceTemplateArg(_, _, InterfaceInstance.InterfaceComponentInstance(ci)), loc) => (ci, loc) + } } /** Gets the set of used port numbers */ diff --git a/compiler/lib/src/main/scala/analysis/Semantics/Value.scala b/compiler/lib/src/main/scala/analysis/Semantics/Value.scala index 1bb2fffcbd..bff266d543 100644 --- a/compiler/lib/src/main/scala/analysis/Semantics/Value.scala +++ b/compiler/lib/src/main/scala/analysis/Semantics/Value.scala @@ -64,10 +64,14 @@ sealed trait Value { def promoteToAnonArray(anonArray: Type.AnonArray): Option[Value.AnonArray] = { if (this.getType.isPromotableToArray) for { - size <- anonArray.size elt <- this.convertToType(anonArray.eltType) } - yield Value.AnonArray(List.fill(size)(elt)) + yield { + anonArray.size match { + case Some(size) => Value.AnonArray(List.fill(size)(elt), None) + case None => Value.AnonArray(Nil, Some(elt)) + } + } else None } def promoteToArray(array: Type.Array): Option[Value.Array] = @@ -310,7 +314,7 @@ object Value { } /** Anonymous array values */ - case class AnonArray(elements: List[Value]) extends Value { + case class AnonArray(elements: List[Value], scalar: Option[Value] = None) extends Value { def convertToAnonArray(anonArrayType: Type.AnonArray): Option[Value.AnonArray] = { def convertElements(in: List[Value], t: Type, out: List[Value]): Option[List[Value]] = @@ -411,14 +415,15 @@ object Value { /** Anonymous struct values */ case class AnonStruct(members: Struct.Members) extends Value { - def convertToAnonStruct(anonStructType: Type.AnonStruct): Option[Value.AnonStruct] = { + def convertToAnonStruct(anonStructType: Type.AnonStruct, memberDefaults: Struct.Members): Option[Value.AnonStruct] = { def convertMembers(in: List[Type.Struct.Member], out: Struct.Members): Option[Struct.Members] = in match { case Nil => Some(out) case (m -> t) :: tail => { - val vOpt = members.get(m) match { - case Some(v) => v.convertToType(t) - case None => t.getDefaultValue + val vOpt = (members.get(m), memberDefaults.get(m)) match { + case (Some(v), _) => v.convertToType(t) + case (None, Some(v)) => Some(v) + case (None, None) => t.getDefaultValue } vOpt match { case Some(v) => convertMembers(tail, out + (m -> v)) @@ -431,14 +436,14 @@ object Value { } def convertToStruct(structType: Type.Struct): Option[Value.Struct] = { - val Type.Struct(_, anonStructType, _, _, _) = structType - for (anonStruct <- convertToAnonStruct(anonStructType)) + val Type.Struct(_, anonStructType, default, _, _) = structType + for (anonStruct <- convertToAnonStruct(anonStructType, default.map(_.anonStruct.members).getOrElse(Map()))) yield Struct(anonStruct, structType) } override def convertToDistinctType(t: Type) = t.getUnderlyingType match { - case anonStructType : Type.AnonStruct => convertToAnonStruct(anonStructType) + case anonStructType : Type.AnonStruct => convertToAnonStruct(anonStructType, Map()) case structType : Type.Struct => convertToStruct(structType) case _ => None } @@ -471,7 +476,7 @@ object Value { case class Struct(anonStruct: AnonStruct, t: Type.Struct) extends Value { def convertToAnonStruct(anonStructType: Type.AnonStruct): Option[Value.AnonStruct] = - anonStruct.convertToAnonStruct(anonStructType) + anonStruct.convertToAnonStruct(anonStructType, t.default.map(_.anonStruct.members).getOrElse(Map())) def convertToStruct(structType: Type.Struct): Option[Value.Struct] = anonStruct.convertToStruct(structType) override def convertToDistinctType(t: Type) = diff --git a/compiler/lib/src/main/scala/analysis/UsedSymbols.scala b/compiler/lib/src/main/scala/analysis/UsedSymbols.scala index dea479774c..d9111b8947 100644 --- a/compiler/lib/src/main/scala/analysis/UsedSymbols.scala +++ b/compiler/lib/src/main/scala/analysis/UsedSymbols.scala @@ -118,6 +118,10 @@ object UsedSymbols extends UseAnalyzer { case Symbol.Struct(node) => defStructAnnotatedNode(a1, node) case Symbol.System(node) => defSystemAnnotatedNode(a1, node) case Symbol.Topology(node) => defTopologyAnnotatedNode(a1, node) + case Symbol.Template(node) => defModuleTemplateAnnotatedNode(a1, node) + case Symbol.TemplateConstantArg(_, expr) => exprNode(a, expr) + case Symbol.TemplateTypeArg(_, tn) => typeNameNode(a, tn) + case Symbol.TemplateInterfaceArg(_, name) => qualIdentNode (interfaceInstanceUse) (a, name) } a2.usedSymbolSet.flatMap(resolveNode) + resolveEnumConstant(s) } diff --git a/compiler/lib/src/main/scala/ast/Ast.scala b/compiler/lib/src/main/scala/ast/Ast.scala index 2bc91ef2e3..5df7231342 100644 --- a/compiler/lib/src/main/scala/ast/Ast.scala +++ b/compiler/lib/src/main/scala/ast/Ast.scala @@ -10,6 +10,12 @@ object Ast { /** Formal parameter list */ type FormalParamList = List[Annotated[AstNode[FormalParam]]] + /** Template parameter list */ + type TemplateParamList = List[Annotated[AstNode[TemplateParam]]] + + /** Template argument list */ + type TemplateArgList = List[AstNode[TemplateArg]] + /** Identifier */ type Ident = String @@ -160,6 +166,7 @@ object Ast { final case class DefEnum(node: AstNode[Ast.DefEnum]) extends Node final case class DefInterface(node: AstNode[Ast.DefInterface]) extends Node final case class DefModule(node: AstNode[Ast.DefModule]) extends Node + final case class DefModuleTemplate(node: AstNode[Ast.DefModuleTemplate]) extends Node final case class DefPort(node: AstNode[Ast.DefPort]) extends Node final case class DefStateMachine(node: AstNode[Ast.DefStateMachine]) extends Node final case class DefStruct(node: AstNode[Ast.DefStruct]) extends Node @@ -167,8 +174,34 @@ object Ast { final case class DefTopology(node: AstNode[Ast.DefTopology]) extends Node final case class SpecInclude(node: AstNode[Ast.SpecInclude]) extends Node final case class SpecLoc(node: AstNode[Ast.SpecLoc]) extends Node + final case class SpecTemplateExpand(node: AstNode[Ast.SpecTemplateExpand]) extends Node } + /** Template parameter */ + sealed trait TemplateParam + object TemplateParam { + final case class Constant( + name: Ident, + typeName: AstNode[Ast.TypeName] + ) extends TemplateParam + + final case class Type( + name: Ident + ) extends TemplateParam + + final case class Interface( + name: Ident, + interface: AstNode[QualIdent], + ) extends TemplateParam + } + + /** Module template definition */ + final case class DefModuleTemplate( + name: Ident, + params: TemplateParamList, + members: List[ModuleMember] + ) + /** Port definition */ final case class DefPort( name: Ident, @@ -406,7 +439,14 @@ object Ast { case (Nil, name) => QualIdent.Unqualified(name.data) case (qualifier, name) => { val qualifier1 = fromNodeList(qualifier) - val node = AstNode.create(qualifier1, QualIdent.NodeList.name(qualifier).id) + val id = QualIdent.NodeList.name(qualifier).id + val node = AstNode.create(qualifier1) + Locations.getOpt(id) match { + case None => () + case Some(loc) => + Locations.put(node.id, loc) + () + } QualIdent.Qualified(node, name) } } @@ -639,6 +679,9 @@ object Ast { case object Interface extends Kind { override def toString = "interface" } + case object Template extends Kind { + override def toString = "template" + } } /** Parameter specifier */ @@ -768,6 +811,21 @@ object Ast { queueFull: Option[QueueFull] ) + /** Template argument */ + sealed trait TemplateArg + object TemplateArg { + final case class Constant(expr: AstNode[Expr]) extends TemplateArg + final case class Type(typeName: AstNode[TypeName]) extends TemplateArg + final case class Interface(instance: AstNode[QualIdent]) extends TemplateArg + } + + /** Template expansion specifier */ + final case class SpecTemplateExpand( + template: AstNode[QualIdent], + args: TemplateArgList, + members: Option[List[ModuleMember]] + ) + /** Telemetry channel specifier */ final case class SpecTlmChannel( name: Ident, diff --git a/compiler/lib/src/main/scala/ast/AstStateTransformer.scala b/compiler/lib/src/main/scala/ast/AstStateTransformer.scala index e327ec9ddd..b92cfcd4f2 100644 --- a/compiler/lib/src/main/scala/ast/AstStateTransformer.scala +++ b/compiler/lib/src/main/scala/ast/AstStateTransformer.scala @@ -17,7 +17,7 @@ trait AstStateTransformer extends AstTransformer { } /** Transform a list in sequence, threading state */ - def transformList[A,B]( + def transformList[A, B]( s: State, list: List[A], transform: (State, A) => Result[B] diff --git a/compiler/lib/src/main/scala/ast/AstTransformer.scala b/compiler/lib/src/main/scala/ast/AstTransformer.scala index a851eed190..dd4499b4bf 100644 --- a/compiler/lib/src/main/scala/ast/AstTransformer.scala +++ b/compiler/lib/src/main/scala/ast/AstTransformer.scala @@ -17,81 +17,74 @@ trait AstTransformer { def default(in: In): Out + def defaultNode[T]( + in: In, + node: AstNode[T] + ): ResultNode[T] = + Right(default(in), node) + + def defaultAnnotatedNode[T]( + in: In, + aNode: Ast.Annotated[AstNode[T]] + ): ResultAnnotatedNode[T] = + Right(default(in), aNode) + def defAbsTypeAnnotatedNode( in: In, node: Ast.Annotated[AstNode[Ast.DefAbsType]] ): ResultAnnotatedNode[Ast.DefAbsType] = - Right(default(in), node) - - def defActionAnnotatedNode( - in: In, - node: Ast.Annotated[AstNode[Ast.DefAction]] - ): ResultAnnotatedNode[Ast.DefAction] = - Right(default(in), node) + defaultAnnotatedNode(in, node) def defAliasTypeAnnotatedNode( in: In, node: Ast.Annotated[AstNode[Ast.DefAliasType]] ): ResultAnnotatedNode[Ast.DefAliasType] = - Right(default(in), node) + defaultAnnotatedNode(in, node) def defArrayAnnotatedNode(in: In, node: Ast.Annotated[AstNode[Ast.DefArray]]): ResultAnnotatedNode[Ast.DefArray] = - Right(default(in), node) - - def defChoiceAnnotatedNode( - in: In, - node: Ast.Annotated[AstNode[Ast.DefChoice]] - ): ResultAnnotatedNode[Ast.DefChoice] = - Right(default(in), node) + defaultAnnotatedNode(in, node) def defComponentAnnotatedNode(in: In, node: Ast.Annotated[AstNode[Ast.DefComponent]]): ResultAnnotatedNode[Ast.DefComponent] = - Right(default(in), node) + defaultAnnotatedNode(in, node) def defComponentInstanceAnnotatedNode( in: In, node: Ast.Annotated[AstNode[Ast.DefComponentInstance]] - ): ResultAnnotatedNode[Ast.DefComponentInstance] = Right(default(in), node) + ): ResultAnnotatedNode[Ast.DefComponentInstance] = + defaultAnnotatedNode(in, node) def defConstantAnnotatedNode( in: In, node: Ast.Annotated[AstNode[Ast.DefConstant]] - ): ResultAnnotatedNode[Ast.DefConstant] = Right(default(in), node) + ): ResultAnnotatedNode[Ast.DefConstant] = + defaultAnnotatedNode(in, node) def defEnumAnnotatedNode( in: In, node: Ast.Annotated[AstNode[Ast.DefEnum]] - ): ResultAnnotatedNode[Ast.DefEnum] = Right(default(in), node) - - def defGuardAnnotatedNode( - in: In, - node: Ast.Annotated[AstNode[Ast.DefGuard]] - ): ResultAnnotatedNode[Ast.DefGuard] = - Right(default(in), node) + ): ResultAnnotatedNode[Ast.DefEnum] = + defaultAnnotatedNode(in, node) def defInterfaceAnnotatedNode(in: In, node: Ast.Annotated[AstNode[Ast.DefInterface]]): ResultAnnotatedNode[Ast.DefInterface] = - Right(default(in), node) + defaultAnnotatedNode(in, node) def defModuleAnnotatedNode( in: In, node: Ast.Annotated[AstNode[Ast.DefModule]] - ): ResultAnnotatedNode[Ast.DefModule] = Right(default(in), node) - - def defPortAnnotatedNode( - in: In, - node: Ast.Annotated[AstNode[Ast.DefPort]] - ): ResultAnnotatedNode[Ast.DefPort] = Right(default(in), node) + ): ResultAnnotatedNode[Ast.DefModule] = + defaultAnnotatedNode(in, node) - def defSignalAnnotatedNode( + def defModuleTemplateAnnotatedNode( in: In, - node: Ast.Annotated[AstNode[Ast.DefSignal]] - ): ResultAnnotatedNode[Ast.DefSignal] = - Right(default(in), node) + node: Ast.Annotated[AstNode[Ast.DefModuleTemplate]] + ): ResultAnnotatedNode[Ast.DefModuleTemplate] = + defaultAnnotatedNode(in, node) - def defStateAnnotatedNode( + def defPortAnnotatedNode( in: In, - node: Ast.Annotated[AstNode[Ast.DefState]] - ): ResultAnnotatedNode[Ast.DefState] = - Right(default(in), node) + node: Ast.Annotated[AstNode[Ast.DefPort]] + ): ResultAnnotatedNode[Ast.DefPort] = + defaultAnnotatedNode(in, node) def defStateMachineAnnotatedNode( in: In, @@ -105,204 +98,264 @@ trait AstTransformer { def defStateMachineAnnotatedNodeExternal( in: In, node: Ast.Annotated[AstNode[Ast.DefStateMachine]] - ): ResultAnnotatedNode[Ast.DefStateMachine] = Right(default(in), node) + ): ResultAnnotatedNode[Ast.DefStateMachine] = + defaultAnnotatedNode(in, node) def defStateMachineAnnotatedNodeInternal( in: In, node: Ast.Annotated[AstNode[Ast.DefStateMachine]], members: List[Ast.StateMachineMember] - ): ResultAnnotatedNode[Ast.DefStateMachine] = Right(default(in), node) + ): ResultAnnotatedNode[Ast.DefStateMachine] = + defaultAnnotatedNode(in, node) + + def defActionAnnotatedNode( + in: In, + node: Ast.Annotated[AstNode[Ast.DefAction]] + ): ResultAnnotatedNode[Ast.DefAction] = + defaultAnnotatedNode(in, node) + + def defChoiceAnnotatedNode( + in: In, + node: Ast.Annotated[AstNode[Ast.DefChoice]] + ): ResultAnnotatedNode[Ast.DefChoice] = + defaultAnnotatedNode(in, node) + + def defGuardAnnotatedNode( + in: In, + node: Ast.Annotated[AstNode[Ast.DefGuard]] + ): ResultAnnotatedNode[Ast.DefGuard] = + defaultAnnotatedNode(in, node) + + def defSignalAnnotatedNode( + in: In, + node: Ast.Annotated[AstNode[Ast.DefSignal]] + ): ResultAnnotatedNode[Ast.DefSignal] = + defaultAnnotatedNode(in, node) + + def defStateAnnotatedNode( + in: In, + node: Ast.Annotated[AstNode[Ast.DefState]] + ): ResultAnnotatedNode[Ast.DefState] = + defaultAnnotatedNode(in, node) + + def specInitialTransitionAnnotatedNode( + in: In, + node: Ast.Annotated[AstNode[Ast.SpecInitialTransition]] + ): ResultAnnotatedNode[Ast.SpecInitialTransition] = + defaultAnnotatedNode(in, node) + + def specStateEntryAnnotatedNode( + in: In, + node: Ast.Annotated[AstNode[Ast.SpecStateEntry]] + ): ResultAnnotatedNode[Ast.SpecStateEntry] = + defaultAnnotatedNode(in, node) + + def specStateExitAnnotatedNode( + in: In, + node: Ast.Annotated[AstNode[Ast.SpecStateExit]] + ): ResultAnnotatedNode[Ast.SpecStateExit] = + defaultAnnotatedNode(in, node) + + def specStateMachineInstanceAnnotatedNode( + in: In, + node: Ast.Annotated[AstNode[Ast.SpecStateMachineInstance]] + ): ResultAnnotatedNode[Ast.SpecStateMachineInstance] = + defaultAnnotatedNode(in, node) + + def specStateTransitionAnnotatedNode( + in: In, + node: Ast.Annotated[AstNode[Ast.SpecStateTransition]] + ): ResultAnnotatedNode[Ast.SpecStateTransition] = + defaultAnnotatedNode(in, node) def defStructAnnotatedNode( in: In, node: Ast.Annotated[AstNode[Ast.DefStruct]] - ): ResultAnnotatedNode[Ast.DefStruct] = Right(default(in), node) + ): ResultAnnotatedNode[Ast.DefStruct] = + defaultAnnotatedNode(in, node) def defSystemAnnotatedNode( in: In, node: Ast.Annotated[AstNode[Ast.DefSystem]] - ): ResultAnnotatedNode[Ast.DefSystem] = Right(default(in), node) + ): ResultAnnotatedNode[Ast.DefSystem] = + defaultAnnotatedNode(in, node) def defTopologyAnnotatedNode( in: In, node: Ast.Annotated[AstNode[Ast.DefTopology]] - ): ResultAnnotatedNode[Ast.DefTopology] = Right(default(in), node) + ): ResultAnnotatedNode[Ast.DefTopology] = + defaultAnnotatedNode(in, node) def exprArrayNode(in: In, node: AstNode[Ast.Expr], e: Ast.ExprArray): ResultNode[Ast.Expr] = - Right(default(in), node) + defaultNode(in, node) def exprArraySubscriptNode(in: In, node: AstNode[Ast.Expr], e: Ast.ExprArraySubscript): ResultNode[Ast.Expr] = - Right(default(in), node) + defaultNode(in, node) def exprBinopNode(in: In, node: AstNode[Ast.Expr], e: Ast.ExprBinop): ResultNode[Ast.Expr] = - Right(default(in), node) + defaultNode(in, node) def exprDotNode(in: In, node: AstNode[Ast.Expr], e: Ast.ExprDot): ResultNode[Ast.Expr] = - Right(default(in), node) + defaultNode(in, node) def exprIdentNode(in: In, node: AstNode[Ast.Expr], e: Ast.ExprIdent): ResultNode[Ast.Expr] = - Right(default(in), node) + defaultNode(in, node) def exprLiteralBoolNode(in: In, node: AstNode[Ast.Expr], e: Ast.ExprLiteralBool): ResultNode[Ast.Expr] = - Right(default(in), node) + defaultNode(in, node) def exprLiteralFloatNode(in: In, node: AstNode[Ast.Expr], e: Ast.ExprLiteralFloat): ResultNode[Ast.Expr] = - Right(default(in), node) + defaultNode(in, node) def exprLiteralIntNode(in: In, node: AstNode[Ast.Expr], e: Ast.ExprLiteralInt): ResultNode[Ast.Expr] = - Right(default(in), node) + defaultNode(in, node) def exprLiteralStringNode(in: In, node: AstNode[Ast.Expr], e: Ast.ExprLiteralString): ResultNode[Ast.Expr] = - Right(default(in), node) + defaultNode(in, node) def exprParenNode(in: In, node: AstNode[Ast.Expr], e: Ast.ExprParen): ResultNode[Ast.Expr] = - Right(default(in), node) + defaultNode(in, node) def exprSizeOfNode(in: In, node: AstNode[Ast.Expr], e: Ast.ExprSizeOf): ResultNode[Ast.Expr] = - Right(default(in), node) + defaultNode(in, node) def exprStructNode(in: In, node: AstNode[Ast.Expr], e: Ast.ExprStruct): ResultNode[Ast.Expr] = - Right(default(in), node) + defaultNode(in, node) def exprUnopNode(in: In, node: AstNode[Ast.Expr], e: Ast.ExprUnop): ResultNode[Ast.Expr] = - Right(default(in), node) + defaultNode(in, node) def specCommandAnnotatedNode( in: In, node: Ast.Annotated[AstNode[Ast.SpecCommand]] - ): ResultAnnotatedNode[Ast.SpecCommand] = Right(default(in), node) + ): ResultAnnotatedNode[Ast.SpecCommand] = + defaultAnnotatedNode(in, node) def specInstanceAnnotatedNode( in: In, node: Ast.Annotated[AstNode[Ast.SpecInstance]] - ): ResultAnnotatedNode[Ast.SpecInstance] = Right(default(in), node) + ): ResultAnnotatedNode[Ast.SpecInstance] = + defaultAnnotatedNode(in, node) def specConnectionGraphAnnotatedNode( in: In, node: Ast.Annotated[AstNode[Ast.SpecConnectionGraph]] - ): ResultAnnotatedNode[Ast.SpecConnectionGraph] = Right(default(in), node) + ): ResultAnnotatedNode[Ast.SpecConnectionGraph] = + defaultAnnotatedNode(in, node) def specContainerAnnotatedNode( in: In, node: Ast.Annotated[AstNode[Ast.SpecContainer]] - ): ResultAnnotatedNode[Ast.SpecContainer] = Right(default(in), node) + ): ResultAnnotatedNode[Ast.SpecContainer] = + defaultAnnotatedNode(in, node) def specEventAnnotatedNode( in: In, node: Ast.Annotated[AstNode[Ast.SpecEvent]] - ): ResultAnnotatedNode[Ast.SpecEvent] = Right(default(in), node) + ): ResultAnnotatedNode[Ast.SpecEvent] = + defaultAnnotatedNode(in, node) def specIncludeAnnotatedNode( in: In, node: Ast.Annotated[AstNode[Ast.SpecInclude]] - ): ResultAnnotatedNode[Ast.SpecInclude] = Right(default(in), node) + ): ResultAnnotatedNode[Ast.SpecInclude] = + defaultAnnotatedNode(in, node) def specInitAnnotatedNode( in: In, node: Ast.Annotated[AstNode[Ast.SpecInit]] - ): ResultAnnotatedNode[Ast.SpecInit] = Right(default(in), node) - - def specInitialTransitionAnnotatedNode( - in: In, - node: Ast.Annotated[AstNode[Ast.SpecInitialTransition]] - ): ResultAnnotatedNode[Ast.SpecInitialTransition] = - Right(default(in), node) + ): ResultAnnotatedNode[Ast.SpecInit] = + defaultAnnotatedNode(in, node) def specInterfaceImportAnnotatedNode( in: In, node: Ast.Annotated[AstNode[Ast.SpecImport]] - ): ResultAnnotatedNode[Ast.SpecImport] = Right(default(in), node) + ): ResultAnnotatedNode[Ast.SpecImport] = + defaultAnnotatedNode(in, node) def specInternalPortAnnotatedNode( in: In, node: Ast.Annotated[AstNode[Ast.SpecInternalPort]] - ): ResultAnnotatedNode[Ast.SpecInternalPort] = Right(default(in), node) + ): ResultAnnotatedNode[Ast.SpecInternalPort] = + defaultAnnotatedNode(in, node) def specLocAnnotatedNode( in: In, node: Ast.Annotated[AstNode[Ast.SpecLoc]] - ): ResultAnnotatedNode[Ast.SpecLoc] = Right(default(in), node) + ): ResultAnnotatedNode[Ast.SpecLoc] = + defaultAnnotatedNode(in, node) + + def specTemplateExpandAnnotatedNode( + in: In, + node: Ast.Annotated[AstNode[Ast.SpecTemplateExpand]] + ): ResultAnnotatedNode[Ast.SpecTemplateExpand] = + defaultAnnotatedNode(in, node) def specParamAnnotatedNode( in: In, node: Ast.Annotated[AstNode[Ast.SpecParam]] - ): ResultAnnotatedNode[Ast.SpecParam] = Right(default(in), node) + ): ResultAnnotatedNode[Ast.SpecParam] = + defaultAnnotatedNode(in, node) def specPortInstanceAnnotatedNode( in: In, node: Ast.Annotated[AstNode[Ast.SpecPortInstance]] - ): ResultAnnotatedNode[Ast.SpecPortInstance] = Right(default(in), node) + ): ResultAnnotatedNode[Ast.SpecPortInstance] = + defaultAnnotatedNode(in, node) def specPortMatchingAnnotatedNode( in: In, node: Ast.Annotated[AstNode[Ast.SpecPortMatching]] - ): ResultAnnotatedNode[Ast.SpecPortMatching] = Right(default(in), node) + ): ResultAnnotatedNode[Ast.SpecPortMatching] = + defaultAnnotatedNode(in, node) def specRecordAnnotatedNode( in: In, node: Ast.Annotated[AstNode[Ast.SpecRecord]] - ): ResultAnnotatedNode[Ast.SpecRecord] = Right(default(in), node) - - def specStateEntryAnnotatedNode( - in: In, - node: Ast.Annotated[AstNode[Ast.SpecStateEntry]] - ): ResultAnnotatedNode[Ast.SpecStateEntry] = - Right(default(in), node) - - def specStateExitAnnotatedNode( - in: In, - node: Ast.Annotated[AstNode[Ast.SpecStateExit]] - ): ResultAnnotatedNode[Ast.SpecStateExit] = - Right(default(in), node) - - def specStateMachineInstanceAnnotatedNode( - in: In, - node: Ast.Annotated[AstNode[Ast.SpecStateMachineInstance]] - ): ResultAnnotatedNode[Ast.SpecStateMachineInstance] = Right(default(in), node) - - def specStateTransitionAnnotatedNode( - in: In, - node: Ast.Annotated[AstNode[Ast.SpecStateTransition]] - ): ResultAnnotatedNode[Ast.SpecStateTransition] = - Right(default(in), node) + ): ResultAnnotatedNode[Ast.SpecRecord] = + defaultAnnotatedNode(in, node) def specTlmChannelAnnotatedNode( in: In, node: Ast.Annotated[AstNode[Ast.SpecTlmChannel]] - ): ResultAnnotatedNode[Ast.SpecTlmChannel] = Right(default(in), node) + ): ResultAnnotatedNode[Ast.SpecTlmChannel] = + defaultAnnotatedNode(in, node) def specTlmPacketAnnotatedNode( in: In, node: Ast.Annotated[AstNode[Ast.SpecTlmPacket]] - ): ResultAnnotatedNode[Ast.SpecTlmPacket] = Right(default(in), node) + ): ResultAnnotatedNode[Ast.SpecTlmPacket] = + defaultAnnotatedNode(in, node) def specTopPortAnnotatedNode( in: In, node: Ast.Annotated[AstNode[Ast.SpecTopPort]] - ): ResultAnnotatedNode[Ast.SpecTopPort] = Right(default(in), node) + ): ResultAnnotatedNode[Ast.SpecTopPort] = + defaultAnnotatedNode(in, node) def specTlmPacketSetAnnotatedNode( in: In, node: Ast.Annotated[AstNode[Ast.SpecTlmPacketSet]] - ): ResultAnnotatedNode[Ast.SpecTlmPacketSet] = Right(default(in), node) - - def transUnit(in: In, tu: Ast.TransUnit): Result[Ast.TransUnit] = - Right(default(in), tu) + ): ResultAnnotatedNode[Ast.SpecTlmPacketSet] = + defaultAnnotatedNode(in, node) def typeNameBoolNode(in: In, node: AstNode[Ast.TypeName]): ResultNode[Ast.TypeName] = - Right(default(in), node) + defaultNode(in, node) def typeNameFloatNode(in: In, node: AstNode[Ast.TypeName], tn: Ast.TypeNameFloat): ResultNode[Ast.TypeName] = - Right(default(in), node) + defaultNode(in, node) def typeNameIntNode(in: In, node: AstNode[Ast.TypeName], tn: Ast.TypeNameInt): ResultNode[Ast.TypeName] = - Right(default(in), node) + defaultNode(in, node) def typeNameQualIdentNode(in: In, node: AstNode[Ast.TypeName], tn: Ast.TypeNameQualIdent): ResultNode[Ast.TypeName] = - Right(default(in), node) + defaultNode(in, node) def typeNameStringNode(in: In, node: AstNode[Ast.TypeName], tn: Ast.TypeNameString): ResultNode[Ast.TypeName] = - Right(default(in), node) + defaultNode(in, node) + + def transUnit(in: In, tu: Ast.TransUnit): Result[Ast.TransUnit] = + Right(default(in), tu) final def matchComponentMember(in: In, member: Ast.ComponentMember): Result[List[Ast.ComponentMember]] = { def transform[T]( @@ -493,6 +546,8 @@ trait AstTransformer { transform(defEnumAnnotatedNode(in, (pre, node1, post)), Ast.ModuleMember.DefEnum(_)) case Ast.ModuleMember.DefModule(node1) => transform(defModuleAnnotatedNode(in, (pre, node1, post)), Ast.ModuleMember.DefModule(_)) + case Ast.ModuleMember.DefModuleTemplate(node1) => + transform(defModuleTemplateAnnotatedNode(in, (pre, node1, post)), Ast.ModuleMember.DefModuleTemplate(_)) case Ast.ModuleMember.DefPort(node1) => transform(defPortAnnotatedNode(in, (pre, node1, post)), Ast.ModuleMember.DefPort(_)) case Ast.ModuleMember.DefStateMachine(node1) => @@ -507,6 +562,8 @@ trait AstTransformer { transform(specIncludeAnnotatedNode(in, (pre, node1, post)), Ast.ModuleMember.SpecInclude(_)) case Ast.ModuleMember.SpecLoc(node1) => transform(specLocAnnotatedNode(in, (pre, node1, post)), Ast.ModuleMember.SpecLoc(_)) + case Ast.ModuleMember.SpecTemplateExpand(node1) => + transform(specTemplateExpandAnnotatedNode(in, (pre, node1, post)), Ast.ModuleMember.SpecTemplateExpand(_)) } } @@ -566,10 +623,4 @@ trait AstTransformer { case tn : Ast.TypeNameString => typeNameStringNode(in, node, tn) } - private def transformNode[In,Out](rn: ResultNode[In], f: AstNode[In] => Out): Result[Out] = - for (pair <- rn) yield { - val (out, node) = pair - (out, f(node)) - } - } diff --git a/compiler/lib/src/main/scala/ast/AstVisitor.scala b/compiler/lib/src/main/scala/ast/AstVisitor.scala index 5becb44443..cbea6be133 100644 --- a/compiler/lib/src/main/scala/ast/AstVisitor.scala +++ b/compiler/lib/src/main/scala/ast/AstVisitor.scala @@ -33,6 +33,8 @@ trait AstVisitor { def defModuleAnnotatedNode(in: In, node: Ast.Annotated[AstNode[Ast.DefModule]]): Out = default(in) + def defModuleTemplateAnnotatedNode(in: In, node: Ast.Annotated[AstNode[Ast.DefModuleTemplate]]): Out = default(in) + def defPortAnnotatedNode(in: In, node: Ast.Annotated[AstNode[Ast.DefPort]]): Out = default(in) def defSignalAnnotatedNode(in: In, node: Ast.Annotated[AstNode[Ast.DefSignal]]): Out = default(in) @@ -108,6 +110,8 @@ trait AstVisitor { def specLocAnnotatedNode(in: In, node: Ast.Annotated[AstNode[Ast.SpecLoc]]): Out = default(in) + def specTemplateExpandAnnotatedNode(in: In, node: Ast.Annotated[AstNode[Ast.SpecTemplateExpand]]): Out = default(in) + def specParamAnnotatedNode(in: In, node: Ast.Annotated[AstNode[Ast.SpecParam]]): Out = default(in) def specPortInstanceAnnotatedNode(in: In, node: Ast.Annotated[AstNode[Ast.SpecPortInstance]]): Out = default(in) @@ -208,6 +212,7 @@ trait AstVisitor { case Ast.ModuleMember.DefEnum(node1) => defEnumAnnotatedNode(in, (pre, node1, post)) case Ast.ModuleMember.DefInterface(node1) => defInterfaceAnnotatedNode(in, (pre, node1, post)) case Ast.ModuleMember.DefModule(node1) => defModuleAnnotatedNode(in, (pre, node1, post)) + case Ast.ModuleMember.DefModuleTemplate(node1) => defModuleTemplateAnnotatedNode(in, (pre, node1, post)) case Ast.ModuleMember.DefPort(node1) => defPortAnnotatedNode(in, (pre, node1, post)) case Ast.ModuleMember.DefStateMachine(node1) => defStateMachineAnnotatedNode(in, (pre, node1, post)) case Ast.ModuleMember.DefStruct(node1) => defStructAnnotatedNode(in, (pre, node1, post)) @@ -215,6 +220,7 @@ trait AstVisitor { case Ast.ModuleMember.DefTopology(node1) => defTopologyAnnotatedNode(in, (pre, node1, post)) case Ast.ModuleMember.SpecInclude(node1) => specIncludeAnnotatedNode(in, (pre, node1, post)) case Ast.ModuleMember.SpecLoc(node1) => specLocAnnotatedNode(in, (pre, node1, post)) + case Ast.ModuleMember.SpecTemplateExpand(node1) => specTemplateExpandAnnotatedNode(in, (pre, node1, post)) } } diff --git a/compiler/lib/src/main/scala/ast/ModuleTemplateStateTransformer.scala b/compiler/lib/src/main/scala/ast/ModuleTemplateStateTransformer.scala new file mode 100644 index 0000000000..34bede1aaf --- /dev/null +++ b/compiler/lib/src/main/scala/ast/ModuleTemplateStateTransformer.scala @@ -0,0 +1,26 @@ +package fpp.compiler.ast + +import fpp.compiler.syntax._ + +/** Visit module template members */ +trait ModuleTemplateStateTransformer extends AstStateTransformer { + + override def defModuleTemplateAnnotatedNode( + s: State, + aNode: Ast.Annotated[AstNode[Ast.DefModuleTemplate]] + ) = { + val (pre, node, post) = aNode + val Ast.DefModuleTemplate(name, params, members) = node.data + for { result <- transformList(s, members, moduleTemplateMember) } + yield { + val (s1, members1) = result + val defModuleTemplate = Ast.DefModuleTemplate(name, params, members1.flatten) + val node1 = AstNode.create(defModuleTemplate, node.id) + (s1, (pre, node1, post)) + } + } + + def moduleTemplateMember(s: State, member: Ast.ModuleMember): Result[List[Ast.ModuleMember]] = + matchModuleMember(s, member) + +} diff --git a/compiler/lib/src/main/scala/codegen/AstWriter.scala b/compiler/lib/src/main/scala/codegen/AstWriter.scala index be3d7c3437..3f1e74612f 100644 --- a/compiler/lib/src/main/scala/codegen/AstWriter.scala +++ b/compiler/lib/src/main/scala/codegen/AstWriter.scala @@ -2,7 +2,6 @@ package fpp.compiler.codegen import fpp.compiler.ast._ import fpp.compiler.util._ -import fpp.compiler.ast.Ast.QualIdent /** Write out an FPP AST */ object AstWriter extends AstVisitor with LineUtils { @@ -173,6 +172,33 @@ object AstWriter extends AstVisitor with LineUtils { (ident(data.name) ++ data.members.flatMap(moduleMember)).map(indentIn) } + override def defModuleTemplateAnnotatedNode( + in: In, + aNode: Ast.Annotated[AstNode[Ast.DefModuleTemplate]] + ) = { + val (_, node, _) = aNode + val data = node.data + lines("def module template") ++ + List.concat( + ident(data.name), + templateParamList(data.params), + data.members.flatMap(moduleMember) + ).map(indentIn) + } + + override def specTemplateExpandAnnotatedNode( + in: In, + aNode: Ast.Annotated[AstNode[Ast.SpecTemplateExpand]] + ) = { + val (_, node, _) = aNode + val data = node.data + lines("expand") ++ + List.concat( + qualIdent(data.template.data), + templateArgList(data.args) + ).map(indentIn) + } + override def defPortAnnotatedNode( in: In, aNode: Ast.Annotated[AstNode[Ast.DefPort]] @@ -866,6 +892,43 @@ object AstWriter extends AstVisitor with LineUtils { private def formalParamList(params: Ast.FormalParamList) = params.flatMap(annotateNode(formalParam)) + private def templateParam(tp: Ast.TemplateParam) = { + tp match { + case Ast.TemplateParam.Constant(name, typeName) => + line("constant template param") :: + typeNameNode(typeName).map(indentIn) + case Ast.TemplateParam.Type(name) => + line(s"type template param") :: + ident(name).map(indentIn) + case Ast.TemplateParam.Interface(name, interface) => + line(s"interface template param") :: + List.concat( + ident(name), + qualIdent(interface.data) + ).map(indentIn) + } + } + + private def templateParamList(params: Ast.TemplateParamList) = + params.flatMap(annotateNode(templateParam)) + + private def templateArg(tp: AstNode[Ast.TemplateArg]) = { + tp.data match { + case Ast.TemplateArg.Constant(e) => + line("constant template arg") :: + exprNode(e).map(indentIn) + case Ast.TemplateArg.Type(name) => + line("type template arg") :: + typeNameNode(name).map(indentIn) + case Ast.TemplateArg.Interface(i) => + line("interface template param") :: + qualIdent(i.data).map(indentIn) + } + } + + private def templateArgList(args: Ast.TemplateArgList) = + args.flatMap(templateArg) + private def ident(s: String) = lines("ident " ++ s) private def moduleMember(member: Ast.ModuleMember) = { diff --git a/compiler/lib/src/main/scala/codegen/CppWriter/CppWriterState.scala b/compiler/lib/src/main/scala/codegen/CppWriter/CppWriterState.scala index cb9798695f..62055b69a0 100644 --- a/compiler/lib/src/main/scala/codegen/CppWriter/CppWriterState.scala +++ b/compiler/lib/src/main/scala/codegen/CppWriter/CppWriterState.scala @@ -189,10 +189,14 @@ case class CppWriterState( this.a.interfaceMap(iface).aNode, ) a.usedSymbolSet.flatMap(getIncludeFiles).toList - case _: Symbol.ComponentInstance => List() + case arg: Symbol.TemplateTypeArg => getIncludeFiles(a.useDefMap(arg.getNodeId)) + case arg: Symbol.TemplateInterfaceArg => getIncludeFiles(a.useDefMap(arg.getNodeId)) case _: Symbol.Constant => List() case _: Symbol.EnumConstant => List() case _: Symbol.Module => List() + case _: Symbol.ComponentInstance => List() + case _: Symbol.Template => List() + case _: Symbol.TemplateConstantArg => List() case _: Symbol.System => List() } } diff --git a/compiler/lib/src/main/scala/codegen/FppWriter.scala b/compiler/lib/src/main/scala/codegen/FppWriter.scala index 8ad5bbf306..162f4ed0f1 100644 --- a/compiler/lib/src/main/scala/codegen/FppWriter.scala +++ b/compiler/lib/src/main/scala/codegen/FppWriter.scala @@ -262,6 +262,38 @@ object FppWriter extends AstVisitor with LineUtils { List(Line.blank, line("}")) } + override def defModuleTemplateAnnotatedNode( + in: In, + aNode: Ast.Annotated[AstNode[Ast.DefModuleTemplate]] + ) = { + val (_, node, _) = aNode + val data = node.data + lines (s"module template ${ident(data.name)}"). + join ("") (paramList (templateParam) (data.params)). + addSuffix(" {") ++ + ((Line.blankSeparated (moduleMember) (data.members)).map(indentIn)) ++ + List(Line.blank, line("}")) + } + + override def specTemplateExpandAnnotatedNode( + in: In, + aNode: Ast.Annotated[AstNode[Ast.SpecTemplateExpand]] + ): Out = { + val (_, node, _) = aNode + val data = node.data + val header = + lines("expand"). + join(" ") (qualIdent(data.template.data)). + join ("") (templateArgList(data.args)) + data.members match { + case None => header + case Some(members) => + header.addSuffix(" {") ++ + (Line.blankSeparated (moduleMember) (members)).map(indentIn) ++ + List(Line.blank, line("}")) + } + } + override def defPortAnnotatedNode( in: In, aNode: Ast.Annotated[AstNode[Ast.DefPort]] @@ -849,15 +881,38 @@ object FppWriter extends AstVisitor with LineUtils { lines(name).join (": ") (typeNameNode(fp.typeName)) } - private def formalParamList(fpl: Ast.FormalParamList) = - fpl match { + private val formalParamList = paramList (formalParam) + + private def paramList[T] (f: T => List[Line]) (params: List[Ast.Annotated[AstNode[T]]]) = + params match { case Nil => Nil case _ => lines("(") ++ - fpl.flatMap(annotateNode(formalParam)).map(indentIn) ++ + params.flatMap(annotateNode(f)).map(indentIn) ++ lines(")") } + private def templateArg(arg: Ast.TemplateArg) = + arg match { + case Ast.TemplateArg.Constant(e) => + lines("constant").join(" ") (exprNode(e)) + case Ast.TemplateArg.Type(name) => + lines("type").join(" ") (typeNameNode(name)) + case Ast.TemplateArg.Interface(i) => + lines("interface").join(" ") (qualIdent(i.data)) + } + + private def argList[T] (f: T => List[Line]) (args: List[AstNode[T]]) = + args match { + case Nil => Nil + case _ => + lines("(") ++ + args.flatMap({ case node => f(node.data) }).map(indentIn) ++ + lines(")") + } + + private val templateArgList = argList (templateArg) + private def ident(id: Ast.Ident) = if (Lexer.reservedWordSet.contains(id)) "$" ++ id else id @@ -867,6 +922,12 @@ object FppWriter extends AstVisitor with LineUtils { qualIdent(pii.interfaceInstance.data). addSuffix(s".${ident(pii.portName.data)}") + private def prefixWithDictionary(s: String, isDictionaryDef: Boolean) = + if isDictionaryDef then + s"dictionary $s" + else + s + private def qualIdent(qid: Ast.QualIdent): Out = lines(qualIdentString(qid)) @@ -900,6 +961,19 @@ object FppWriter extends AstVisitor with LineUtils { join (" ") (typeNameNode(member.typeName)). joinOpt (member.format) (" format ") (applyToData(string)) + private def templateParam(tp: Ast.TemplateParam) = { + tp match { + case Ast.TemplateParam.Constant(name, typeName) => + lines(s"constant $name: "). + join("") (typeNameNode(typeName)) + case Ast.TemplateParam.Type(name) => + lines(s"type $name") + case Ast.TemplateParam.Interface(name, interface) => + lines(s"interface $name: "). + join("") (qualIdent(interface.data)) + } + } + private def tlmChannelId(tci: Ast.TlmChannelIdentifier) = qualIdent(tci.componentInstance.data). addSuffix(s".${ident(tci.channelName.data)}") @@ -916,9 +990,4 @@ object FppWriter extends AstVisitor with LineUtils { private def unop(op: Ast.Unop) = op.toString - private def prefixWithDictionary(s: String, isDictionaryDef: Boolean) = - if isDictionaryDef then - s"dictionary $s" - else - s } diff --git a/compiler/lib/src/main/scala/codegen/JsonEncoder/AnalysisJsonEncoder.scala b/compiler/lib/src/main/scala/codegen/JsonEncoder/AnalysisJsonEncoder.scala index ffa734f57e..70847af8f2 100644 --- a/compiler/lib/src/main/scala/codegen/JsonEncoder/AnalysisJsonEncoder.scala +++ b/compiler/lib/src/main/scala/codegen/JsonEncoder/AnalysisJsonEncoder.scala @@ -55,8 +55,19 @@ object AnalysisJsonEncoder extends JsonEncoder{ private implicit val interfaceInstanceEncoder: Encoder[InterfaceInstance] = Encoder.instance { instance => val nodeJson = instance match { - case InterfaceInstance.InterfaceComponentInstance(ci) => ci.aNode.asJson - case InterfaceInstance.InterfaceTopology(t) => t.aNode.asJson + case InterfaceInstance.InterfaceComponentInstance(ci) => ci.aNode._2.id.asJson + case InterfaceInstance.InterfaceTopology(t) => t.aNode._2.id.asJson + case InterfaceInstance.InterfaceTemplateArg( + paramDef, + interface, + ii + ) => Json.obj( + "paramDef" -> Json.obj( + "name" -> paramDef.name.asJson, + "interfaceNodeId" -> paramDef.interface.id.asJson + ), + "ii" -> ii.asJson + ) } addTypeNameKey(instance, nodeJson) } diff --git a/compiler/lib/src/main/scala/codegen/LocateDefsFppWriter.scala b/compiler/lib/src/main/scala/codegen/LocateDefsFppWriter.scala index 433f45f51f..63688fc183 100644 --- a/compiler/lib/src/main/scala/codegen/LocateDefsFppWriter.scala +++ b/compiler/lib/src/main/scala/codegen/LocateDefsFppWriter.scala @@ -116,6 +116,30 @@ object LocateDefsFppWriter extends AstVisitor with LineUtils { members.flatMap(matchModuleMember(s1, _)) } + override def defModuleTemplateAnnotatedNode( + s: State, + aNode: Ast.Annotated[AstNode[Ast.DefModuleTemplate]] + ) = { + val (_, node, _) = aNode + val data = node.data + writeSpecLoc(s, Ast.SpecLoc.Template, data.name, node) + } + + override def specTemplateExpandAnnotatedNode( + s: State, + aNode: Ast.Annotated[AstNode[Ast.SpecTemplateExpand]] + ) = { + // If the template has been expanded, its generated definitions live in the + // members list. Locate them so that files using expansion-generated + // symbols can resolve them. The generated definitions are placed in the + // enclosing scope, so we do not push a scope name here. + val (_, node, _) = aNode + node.data.members match { + case Some(members) => members.flatMap(matchModuleMember(s, _)) + case None => Nil + } + } + override def defPortAnnotatedNode( s: State, aNode: Ast.Annotated[AstNode[Ast.DefPort]] diff --git a/compiler/lib/src/main/scala/syntax/Lexer.scala b/compiler/lib/src/main/scala/syntax/Lexer.scala index d59f46e13d..e4a6b1ba6d 100644 --- a/compiler/lib/src/main/scala/syntax/Lexer.scala +++ b/compiler/lib/src/main/scala/syntax/Lexer.scala @@ -58,6 +58,7 @@ object Lexer { ("event", EVENT), ("every", EVERY), ("exit", EXIT), + ("expand", EXPAND), ("external", EXTERNAL), ("false", FALSE), ("fatal", FATAL), @@ -121,6 +122,7 @@ object Lexer { ("sync", SYNC), ("system", SYSTEM), ("telemetry", TELEMETRY), + ("template", TEMPLATE), ("text", TEXT), ("throttle", THROTTLE), ("time", TIME), @@ -258,6 +260,7 @@ object Lexer { case EVERY => Token.EVERY() case EXIT => Token.EXIT() case EXTERNAL => Token.EXTERNAL() + case EXPAND => Token.EXPAND() case F32 => Token.F32() case F64 => Token.F64() case FALSE => Token.FALSE() @@ -347,6 +350,7 @@ object Lexer { case SYNC => Token.SYNC() case SYSTEM => Token.SYSTEM() case TELEMETRY => Token.TELEMETRY() + case TEMPLATE => Token.TEMPLATE() case TEXT => Token.TEXT() case THROTTLE => Token.THROTTLE() case TIME => Token.TIME() diff --git a/compiler/lib/src/main/scala/syntax/Parser.scala b/compiler/lib/src/main/scala/syntax/Parser.scala index e9ecc74264..b2abbf601f 100644 --- a/compiler/lib/src/main/scala/syntax/Parser.scala +++ b/compiler/lib/src/main/scala/syntax/Parser.scala @@ -422,17 +422,16 @@ object Parser extends Parsers { } } - def formalParamList: Parser[Ast.FormalParamList] = { - def id(x: Ast.Annotated[AstNode[Ast.FormalParam]]) = x - - def params = annotatedElementSequence(node(formalParam), comma, id) - + private def paramList[T](param: Parser[T]): Parser[List[Ast.Annotated[AstNode[T]]]] = { + def params = annotatedElementSequence(node(param), comma, { case x => x }) opt(lparen ~>! params <~! rparen) ^^ { case Some(params) => params case None => Nil } } + val formalParamList = paramList(formalParam) + def index: Parser[AstNode[Ast.Expr]] = lbracket ~>! exprNode <~! rbracket def moduleMemberNode: Parser[Ast.ModuleMember.Node] = { @@ -445,6 +444,7 @@ object Parser extends Parsers { Ast.ModuleMember.DefComponentInstance(n)) | node(defConstant) ^^ (n => Ast.ModuleMember.DefConstant(n)) | node(defEnum) ^^ (n => Ast.ModuleMember.DefEnum(n)) | + node(defModuleTemplate) ^^ (n => Ast.ModuleMember.DefModuleTemplate(n)) | node(defModule) ^^ (n => Ast.ModuleMember.DefModule(n)) | node(defPort) ^^ (n => Ast.ModuleMember.DefPort(n)) | node(defStateMachine) ^^ (n => @@ -454,6 +454,7 @@ object Parser extends Parsers { node(defTopology) ^^ (n => Ast.ModuleMember.DefTopology(n)) | node(specInclude) ^^ (n => Ast.ModuleMember.SpecInclude(n)) | node(specLoc) ^^ (n => Ast.ModuleMember.SpecLoc(n)) | + node(specTemplateExpand) ^^ (n => Ast.ModuleMember.SpecTemplateExpand(n)) | failure("module member expected") } @@ -700,6 +701,7 @@ object Parser extends Parsers { instance ^^ (_ => Ast.SpecLoc.Instance) | port ^^ (_ => Ast.SpecLoc.Port) | state ~! machine ^^ (_ => Ast.SpecLoc.StateMachine) | + template ^^ (_ => Ast.SpecLoc.Template) | system ^^ (_ => Ast.SpecLoc.System) | interface ^^ (_ => Ast.SpecLoc.Interface) def maybeDictPair = @@ -1041,6 +1043,60 @@ object Parser extends Parsers { failure("type name expected") } + private def templateParam: Parser[Ast.TemplateParam] = { + def paramConstant: Parser[Ast.TemplateParam.Constant] = { + (constant ~>! ident) ~! (colon ~>! node(typeName)) ^^ { + case id ~ tn => Ast.TemplateParam.Constant(id, tn) + } + } + + def paramType: Parser[Ast.TemplateParam.Type] = { + typeToken ~>! ident ^^ { + case id => Ast.TemplateParam.Type(id) + } + } + + def paramInterface: Parser[Ast.TemplateParam.Interface] = { + (interface ~>! ident) ~! (colon ~>! node(qualIdent)) ^^ { + case id ~ iface => Ast.TemplateParam.Interface(id, iface) + } + } + paramConstant | + paramType | + paramInterface | + failure("template parameter expected") + } + + val templateParamList = paramList(templateParam) + + def defModuleTemplate: Parser[Ast.DefModuleTemplate] = { + (module ~> template ~>! ident) ~! templateParamList ~! (lbrace ~>! moduleMembers <~! rbrace) ^^ { + case name ~ params ~ members => Ast.DefModuleTemplate(name, params, members) + } + } + + def templateArg: Parser[Ast.TemplateArg] = { + (constant ~>! exprNode) ^^ { case e => Ast.TemplateArg.Constant(e) } | + typeToken ~>! node(typeName) ^^ { case tn => Ast.TemplateArg.Type(tn) } | + interface ~>! node(qualIdent) ^^ { case i => Ast.TemplateArg.Interface(i) } | + failure("template argument expected") + } + + private def argList[T](arg: Parser[T]): Parser[List[AstNode[T]]] = { + opt(lparen ~>! elementSequence(node(arg), comma) <~! rparen) ^^ { + case Some(args) => args + case None => Nil + } + } + + val templateArgList = argList(templateArg) + + def specTemplateExpand: Parser[Ast.SpecTemplateExpand] = { + (expand ~>! node(qualIdent)) ~! templateArgList ^^ { + case id ~ args => Ast.SpecTemplateExpand(id, args, None) + } + } + override def commit[T](p: => Parser[T]) = Parser { in => def setError(e: Error) = { error match { @@ -1119,8 +1175,6 @@ object Parser extends Parsers { private def choice = accept("choice", { case t: Token.CHOICE => t }) - private def lbrace = accept("{", { case t: Token.LBRACE => t }) - private def colon = accept(":", { case t: Token.COLON => t }) private def comma = accept(",", { case t: Token.COMMA => t }) @@ -1177,6 +1231,8 @@ object Parser extends Parsers { private def exit = accept("exit", { case t: Token.EXIT => t }) + private def expand = accept("expand", { case t: Token.EXPAND => t }) + private def external = accept("external", { case t : Token.EXTERNAL => t }) private def falseToken = accept("false", { case t : Token.FALSE => t }) @@ -1222,9 +1278,11 @@ object Parser extends Parsers { private def instance = accept("instance", { case t: Token.INSTANCE => t }) + private def interface = accept("interface", { case t: Token.INTERFACE => t }) + private def internal = accept("internal", { case t: Token.INTERNAL => t }) - private def interface = accept("interface", { case t: Token.INTERFACE => t }) + private def lbrace = accept("{", { case t: Token.LBRACE => t }) private def lbracket = accept("[", { case t: Token.LBRACKET => t }) @@ -1349,6 +1407,8 @@ object Parser extends Parsers { private def telemetry = accept("telemetry", { case t: Token.TELEMETRY => t }) + private def template = accept("template", { case t: Token.TEMPLATE => t }) + private def text = accept("text", { case t: Token.TEXT => t }) private def throttle = accept("throttle", { case t: Token.THROTTLE => t }) @@ -1369,6 +1429,7 @@ object Parser extends Parsers { private def yellow = accept("yellow", { case t: Token.YELLOW => t }) + /** The first error seen */ private var error: Option[Error] = None diff --git a/compiler/lib/src/main/scala/syntax/Token.scala b/compiler/lib/src/main/scala/syntax/Token.scala index 820f9fac6f..e255b9e0ed 100644 --- a/compiler/lib/src/main/scala/syntax/Token.scala +++ b/compiler/lib/src/main/scala/syntax/Token.scala @@ -44,6 +44,7 @@ object Token { final case class EVENT() extends Token final case class EVERY() extends Token final case class EXIT() extends Token + final case class EXPAND() extends Token final case class EXTERNAL() extends Token final case class F32() extends Token final case class F64() extends Token @@ -63,8 +64,8 @@ object Token { final case class I8() extends Token final case class ID() extends Token final case class IDENTIFIER(str: String) extends Token - final case class IMPLEMENTS() extends Token final case class IF() extends Token + final case class IMPLEMENTS() extends Token final case class IMPORT() extends Token final case class INCLUDE() extends Token final case class INITIAL() extends Token @@ -133,6 +134,7 @@ object Token { final case class SYNC() extends Token final case class SYSTEM() extends Token final case class TELEMETRY() extends Token + final case class TEMPLATE() extends Token final case class TEXT() extends Token final case class THROTTLE() extends Token final case class TIME() extends Token @@ -178,6 +180,7 @@ enum TokenId { case BLOCK case BOOL case CHANGE + case CHOICE case COMMAND case COMPONENT case CONNECTIONS @@ -197,6 +200,7 @@ enum TokenId { case EVENT case EVERY case EXIT + case EXPAND case EXTERNAL case F32 case F64 @@ -216,15 +220,14 @@ enum TokenId { case I8 case ID case IF - case IMPORT case IMPLEMENTS + case IMPORT case INCLUDE case INITIAL case INPUT case INSTANCE case INTERFACE case INTERNAL - case CHOICE case LOCATE case LOW case MACHINE @@ -267,6 +270,7 @@ enum TokenId { case SYNC case SYSTEM case TELEMETRY + case TEMPLATE case TEXT case THROTTLE case TIME diff --git a/compiler/lib/src/main/scala/transform/AddStateEnums.scala b/compiler/lib/src/main/scala/transform/AddStateEnums.scala index 0cbdc240dd..4598f1f359 100644 --- a/compiler/lib/src/main/scala/transform/AddStateEnums.scala +++ b/compiler/lib/src/main/scala/transform/AddStateEnums.scala @@ -9,6 +9,7 @@ import fpp.compiler.util._ object AddStateEnums extends AstStateTransformer with ComponentStateTransformer with ModuleStateTransformer + with ModuleTemplateStateTransformer { type State = Unit diff --git a/compiler/lib/src/main/scala/transform/ExpandTemplates.scala b/compiler/lib/src/main/scala/transform/ExpandTemplates.scala new file mode 100644 index 0000000000..2052581284 --- /dev/null +++ b/compiler/lib/src/main/scala/transform/ExpandTemplates.scala @@ -0,0 +1,1138 @@ +package fpp.compiler.transform + +import fpp.compiler.analysis._ +import fpp.compiler.ast._ +import fpp.compiler.util._ + +/** Expand any template expansion specifiers that have not yet been expanded */ +object ExpandTemplates extends AstTransformer +{ + + type State = Analysis + + type In = State + + type Out = Unit + + def default(a: Analysis) = + throw new InternalError("ExpandTemplates: Transformer not implemented") + + /** Transform a list in sequence, threading state */ + def transformList[A, B]( + s: State, + list: List[A], + transform: (State, A) => Result[B] + ): Result[List[B]] = { + def helper(in: List[A], out: List[B]): Result[List[B]] = { + in match { + case Nil => Right(((), out)) + case head :: tail => transform(s, head) match { + case Left(e) => Left(e) + case Right((_, list)) => helper(tail, list :: out) + } + } + } + for { pair <- helper(list, Nil) } + yield ((), pair._2.reverse) + } + + override def transUnit( + a: Analysis, + tu: Ast.TransUnit + ): Result[Ast.TransUnit] = { + for { + members <- transformList(a, tu.members, matchModuleMember) + } yield (members._1, Ast.TransUnit(members._2.flatten)) + } + + // Duplicate every node inside a template definition + override def defaultNode[T]( + a: Analysis, + node: AstNode[T] + ) = + a.template match { + case None => Right((), node) + case Some(expansionNode) => { + val out = AstNode.create(node.data) + val inLoc = Locations.get(node.id) + Locations.put(out.id, Location( + inLoc.file, + inLoc.pos, + inLoc.includingLoc, + Some(Locations.get(expansionNode)) + )) + Right((), out) + } + } + + def defaultNodeOpt[T]( + a: Analysis, + node: Option[AstNode[T]] + ): Result[Option[AstNode[T]]] = + node match { + case None => Right(((), None)) + case Some(node) => + for (result <- defaultNode(a, node)) + yield (result._1, Some(result._2)) + } + + override def defaultAnnotatedNode[T]( + a: In, + aNode: Ast.Annotated[AstNode[T]] + ) = { + a.template match { + // We are not currently in a template, leave the node alone + case None => Right((), aNode) + case Some(_) => + val (pre, node, post) = aNode + for (inter <- defaultNode(a, node)) + yield (inter._1, (pre, inter._2, post)) + } + } + + inline def cloneNode[T]( + a: Analysis, + node: AstNode[T], + data: T + ) = + a.template match { + case None => AstNode.create(data, node.id) + case Some(expansionNode) => { + val out = AstNode.create(data) + val inLoc = Locations.get(node.id) + Locations.put(out.id, Location( + inLoc.file, + inLoc.pos, + inLoc.includingLoc, + Some(Locations.get(expansionNode)) + )) + out + } + } + + inline def cloneAnnotatedNode[T]( + a: Analysis, + aNode: Ast.Annotated[AstNode[T]], + data: T + ) = { + val (pre, node, post) = aNode + (pre, cloneNode(a, node, data), post) + } + + override def exprArrayNode(a: In, node: AstNode[Ast.Expr], e: Ast.ExprArray): ResultNode[Ast.Expr] = + for { result <- transformList(a, e.elts, matchExprNode) } + yield { + val (a1, elts1) = result + (a1, cloneNode(a, node, Ast.ExprArray(elts1))) + } + + override def exprArraySubscriptNode(a: In, node: AstNode[Ast.Expr], e: Ast.ExprArraySubscript): ResultNode[Ast.Expr] = + for { + e1 <- matchExprNode(a, e.e1) + e2 <- matchExprNode(a, e.e2) + } + yield { + val (_, e1_) = e1 + val (_, e2_) = e2 + ((), cloneNode(a, node, Ast.ExprArraySubscript(e1_, e2_))) + } + + override def exprBinopNode(a: In, node: AstNode[Ast.Expr], e: Ast.ExprBinop): ResultNode[Ast.Expr] = + for { + e1 <- matchExprNode(a, e.e1) + e2 <- matchExprNode(a, e.e2) + } + yield { + val (_, e1_) = e1 + val (_, e2_) = e2 + ((), cloneNode(a, node, Ast.ExprBinop(e1_, e.op, e2_))) + } + + override def exprDotNode(a: In, node: AstNode[Ast.Expr], e: Ast.ExprDot): ResultNode[Ast.Expr] = + for (result <- matchExprNode(a, e.e)) + yield { + val (a1, left) = result + (a1, cloneNode(a, node, Ast.ExprDot(left, cloneNode(a, e.id, e.id.data)))) + } + + override def exprParenNode(a: In, node: AstNode[Ast.Expr], e: Ast.ExprParen): ResultNode[Ast.Expr] = + for (result <- matchExprNode(a, e.e)) + yield { + val (a1, value) = result + (a1, cloneNode(a, node, Ast.ExprParen(value))) + } + + def structMember( + a: Analysis, + node: AstNode[Ast.StructMember] + ) = { + for (result <- matchExprNode(a, node.data.value)) + yield { + val (a1, value) = result + (a1, cloneNode(a, node, Ast.StructMember( + node.data.name, + value + ))) + } + } + + def cloneQualIdentNode( + a: In, + node: AstNode[Ast.QualIdent] + ): AstNode[Ast.QualIdent] = { + node.data match { + case Ast.QualIdent.Qualified(qualifier, name) => + cloneNode(a, node, Ast.QualIdent.Qualified( + cloneQualIdentNode(a, qualifier), + cloneNode(a, name, name.data) + )) + case Ast.QualIdent.Unqualified(name) => + cloneNode(a, node, Ast.QualIdent.Unqualified(name)) + } + } + + def qualIdentNode( + a: In, + node: AstNode[Ast.QualIdent] + ): ResultNode[Ast.QualIdent] = + Right(((), cloneQualIdentNode(a, node))) + + override def exprStructNode( + a: Analysis, + node: AstNode[Ast.Expr], + e: Ast.ExprStruct + ) = + for { result <- transformList(a, e.members, structMember) } + yield { + val (a1, members1) = result + (a1, cloneNode(a, node, Ast.ExprStruct(members1))) + } + + override def exprUnopNode(a: In, node: AstNode[Ast.Expr], e: Ast.ExprUnop) = + for (ec <- matchExprNode(a, e.e)) + yield (ec._1, cloneNode(a, node, Ast.ExprUnop(e.op, ec._2))) + + override def exprSizeOfNode(a: In, node: AstNode[Ast.Expr], e: Ast.ExprSizeOf): ResultNode[Ast.Expr] = + for (result <- matchTypeName(a, e.typeName)) + yield (result._1, cloneNode(a, node, Ast.ExprSizeOf(result._2))) + + override def typeNameQualIdentNode( + a: In, + node: AstNode[Ast.TypeName], + tn: Ast.TypeNameQualIdent + ): ResultNode[Ast.TypeName] = { + Right(((), cloneNode(a, node, Ast.TypeNameQualIdent( + cloneQualIdentNode(a, tn.name) + )))) + } + + def exprNodeOpt( + a: In, + node: Option[AstNode[Ast.Expr]] + ): Result[Option[AstNode[Ast.Expr]]] = + node match { + case None => Right(((), None)) + case Some(value) => + for (result <- matchExprNode(a, value)) + yield { + val (a1, v1) = result + (a1, Some(v1)) + } + } + + override def typeNameStringNode( + a: In, + node: AstNode[Ast.TypeName], + tn: Ast.TypeNameString + ): ResultNode[Ast.TypeName] = { + tn.size match { + case None => + Right(((), cloneNode(a, node, Ast.TypeNameString(None)))) + case Some(size) => + for (result <- matchExprNode(a, size)) + yield { + val (a1, value) = result + (a1, cloneNode(a, node, Ast.TypeNameString(Some(value)))) + } + } + } + + def typeNameNodeOpt( + a: In, + node: Option[AstNode[Ast.TypeName]] + ): Result[Option[AstNode[Ast.TypeName]]] = + node match { + case None => Right(((), None)) + case Some(tn) => + for (result <- matchTypeName(a, tn)) + yield ((), Some(result._2)) + } + + override def defAliasTypeAnnotatedNode( + a: In, + aNode: Ast.Annotated[AstNode[Ast.DefAliasType]] + ): ResultAnnotatedNode[Ast.DefAliasType] = + val data = aNode._2.data + for (result <- matchTypeName(a, data.typeName)) + yield { + val (a1, ty) = result + (a1, cloneAnnotatedNode( + a, aNode, data.copy(typeName = ty) + )) + } + + def cloneStringNodeOpt( + a: In, + node: Option[AstNode[String]] + ): Option[AstNode[String]] = + node match { + case None => None + case Some(value) => Some(cloneNode(a, value, value.data)) + } + + override def defArrayAnnotatedNode(a: In, aNode: Ast.Annotated[AstNode[Ast.DefArray]]): ResultAnnotatedNode[Ast.DefArray] = + val data = aNode._2.data + for { + size <- matchExprNode(a, data.size) + eltType <- matchTypeName(a, data.eltType) + default <- exprNodeOpt(a, data.default) + } yield { + ( + (), + cloneAnnotatedNode( + a, aNode, + data.copy( + size = size._2, + eltType = eltType._2, + default = default._2, + format = cloneStringNodeOpt(a, data.format) + ) + ) + ) + } + + override def defComponentAnnotatedNode(a: In, aNode: Ast.Annotated[AstNode[Ast.DefComponent]]): ResultAnnotatedNode[Ast.DefComponent] = + val data = aNode._2.data + for (result <- transformList(a, data.members, matchComponentMember)) + yield { + val (a1, members1) = result + (a1, cloneAnnotatedNode(a, aNode, data.copy(members = members1.flatten))) + } + + override def defComponentInstanceAnnotatedNode( + a: In, + aNode: Ast.Annotated[AstNode[Ast.DefComponentInstance]] + ): ResultAnnotatedNode[Ast.DefComponentInstance] = + val data = aNode._2.data + for { + component <- Right(cloneQualIdentNode(a, data.component)) + baseId <- matchExprNode(a, data.baseId) + queueSize <- exprNodeOpt(a, data.queueSize) + stackSize <- exprNodeOpt(a, data.stackSize) + priority <- exprNodeOpt(a, data.priority) + cpu <- exprNodeOpt(a, data.cpu) + initSpecs <- transformList(a, data.initSpecs, specInitAnnotatedNode) + } yield { + ( + (), + cloneAnnotatedNode( + a, aNode, + data.copy( + component=component, + baseId=baseId._2, + implType=cloneStringNodeOpt(a, data.implType), + file=cloneStringNodeOpt(a, data.file), + queueSize=queueSize._2, + stackSize=stackSize._2, + priority=priority._2, + cpu=cpu._2, + initSpecs=initSpecs._2 + ) + ) + ) + } + + override def defInterfaceAnnotatedNode(a: In, aNode: Ast.Annotated[AstNode[Ast.DefInterface]]): ResultAnnotatedNode[Ast.DefInterface] = + val data = aNode._2.data + for (result <- transformList(a, data.members, matchInterfaceMember)) + yield { + val (a1, members1) = result + (a1, cloneAnnotatedNode(a, aNode, data.copy(members=members1))) + } + + override def defConstantAnnotatedNode( + a: In, + aNode: Ast.Annotated[AstNode[Ast.DefConstant]] + ): ResultAnnotatedNode[Ast.DefConstant] = + val data = aNode._2.data + for (value <- matchExprNode(a, data.value)) + yield { + ((), + cloneAnnotatedNode( + a, aNode, + data.copy(value = value._2))) + } + + def defEnumConstantAnnotatedNode( + a: In, + aNode: Ast.Annotated[AstNode[Ast.DefEnumConstant]] + ): ResultAnnotatedNode[Ast.DefEnumConstant] = + val data = aNode._2.data + for (value <- exprNodeOpt(a, data.value)) + yield { + ((), cloneAnnotatedNode(a, aNode, data.copy(value = value._2))) + } + + override def defEnumAnnotatedNode( + a: In, + aNode: Ast.Annotated[AstNode[Ast.DefEnum]] + ): ResultAnnotatedNode[Ast.DefEnum] = + val data = aNode._2.data + for { + typeName <- typeNameNodeOpt(a, data.typeName) + constants <- transformList(a, data.constants, defEnumConstantAnnotatedNode) + default <- exprNodeOpt(a, data.default) + } yield ((), cloneAnnotatedNode(a, aNode, data.copy( + typeName = typeName._2, + constants = constants._2, + default = default._2 + ))) + + def formalAnnotatatedParam( + a: In, + aNode: Ast.Annotated[AstNode[Ast.FormalParam]] + ) = + val data = aNode._2.data + for (ty <- matchTypeName(a, data.typeName)) + yield ((), cloneAnnotatedNode(a, aNode, data.copy(typeName = ty._2))) + + def formalParamList( + a: In, + aNode: Ast.FormalParamList + ) = transformList(a, aNode, formalAnnotatatedParam) + + override def defPortAnnotatedNode( + a: In, + aNode: Ast.Annotated[AstNode[Ast.DefPort]] + ): ResultAnnotatedNode[Ast.DefPort] = + val data = aNode._2.data + for { + params <- formalParamList(a, data.params) + returnType <- typeNameNodeOpt(a, data.returnType) + } yield ((), cloneAnnotatedNode(a, aNode, data.copy( + params = params._2, + returnType = returnType._2 + ))) + + override def defStateMachineAnnotatedNodeExternal( + in: In, + node: Ast.Annotated[AstNode[Ast.DefStateMachine]] + ): ResultAnnotatedNode[Ast.DefStateMachine] = + defaultAnnotatedNode(in, node) + + override def defStateMachineAnnotatedNodeInternal( + a: In, + aNode: Ast.Annotated[AstNode[Ast.DefStateMachine]], + members: List[Ast.StateMachineMember] + ): ResultAnnotatedNode[Ast.DefStateMachine] = + val data = aNode._2.data + for (result <- transformList(a, members, matchStateMachineMember)) + yield (result._1, cloneAnnotatedNode(a, aNode, data.copy(members = Some(result._2.flatten)))) + + override def defStateMachineAnnotatedNode( + a: In, + aNode: Ast.Annotated[AstNode[Ast.DefStateMachine]] + ): ResultAnnotatedNode[Ast.DefStateMachine] = + val data = aNode._2.data + data.members match { + case None => defStateMachineAnnotatedNodeExternal(a, aNode) + case Some(members) => defStateMachineAnnotatedNodeInternal(a, aNode, members) + } + + override def defActionAnnotatedNode( + a: In, + aNode: Ast.Annotated[AstNode[Ast.DefAction]] + ): ResultAnnotatedNode[Ast.DefAction] = + val data = aNode._2.data + for { + typeName <- typeNameNodeOpt(a, data.typeName) + } yield { + ((), cloneAnnotatedNode(a, aNode, data.copy(typeName = typeName._2))) + } + + def transitionExpr( + a: In, + node: AstNode[Ast.TransitionExpr] + ): ResultNode[Ast.TransitionExpr] = + for { + actions <- transformList(a, node.data.actions, defaultNode) + target <- defaultNode(a, node.data.target) + } yield ((), cloneNode(a, node, node.data.copy( + actions = actions._2, + target = target._2, + ))) + + override def defChoiceAnnotatedNode( + a: In, + aNode: Ast.Annotated[AstNode[Ast.DefChoice]] + ): ResultAnnotatedNode[Ast.DefChoice] = + val data = aNode._2.data + for { + guard <- defaultNode(a, data.guard) + ifTransition <- transitionExpr(a, data.ifTransition) + elseTransition <- transitionExpr(a, data.elseTransition) + } yield { + ((), cloneAnnotatedNode(a, aNode, data.copy( + guard = guard._2, + ifTransition = ifTransition._2, + elseTransition = elseTransition._2, + ))) + } + + override def defGuardAnnotatedNode( + a: In, + aNode: Ast.Annotated[AstNode[Ast.DefGuard]] + ): ResultAnnotatedNode[Ast.DefGuard] = + val data = aNode._2.data + for { + typeName <- typeNameNodeOpt(a, data.typeName) + } yield { + ((), cloneAnnotatedNode(a, aNode, data.copy(typeName = typeName._2))) + } + + override def defSignalAnnotatedNode( + a: In, + aNode: Ast.Annotated[AstNode[Ast.DefSignal]] + ): ResultAnnotatedNode[Ast.DefSignal] = + val data = aNode._2.data + for { + typeName <- typeNameNodeOpt(a, data.typeName) + } yield { + ((), cloneAnnotatedNode(a, aNode, data.copy(typeName = typeName._2))) + } + + override def defStateAnnotatedNode( + a: In, + aNode: Ast.Annotated[AstNode[Ast.DefState]] + ): ResultAnnotatedNode[Ast.DefState] = + val data = aNode._2.data + for (members <- transformList(a, data.members, matchStateMember)) + yield ((), cloneAnnotatedNode(a, aNode, data.copy(members = members._2.flatten))) + + override def specInitialTransitionAnnotatedNode( + a: In, + aNode: Ast.Annotated[AstNode[Ast.SpecInitialTransition]] + ): ResultAnnotatedNode[Ast.SpecInitialTransition] = + val data = aNode._2.data + for { + transition <- transitionExpr(a, data.transition) + } yield { + ((), cloneAnnotatedNode(a, aNode, data.copy(transition = transition._2))) + } + + override def specStateEntryAnnotatedNode( + a: In, + aNode: Ast.Annotated[AstNode[Ast.SpecStateEntry]] + ): ResultAnnotatedNode[Ast.SpecStateEntry] = + val data = aNode._2.data + for { + actions <- transformList(a, data.actions, defaultNode) + } yield { + ((), cloneAnnotatedNode(a, aNode, data.copy(actions = actions._2))) + } + + override def specStateExitAnnotatedNode( + a: In, + aNode: Ast.Annotated[AstNode[Ast.SpecStateExit]] + ): ResultAnnotatedNode[Ast.SpecStateExit] = + val data = aNode._2.data + for { + actions <- transformList(a, data.actions, defaultNode) + } yield { + ((), cloneAnnotatedNode(a, aNode, data.copy(actions = actions._2))) + } + + def transitionOrDo( + a: In, + transitionOrDo: Ast.TransitionOrDo + ) = + transitionOrDo match + case Ast.TransitionOrDo.Transition(transition) => + for (result <- transitionExpr(a, transition)) + yield (result._1, Ast.TransitionOrDo.Transition(result._2)) + case Ast.TransitionOrDo.Do(actions) => + for (result <- transformList(a, actions, defaultNode)) + yield (result._1, Ast.TransitionOrDo.Do(result._2)) + + + override def specStateTransitionAnnotatedNode( + a: In, + aNode: Ast.Annotated[AstNode[Ast.SpecStateTransition]] + ): ResultAnnotatedNode[Ast.SpecStateTransition] = + val data = aNode._2.data + for { + signal <- defaultNode(a, data.signal) + guard <- defaultNodeOpt(a, data.guard) + transitionOrDo <- transitionOrDo(a, data.transitionOrDo) + } yield { + ((), cloneAnnotatedNode(a, aNode, data.copy( + signal = signal._2, + guard = guard._2, + transitionOrDo = transitionOrDo._2 + ))) + } + + def structTypeMemberAnnotatedNode( + a: In, + aNode: Ast.Annotated[AstNode[Ast.StructTypeMember]] + ) = + val data = aNode._2.data + for { + size <- exprNodeOpt(a, data.size) + typeName <- matchTypeName(a, data.typeName) + } yield { + ((), cloneAnnotatedNode(a, aNode, data.copy( + size = size._2, + typeName = typeName._2, + format = cloneStringNodeOpt(a, data.format) + ))) + } + + override def defStructAnnotatedNode( + a: In, + aNode: Ast.Annotated[AstNode[Ast.DefStruct]] + ): ResultAnnotatedNode[Ast.DefStruct] = + val data = aNode._2.data + for { + members <- transformList(a, data.members, structTypeMemberAnnotatedNode) + default <- exprNodeOpt(a, data.default) + } yield { + ((), cloneAnnotatedNode(a, aNode, data.copy( + members = members._2, + default = default._2 + ))) + } + + override def defTopologyAnnotatedNode( + a: In, + aNode: Ast.Annotated[AstNode[Ast.DefTopology]] + ): ResultAnnotatedNode[Ast.DefTopology] = + val data = aNode._2.data + for { + members <- transformList(a, data.members, matchTopologyMember) + implements <- transformList(a, data.implements, (a, q) => Right(((), cloneQualIdentNode(a, q)))) + } yield { + ((), cloneAnnotatedNode(a, aNode, data.copy( + members = members._2.flatten, + implements = implements._2 + ))) + } + + override def defSystemAnnotatedNode( + a: In, + aNode: Ast.Annotated[AstNode[Ast.DefSystem]] + ): ResultAnnotatedNode[Ast.DefSystem] = + val data = aNode._2.data + for { + topology <- qualIdentNode(a, data.topology) + } yield { + ((), cloneAnnotatedNode(a, aNode, data.copy( + topology = topology._2 + ))) + } + + override def specCommandAnnotatedNode( + a: In, + aNode: Ast.Annotated[AstNode[Ast.SpecCommand]] + ): ResultAnnotatedNode[Ast.SpecCommand] = + val data = aNode._2.data + for { + params <- formalParamList(a, data.params) + opcode <- exprNodeOpt(a, data.opcode) + priority <- exprNodeOpt(a, data.priority) + queueFull <- defaultNodeOpt(a, data.queueFull) + } yield { + ((), cloneAnnotatedNode(a, aNode, data.copy( + params = params._2, + opcode = opcode._2, + priority = priority._2, + queueFull = queueFull._2, + ))) + } + + override def specInstanceAnnotatedNode( + a: In, + aNode: Ast.Annotated[AstNode[Ast.SpecInstance]] + ): ResultAnnotatedNode[Ast.SpecInstance] = + val data = aNode._2.data + for { + instance <- qualIdentNode(a, data.instance) + } yield { + ((), cloneAnnotatedNode(a, aNode, data.copy( + instance = instance._2, + ))) + } + + def portInstanceIdentifierNode( + a: In, + pii: AstNode[Ast.PortInstanceIdentifier] + ): ResultNode[Ast.PortInstanceIdentifier] = { + for { + interfaceInstance <- qualIdentNode(a, pii.data.interfaceInstance) + portName <- defaultNode(a, pii.data.portName) + } yield ((), cloneNode(a, pii, pii.data.copy( + interfaceInstance = interfaceInstance._2, + portName = portName._2, + ))) + } + + override def specConnectionGraphAnnotatedNode( + a: In, + aNode: Ast.Annotated[AstNode[Ast.SpecConnectionGraph]] + ): ResultAnnotatedNode[Ast.SpecConnectionGraph] = + val data = aNode._2.data + + def connection( + a: In, + connection: Ast.SpecConnectionGraph.Connection + ): Result[Ast.SpecConnectionGraph.Connection] = { + for { + fromPort <- portInstanceIdentifierNode(a, connection.fromPort) + fromIndex <- exprNodeOpt(a, connection.fromIndex) + toPort <- portInstanceIdentifierNode(a, connection.toPort) + toIndex <- exprNodeOpt(a, connection.toIndex) + } yield { + ((), connection.copy( + fromPort = fromPort._2, + fromIndex = fromIndex._2, + toPort = toPort._2, + toIndex = toIndex._2, + )) + } + } + + data match { + case data @ Ast.SpecConnectionGraph.Direct(_, connections) => + for { + connections <- transformList(a, connections, connection) + } yield ((), cloneAnnotatedNode(a, aNode, data.copy( + connections = connections._2 + ))) + case data @ Ast.SpecConnectionGraph.Pattern(_, source, targets) => + for { + source <- qualIdentNode(a, source) + targets <- transformList(a, targets, qualIdentNode) + } yield ((), cloneAnnotatedNode(a, aNode, data.copy( + source = source._2, + targets = targets._2 + ))) + } + + override def specContainerAnnotatedNode( + a: In, + aNode: Ast.Annotated[AstNode[Ast.SpecContainer]] + ): ResultAnnotatedNode[Ast.SpecContainer] = + val data = aNode._2.data + for { + id <- exprNodeOpt(a, data.id) + defaultPriority <- exprNodeOpt(a, data.defaultPriority) + } yield { + ((), cloneAnnotatedNode(a, aNode, data.copy( + id = id._2, + defaultPriority = defaultPriority._2, + ))) + } + + override def specEventAnnotatedNode( + a: In, + aNode: Ast.Annotated[AstNode[Ast.SpecEvent]] + ): ResultAnnotatedNode[Ast.SpecEvent] = + val data = aNode._2.data + for { + params <- formalParamList(a, data.params) + id <- exprNodeOpt(a, data.id) + format <- defaultNode(a, data.format) + throttle <- { + data.throttle match { + case None => Right(((), None)) + case Some(throttle) => + for { + count <- matchExprNode(a, throttle.data.count) + every <- exprNodeOpt(a, throttle.data.every) + } yield ((), Some(cloneNode( + a, throttle, throttle.data.copy( + every = every._2, + count = count._2, + ) + ))) + } + } + } yield { + ((), cloneAnnotatedNode(a, aNode, data.copy( + params = params._2, + id = id._2, + format = format._2, + throttle = throttle._2, + ))) + } + + override def specIncludeAnnotatedNode( + a: In, + aNode: Ast.Annotated[AstNode[Ast.SpecInclude]] + ): ResultAnnotatedNode[Ast.SpecInclude] = + val data = aNode._2.data + for { + file <- defaultNode(a, data.file) + } yield (file._1, cloneAnnotatedNode(a, aNode, data.copy( + file = file._2, + ))) + + override def specInitAnnotatedNode( + a: In, + aNode: Ast.Annotated[AstNode[Ast.SpecInit]] + ): ResultAnnotatedNode[Ast.SpecInit] = + val data = aNode._2.data + for (result <- matchExprNode(a, data.phase)) + yield { + val (a1, phase1) = result + (a1, cloneAnnotatedNode(a, aNode, data.copy(phase=phase1))) + } + + override def specInternalPortAnnotatedNode( + a: In, + aNode: Ast.Annotated[AstNode[Ast.SpecInternalPort]] + ): ResultAnnotatedNode[Ast.SpecInternalPort] = + val data = aNode._2.data + for { + params <- formalParamList(a, data.params) + priority <- exprNodeOpt(a, data.priority) + } yield ((), cloneAnnotatedNode(a, aNode, data.copy( + params = params._2, + priority = priority._2, + ))) + + override def specLocAnnotatedNode( + a: In, + aNode: Ast.Annotated[AstNode[Ast.SpecLoc]] + ): ResultAnnotatedNode[Ast.SpecLoc] = + val data = aNode._2.data + for { + symbol <- qualIdentNode(a, data.symbol) + file <- defaultNode(a, data.file) + } yield ((), cloneAnnotatedNode(a, aNode, data.copy( + symbol = symbol._2, + file = file._2, + ))) + + override def specParamAnnotatedNode( + a: In, + aNode: Ast.Annotated[AstNode[Ast.SpecParam]] + ): ResultAnnotatedNode[Ast.SpecParam] = + val data = aNode._2.data + for { + typeName <- matchTypeName(a, data.typeName) + default <- exprNodeOpt(a, data.default) + id <- exprNodeOpt(a, data.id) + setOpcode <- exprNodeOpt(a, data.setOpcode) + saveOpcode <- exprNodeOpt(a, data.saveOpcode) + } yield ((), cloneAnnotatedNode(a, aNode, data.copy( + typeName = typeName._2, + default = default._2, + id = id._2, + setOpcode = setOpcode._2, + saveOpcode = saveOpcode._2, + ))) + + def qualIdentNodeOpt( + a: In, + qi: Option[AstNode[Ast.QualIdent]] + ): Result[Option[AstNode[Ast.QualIdent]]] = { + qi match { + case None => Right(((), None)) + case Some(value) => + for (result <- qualIdentNode(a, value)) + yield (((), Some(result._2))) + } + } + + override def specPortInstanceAnnotatedNode( + a: In, + aNode: Ast.Annotated[AstNode[Ast.SpecPortInstance]] + ): ResultAnnotatedNode[Ast.SpecPortInstance] = + val data = aNode._2.data + data match { + case data @ Ast.SpecPortInstance.General(_, _, _, _, _, _) => + for { + size <- exprNodeOpt(a, data.size) + port <- qualIdentNodeOpt(a, data.port) + priority <- exprNodeOpt(a, data.priority) + queueFull <- defaultNodeOpt(a, data.queueFull) + } yield { + ((), cloneAnnotatedNode(a, aNode, data.copy( + size = size._2, + port = port._2, + priority = priority._2, + queueFull = queueFull._2 + ))) + } + case data @ Ast.SpecPortInstance.Special(_, _, _, _, _) => + for { + priority <- exprNodeOpt(a, data.priority) + queueFull <- defaultNodeOpt(a, data.queueFull) + } yield { + ((), cloneAnnotatedNode(a, aNode, data.copy( + priority = priority._2, + queueFull = queueFull._2 + ))) + } + } + + override def specPortMatchingAnnotatedNode( + a: In, + aNode: Ast.Annotated[AstNode[Ast.SpecPortMatching]] + ): ResultAnnotatedNode[Ast.SpecPortMatching] = + val data = aNode._2.data + for { + port1 <- defaultNode(a, data.port1) + port2 <- defaultNode(a, data.port2) + } yield (((), cloneAnnotatedNode(a, aNode, data.copy( + port1 = port1._2, + port2 = port2._2 + )))) + + override def specRecordAnnotatedNode( + a: In, + aNode: Ast.Annotated[AstNode[Ast.SpecRecord]] + ): ResultAnnotatedNode[Ast.SpecRecord] = + val data = aNode._2.data + for { + recordType <- matchTypeName(a, data.recordType) + id <- exprNodeOpt(a, data.id) + } yield (((), cloneAnnotatedNode(a, aNode, data.copy( + recordType = recordType._2, + id = id._2 + )))) + + override def specStateMachineInstanceAnnotatedNode( + a: In, + aNode: Ast.Annotated[AstNode[Ast.SpecStateMachineInstance]] + ): ResultAnnotatedNode[Ast.SpecStateMachineInstance] = + val data = aNode._2.data + for { + stateMachine <- qualIdentNode(a, data.stateMachine) + priority <- exprNodeOpt(a, data.priority) + } yield (((), cloneAnnotatedNode(a, aNode, data.copy( + stateMachine = stateMachine._2, + priority = priority._2 + )))) + + override def specTlmChannelAnnotatedNode( + a: In, + aNode: Ast.Annotated[AstNode[Ast.SpecTlmChannel]] + ): ResultAnnotatedNode[Ast.SpecTlmChannel] = + val data = aNode._2.data + def limit( + a: In, + limit: Ast.SpecTlmChannel.Limit + ): Result[Ast.SpecTlmChannel.Limit] = { + val (kind, value) = limit + for { + kind <- defaultNode(a, kind) + value <- matchExprNode(a, value) + } yield (((), (kind._2, value._2))) + } + + for { + typeName <- matchTypeName(a, data.typeName) + id <- exprNodeOpt(a, data.id) + low <- transformList(a, data.low, limit) + high <- transformList(a, data.high, limit) + } yield (((), cloneAnnotatedNode(a, aNode, data.copy( + typeName = typeName._2, + id = id._2, + format = cloneStringNodeOpt(a, data.format), + low = low._2, + high = high._2 + )))) + + override def specTlmPacketAnnotatedNode( + a: In, + aNode: Ast.Annotated[AstNode[Ast.SpecTlmPacket]] + ): ResultAnnotatedNode[Ast.SpecTlmPacket] = + val data = aNode._2.data + def tlmPacketMember( + a: In, + member: Ast.TlmPacketMember + ): Result[Ast.TlmPacketMember] = { + member match { + case Ast.TlmPacketMember.SpecInclude(node) => + for (file <- defaultNode(a, node.data.file)) + yield ((), Ast.TlmPacketMember.SpecInclude( + cloneNode(a, node, node.data.copy(file = file._2)) + )) + case Ast.TlmPacketMember.TlmChannelIdentifier(node) => + for { + componentInstance <- qualIdentNode(a, node.data.componentInstance) + channelName <- defaultNode(a, node.data.channelName) + } yield ((), Ast.TlmPacketMember.TlmChannelIdentifier( + cloneNode(a, node, node.data.copy( + componentInstance = componentInstance._2, + channelName = channelName._2 + )) + )) + } + } + + for { + id <- exprNodeOpt(a, data.id) + group <- matchExprNode(a, data.group) + members <- transformList(a, data.members, tlmPacketMember) + } yield (((), cloneAnnotatedNode(a, aNode, data.copy( + id = id._2, + group = group._2, + members = members._2, + )))) + + override def specTopPortAnnotatedNode( + a: In, + aNode: Ast.Annotated[AstNode[Ast.SpecTopPort]] + ): ResultAnnotatedNode[Ast.SpecTopPort] = + val data = aNode._2.data + for { + underlyingPort <- portInstanceIdentifierNode(a, data.underlyingPort) + } yield ((), cloneAnnotatedNode(a, aNode, data.copy( + underlyingPort = underlyingPort._2, + ))) + + override def specTlmPacketSetAnnotatedNode( + a: In, + aNode: Ast.Annotated[AstNode[Ast.SpecTlmPacketSet]] + ): ResultAnnotatedNode[Ast.SpecTlmPacketSet] = + val data = aNode._2.data + def tlmChannelIdentifier( + a: In, + node: AstNode[Ast.TlmChannelIdentifier] + ): ResultNode[Ast.TlmChannelIdentifier] = + val data = node.data + for { + componentInstance <- qualIdentNode(a, data.componentInstance) + channelName <- defaultNode(a, data.channelName) + } yield ((), cloneNode(a, node, data.copy( + componentInstance = componentInstance._2, + channelName = channelName._2 + ))) + + for { + members <- transformList(a, data.members, matchTlmPacketSetMember) + omitted <- transformList(a, data.omitted, tlmChannelIdentifier) + } yield ((), cloneAnnotatedNode(a, aNode, data.copy( + members = members._2.flatten, + omitted = omitted._2, + ))) + + override def specInterfaceImportAnnotatedNode( + a: In, + aNode: Ast.Annotated[AstNode[Ast.SpecImport]] + ): ResultAnnotatedNode[Ast.SpecImport] = + val data = aNode._2.data + for { + sym <- qualIdentNode(a, data.sym) + } yield ((), cloneAnnotatedNode(a, aNode, data.copy( + sym = sym._2, + ))) + + override def defModuleTemplateAnnotatedNode( + a: In, + aNode: Ast.Annotated[AstNode[Ast.DefModuleTemplate]] + ): ResultAnnotatedNode[Ast.DefModuleTemplate] = + val (_, node, _) = aNode + val data = node.data + + def templateParam( + a: In, + param: Ast.Annotated[AstNode[Ast.TemplateParam]] + ): ResultAnnotatedNode[Ast.TemplateParam] = { + val (_, node, _) = param + node.data match { + case data @ Ast.TemplateParam.Constant(_, tn) => + for (tn <- matchTypeName(a, tn)) + yield ((), cloneAnnotatedNode(a, param, data.copy(typeName = tn._2))) + case data @ Ast.TemplateParam.Type(_) => + Right(((), cloneAnnotatedNode(a, param, data))) + case data @ Ast.TemplateParam.Interface(_, interface) => + for (interface <- qualIdentNode(a, interface)) + yield ((), cloneAnnotatedNode(a, param, data.copy(interface = interface._2))) + } + } + + for { + // Validate no nested template + _ <- a.templateDefinition match { + case Some(parent) => Left(SemanticError.NestedTemplateDefinition( + Locations.get(aNode._2.id), + Locations.get(parent) + )) + case None => Right(()) + } + a <- Right(a.copy(templateDefinition = Some(node.id))) + params <- transformList(a, data.params, templateParam) + members <- transformList(a, data.members, matchModuleMember) + a <- Right(a.copy(templateDefinition = None)) + } + yield { + val (_, params1) = params + val (_, members1) = members + ((), cloneAnnotatedNode(a, aNode, data.copy( + params = params1, + members = members1.flatten + ))) + } + + override def defModuleAnnotatedNode( + a: Analysis, + aNode: Ast.Annotated[AstNode[Ast.DefModule]] + ) = { + val (_, node, _) = aNode + val data = node.data + for { result <- transformList(a, data.members, matchModuleMember) } + yield { + val (a1, members1) = result + (a1, cloneAnnotatedNode(a, aNode, data.copy(members = members1.flatten))) + } + } + + override def specTemplateExpandAnnotatedNode( + a: Analysis, + aNode: Ast.Annotated[AstNode[Ast.SpecTemplateExpand]] + ): ResultAnnotatedNode[Ast.SpecTemplateExpand] = { + val (pre, node, post) = aNode + val data = node.data + + (a.template, a.templateDefinition) match { + case (None, None) => + // Not inside a template: expand it + for { + // Look up the template def + tmpl <- a.getTemplateSymbol(data.template.id) + + // Clone the template body, recording the expansion node so that any + // nested expansion specifier is rejected and so that cloned nodes + // point back at the expansion site + members <- transformList( + a.copy(template = Some(node.id)), + tmpl.node._2.data.members, + matchModuleMember + ) + } yield { + // Paste the expanded template body into the expansion specifier + ((), (pre, AstNode.create(data.copy(members = Some(members._2.flatten)), node.id), post)) + } + case (template, templateDefinition) => + // The expansion specifier is nested inside a template body + Left(SemanticError.TemplateExpansionInTemplate( + Locations.get(node.id), + Locations.get(templateDefinition.orElse(template).get) + )) + } + } +} diff --git a/compiler/lib/src/main/scala/transform/ResolveSpecInclude.scala b/compiler/lib/src/main/scala/transform/ResolveSpecInclude.scala index c17da1a38f..285753283c 100644 --- a/compiler/lib/src/main/scala/transform/ResolveSpecInclude.scala +++ b/compiler/lib/src/main/scala/transform/ResolveSpecInclude.scala @@ -9,6 +9,7 @@ import fpp.compiler.util._ object ResolveSpecInclude extends AstStateTransformer with ComponentStateTransformer with ModuleStateTransformer + with ModuleTemplateStateTransformer with StateMachineStateTransformer with TopologyStateTransformer { @@ -25,6 +26,14 @@ object ResolveSpecInclude extends AstStateTransformer yield (result._1, Ast.TransUnit(result._2.flatten)) } + override def defStateMachineAnnotatedNode( + in: In, + node: Ast.Annotated[AstNode[Ast.DefStateMachine]] + ): ResultAnnotatedNode[Ast.DefStateMachine] = + node._2.data.members match { + case Some(members) => defStateMachineAnnotatedNodeInternal(in, node, members) + case None => defStateMachineAnnotatedNodeExternal(in, node) + } override def componentMember(a: Analysis, member: Ast.ComponentMember): Result[List[Ast.ComponentMember]] = { val (_, node, _) = member.node node match { @@ -51,6 +60,10 @@ object ResolveSpecInclude extends AstStateTransformer } } + override def moduleTemplateMember(a: Analysis, member: Ast.ModuleMember): Result[List[Ast.ModuleMember]] = { + moduleMember(a, member) + } + override def stateMachineMember(a: Analysis, member: Ast.StateMachineMember): Result[List[Ast.StateMachineMember]] = { val (_, node, _) = member.node node match { @@ -126,7 +139,6 @@ object ResolveSpecInclude extends AstStateTransformer private def checkForCycle(includingLoc: Location, includedPath: String): Result.Result[Unit] = { def checkLoc(locOpt: Option[Location], visitedPaths: List[String]): Result.Result[Unit] = locOpt match { - case None => Right(()) case Some(loc) => { val path = loc.file.toString val visitedPaths1 = path :: visitedPaths @@ -136,6 +148,7 @@ object ResolveSpecInclude extends AstStateTransformer } else checkLoc(loc.includingLoc, visitedPaths1) } + case _ => Right(()) } includingLoc.file match { case File.StdIn => Right(()) diff --git a/compiler/lib/src/main/scala/util/Error.scala b/compiler/lib/src/main/scala/util/Error.scala index c2c289e3e6..d1259b5191 100644 --- a/compiler/lib/src/main/scala/util/Error.scala +++ b/compiler/lib/src/main/scala/util/Error.scala @@ -270,6 +270,38 @@ sealed trait Error { System.err.println("conflicting port number is here:") System.err.println(p2Loc) printMatchingLoc(matchingLoc) + case SemanticError.MismatchedTemplateParameters( + expandLoc: Location, + defLoc: Location, + expandLength: Number, + defLength: Number, + ) => + Error.print (Some(expandLoc)) (s"expected $defLength templates parameter, got $expandLength") + System.err.println("template defined here:") + System.err.println(defLoc) + case SemanticError.InvalidTemplateParameter( + paramName: String, + expandLoc: Location, + defLoc: Location, + msg: String, + ) => + Error.print (Some(expandLoc)) (s"invalid template parameter value for $paramName: $msg") + System.err.println("template defined here:") + System.err.println(defLoc) + case SemanticError.NestedTemplateDefinition( + nestedLoc: Location, + parentLoc: Location + ) => + Error.print (Some(nestedLoc)) ("module template definitions cannot be nested") + System.err.println("parent template defined here:") + System.err.println(parentLoc) + case SemanticError.TemplateExpansionInTemplate( + expandLoc: Location, + templateLoc: Location + ) => + Error.print (Some(expandLoc)) ("template expansion specifiers cannot appear inside a module template") + System.err.println("enclosing template defined here:") + System.err.println(templateLoc) case SemanticError.MissingAsync(kind, loc) => Error.print (Some(loc)) (s"$kind component must have async input") case SemanticError.MissingConnection(loc, matchingLoc) => @@ -725,6 +757,30 @@ object SemanticError { p2Number: Int, matchingLoc: Location ) extends Error + /** Mismatched template parameter */ + final case class MismatchedTemplateParameters( + expandLoc: Location, + defLoc: Location, + expandLength: Number, + defLength: Number, + ) extends Error + /** Mismatched template parameter */ + final case class InvalidTemplateParameter( + paramName: String, + expandLoc: Location, + defLoc: Location, + msg: String, + ) extends Error + /** Nested template definition */ + final case class NestedTemplateDefinition( + nestedLoc: Location, + parentLoc: Location, + ) extends Error + /** Template expansion specifier nested inside a template */ + final case class TemplateExpansionInTemplate( + expandLoc: Location, + templateLoc: Location, + ) extends Error /** Missing async input */ final case class MissingAsync(kind: String, loc: Location) extends Error /** Missing connection */ diff --git a/compiler/lib/src/main/scala/util/Location.scala b/compiler/lib/src/main/scala/util/Location.scala index 1d38b86240..f8dd919d4d 100644 --- a/compiler/lib/src/main/scala/util/Location.scala +++ b/compiler/lib/src/main/scala/util/Location.scala @@ -6,31 +6,53 @@ import scala.util.parsing.input.Position final case class Location( file: File, /* The file */ pos: Position, /* The position */ - includingLoc: Option[Location] = None /* Location where this location is included */ + /* Location where this location is included */ + includingLoc: Option[Location] = None, + /* Location where this location is expanded */ + expandingLoc: Option[Location] = None, ) { override def toString = { - def showIncludes(locOpt: Option[Location], s: String): String = { - locOpt match { - case None => s - case Some(loc) => showIncludes( - loc.includingLoc, - s ++ s"\n included at ${loc.file}:${loc.pos}" - ) - } + def showIncludesExpands( + incLocOpt: Option[Location], + expandLocOpt: Option[Location], + s: String + ): String = { + val s1 = incLocOpt match { + case None => s + case Some(loc) => + showIncludesExpands( + loc.includingLoc, loc.expandingLoc, + s ++ s"\n included at ${loc.file}:${loc.pos}" + ) + + } + + val s2 = expandLocOpt match { + case None => s1 + case Some(loc) => + showIncludesExpands( + loc.includingLoc, loc.expandingLoc, + s1 ++ s"\n expanded at ${loc.file}:${loc.pos}" + ) + + } + + s2 } val s1 = pos match { case scala.util.parsing.input.NoPosition => s"${file}: end of input" case _ => s"${file}:${pos.toString}\n${pos.longString}" } - val s2 = showIncludes(includingLoc, "") + val s2 = showIncludesExpands(includingLoc, expandingLoc, "") s1 ++ s2 } /** Get the location of the associated translation unit */ - def tuLocation: Location = this.includingLoc match { - case None => this - case Some(loc) => loc.tuLocation + def tuLocation: Location = (includingLoc, expandingLoc) match { + case (None, None) => this + case (Some(loc), _) => loc.tuLocation + case (_, Some(loc)) => loc.tuLocation } /** Get the path of a file that is a neighbor to this location */ diff --git a/compiler/lib/src/test/input/templates/ok/syntax.fpp b/compiler/lib/src/test/input/templates/ok/syntax.fpp new file mode 100644 index 0000000000..4f5ef4c787 --- /dev/null +++ b/compiler/lib/src/test/input/templates/ok/syntax.fpp @@ -0,0 +1,11 @@ +module template T() { + include "../../../../../../tools/fpp-syntax/test/syntax.fpp" +} + +module M1 { + expand T() +} + +module M2 { + expand T() +} diff --git a/compiler/lib/src/test/scala/semantics/TemplatesSpec.scala b/compiler/lib/src/test/scala/semantics/TemplatesSpec.scala new file mode 100644 index 0000000000..7285775307 --- /dev/null +++ b/compiler/lib/src/test/scala/semantics/TemplatesSpec.scala @@ -0,0 +1,108 @@ +package fpp.compiler.test + +import fpp.compiler.util.{File => FppFile} +import java.io.File + +import fpp.compiler.analysis._ +import fpp.compiler.ast._ +import fpp.compiler.util._ +import fpp.compiler.transform._ +import fpp.compiler.codegen._ + +import fpp.compiler.syntax.{Lexer,Parser,TokenId} + +import org.scalatest.wordspec.AnyWordSpec + +class TemplatesSpec extends AnyWordSpec { + + "simple" should { + expandUniqueString(""" + module template T(constant c: string) { + constant f = c + } + + module M1 { + expand T(constant "a") + } + + module M2 { + expand T(constant "b") + } + + module M3 { + expand T(constant "c") + } + """) + } + + "OK" should { + def ok(file: File): Unit = { + val Right(tul) = Parser.parseFile(Parser.transUnit)(None)(FppFile.fromString( + file.toPath().toString() + )) + + checkExpandUnique(tul) + } + + val dir = new File("lib/src/test/input/templates/ok") + val files = dir.listFiles.filter(_.isFile) + .filter(_.getName.endsWith(".fpp")) + .foreach { file => s"expand $file" in ok(file) } + } + + private def checkNodeIsUnique(j: io.circe.Json, visited: Set[AstNode.Id]): Set[AstNode.Id] = { + val node = j.asObject.get.toMap + val data = node("data") + val id = node("id") + + val idNumber = id.asNumber.get.toInt.get + if visited.contains(idNumber) then { + Console.err.println(s"duplicate ast node id ${idNumber}") + Console.err.println(Locations.get(idNumber)) + Console.err.println(j) + Console.err.flush() + assert(false) + } + + visited + idNumber + } + + private def checkAllNodesUnique(tul: List[Ast.TransUnit]): Unit = { + val j = AstJsonEncoder.astToJson(tul) + // Console.err.println(j) + j.findAllByKey("AstNode").foldRight(Set())(checkNodeIsUnique) + } + + def expandUniqueString(s: String): Unit = { + val Right(tul) = Parser.parseString(Parser.transUnit)(s) + "expand" in { + checkExpandUnique(tul) + } + } + + def checkExpandUnique(tul: Ast.TransUnit): Unit = { + val a = Analysis() + val tul1 = for { + a_tul <- ResolveSpecInclude.transformList(a, List(tul), ResolveSpecInclude.transUnit) + a <- Right(a_tul._1) + tul <- Right(a_tul._2) + + a <- EnterSymbols.visitList(a, tul, EnterSymbols.transUnit) + a_tul <- ResolveTemplates.transUnit(a, tul) + + a <- Right(a_tul._1) + tul <- Right(a_tul._2) + } yield tul + + tul1 match { + case Right(tul) => checkAllNodesUnique(tul) + case Left(l) => { + Console.err.println(s"failed with error") + l.print + Console.err.flush() + assert(false) + } + } + } + +} diff --git a/compiler/lib/src/test/scala/syntax/Parser.scala b/compiler/lib/src/test/scala/syntax/Parser.scala index 1780e7446e..fe5bccb132 100644 --- a/compiler/lib/src/test/scala/syntax/Parser.scala +++ b/compiler/lib/src/test/scala/syntax/Parser.scala @@ -507,6 +507,21 @@ class ParserSpec extends AnyWordSpec { ) } + "spec template expand OK" should { + parseAllOK( + Parser.specTemplateExpand, + List( + "expand T", + "expand M.T()", + "expand M.T(constant 1)", + "expand M.T(constant 1, constant 2)", + "expand M.T(constant 1, constant 2, interface mod.$instance)", + "expand M.T(constant 1, constant 2, interface mod.$instance, type Type.Name)", + "expand M.T(constant 1, constant 2, constant {member=1}, constant [1, 2])", + ) + ) + } + "spec include OK" should { parseAllOK( Parser.specInclude, @@ -723,6 +738,33 @@ class ParserSpec extends AnyWordSpec { ) } + "template ok" should { + parseAllOK( + Parser.transUnit, + List( + "module template T {}", + """ + module template T( + constant c: U32, + type Ty, + interface i: Interface + ) { + } + """, + + """ + module template T( + constant c: U32, + type Ty, + interface i: Interface + ) { + array a = [3] Ty + } + """, + ) + ) + } + "trans unit OK" should { parseAllOK( Parser.transUnit, @@ -738,6 +780,7 @@ class ParserSpec extends AnyWordSpec { instance i: C base id 0x100 constant a = 0 module M {} + module template TT () {} port P struct S {} topology T {} @@ -745,6 +788,7 @@ class ParserSpec extends AnyWordSpec { type T array A = [10] U32 enum E { X, Y } + expand TT (constant 1, constant 2, constant 3, constant {member=[1, 2, 3]}, type TypeName, interface i) include "a.fpp" """, """ diff --git a/compiler/tools/fpp-check/test/constant/array_common_type_conversion.fpp b/compiler/tools/fpp-check/test/constant/array_common_type_conversion.fpp new file mode 100644 index 0000000000..065d057526 --- /dev/null +++ b/compiler/tools/fpp-check/test/constant/array_common_type_conversion.fpp @@ -0,0 +1,2 @@ +constant f1 = [1, 2] +constant f2 = [1, f1] diff --git a/compiler/tools/fpp-check/test/constant/array_common_type_conversion.ref.txt b/compiler/tools/fpp-check/test/constant/array_common_type_conversion.ref.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/compiler/tools/fpp-check/test/constant/tests.sh b/compiler/tools/fpp-check/test/constant/tests.sh index e0049f47b5..9e6ffcde18 100644 --- a/compiler/tools/fpp-check/test/constant/tests.sh +++ b/compiler/tools/fpp-check/test/constant/tests.sh @@ -1,4 +1,5 @@ tests=" +array_common_type_conversion array_index_negative array_index_out_of_bounds dictionary_error diff --git a/compiler/tools/fpp-check/test/template/basic_constant.fpp b/compiler/tools/fpp-check/test/template/basic_constant.fpp new file mode 100644 index 0000000000..ea5065436b --- /dev/null +++ b/compiler/tools/fpp-check/test/template/basic_constant.fpp @@ -0,0 +1,7 @@ +module template T(constant p: U32) { + constant cOut = p + 2 +} + +expand T(constant 10) + +constant cOut2 = cOut + 2 diff --git a/compiler/tools/fpp-check/test/template/basic_constant.ref.txt b/compiler/tools/fpp-check/test/template/basic_constant.ref.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/compiler/tools/fpp-check/test/template/composition_invalid.fpp b/compiler/tools/fpp-check/test/template/composition_invalid.fpp new file mode 100644 index 0000000000..a5c9e08cd7 --- /dev/null +++ b/compiler/tools/fpp-check/test/template/composition_invalid.fpp @@ -0,0 +1,11 @@ +module template T1( + constant p: U32 +) { + constant c = p +} + +module template T2( + constant p: U32 +) { + expand T1(constant p) +} diff --git a/compiler/tools/fpp-check/test/template/composition_invalid.ref.txt b/compiler/tools/fpp-check/test/template/composition_invalid.ref.txt new file mode 100644 index 0000000000..1ebb3e4975 --- /dev/null +++ b/compiler/tools/fpp-check/test/template/composition_invalid.ref.txt @@ -0,0 +1,9 @@ +fpp-check +[ local path prefix ]/compiler/tools/fpp-check/test/template/composition_invalid.fpp:10.5 + expand T1(constant p) + ^ +error: template expansion specifiers cannot appear inside a module template +enclosing template defined here: +[ local path prefix ]/compiler/tools/fpp-check/test/template/composition_invalid.fpp:7.1 +module template T2( +^ diff --git a/compiler/tools/fpp-check/test/template/constant_with_default.fpp b/compiler/tools/fpp-check/test/template/constant_with_default.fpp new file mode 100644 index 0000000000..7a7c764e6d --- /dev/null +++ b/compiler/tools/fpp-check/test/template/constant_with_default.fpp @@ -0,0 +1,21 @@ +type FwSizeStoreType = U16 +array StringArray = [3] string size 10 + +struct ParamTy { + field1: U32 + field2: string size 10 + field3: StringArray +} default { + field1 = 1, + field2 = "field 2" + field3 = [ "field3[0]", "field3[1]", "field3[2]" ] +} + +module template T( + constant p: ParamTy +) { + constant newField = p.field2 + constant newField2 = p.field3[1] +} + +expand T(constant {}) diff --git a/compiler/tools/fpp-check/test/template/constant_with_default.ref.txt b/compiler/tools/fpp-check/test/template/constant_with_default.ref.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/compiler/tools/fpp-check/test/template/duplicate_def.fpp b/compiler/tools/fpp-check/test/template/duplicate_def.fpp new file mode 100644 index 0000000000..b293ba45f1 --- /dev/null +++ b/compiler/tools/fpp-check/test/template/duplicate_def.fpp @@ -0,0 +1,8 @@ +module template T(constant p: U32) { + constant cOut1 = p + 2 + constant cOut2 = p + 2 +} + +expand T(constant 10) + +constant cOut2 = cOut1 + 2 diff --git a/compiler/tools/fpp-check/test/template/duplicate_def.ref.txt b/compiler/tools/fpp-check/test/template/duplicate_def.ref.txt new file mode 100644 index 0000000000..706059e3c8 --- /dev/null +++ b/compiler/tools/fpp-check/test/template/duplicate_def.ref.txt @@ -0,0 +1,10 @@ +fpp-check +[ local path prefix ]/compiler/tools/fpp-check/test/template/duplicate_def.fpp:3.5 + constant cOut2 = p + 2 + ^ + expanded at [ local path prefix ]/compiler/tools/fpp-check/test/template/duplicate_def.fpp:6.1 +error: redefinition of symbol cOut2 +previous definition is here: +[ local path prefix ]/compiler/tools/fpp-check/test/template/duplicate_def.fpp:8.1 +constant cOut2 = cOut1 + 2 +^ diff --git a/compiler/tools/fpp-check/test/template/interfaces.fpp b/compiler/tools/fpp-check/test/template/interfaces.fpp new file mode 100644 index 0000000000..682ca58e16 --- /dev/null +++ b/compiler/tools/fpp-check/test/template/interfaces.fpp @@ -0,0 +1,48 @@ +port P + +interface A_I { + async input port aIn: [2] P + output port bOut: [2] P +} + +interface B_I { + output port aOut: [2] P + async input port bIn: [2] P +} + +active component A { + import A_I +} + +active component B { + import B_I +} + +# Two instances of the same component +instance a1: A base id 10 queue size 10 stack size 1024 +instance a2: A base id 20 queue size 10 stack size 1024 + +instance b: B base id 100 queue size 10 stack size 1024 + +module template T(interface i: A_I, constant idx: U32) { + topology P { + instance i + instance b + + connections C { + i.bOut[idx] -> b.bIn[idx] + b.aOut[idx] -> i.aIn[idx] + } + } +} + +# Instantiate two topologies that point to separate connections of b +module M1 { + expand T(interface a1, constant 0) +} + +module M2 { + module M { + expand T(interface a2, constant 1) + } +} diff --git a/compiler/tools/fpp-check/test/template/interfaces.ref.txt b/compiler/tools/fpp-check/test/template/interfaces.ref.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/compiler/tools/fpp-check/test/template/interfaces_arg_bad_signature.fpp b/compiler/tools/fpp-check/test/template/interfaces_arg_bad_signature.fpp new file mode 100644 index 0000000000..d8e3dd44e3 --- /dev/null +++ b/compiler/tools/fpp-check/test/template/interfaces_arg_bad_signature.fpp @@ -0,0 +1,24 @@ +port P + +interface I { + sync input port pIn: P +} + +# A component that has a port named pIn, but with the wrong direction, +# so it does not conform to I +passive component C { + output port pIn: P +} + +instance c: C base id 0x100 + +module template T(interface i: I) { + topology Top { + instance i + } +} + +module M { + # c.pIn does not match I.pIn, so it does not implement I + expand T(interface c) +} diff --git a/compiler/tools/fpp-check/test/template/interfaces_arg_bad_signature.ref.txt b/compiler/tools/fpp-check/test/template/interfaces_arg_bad_signature.ref.txt new file mode 100644 index 0000000000..1eddc5a348 --- /dev/null +++ b/compiler/tools/fpp-check/test/template/interfaces_arg_bad_signature.ref.txt @@ -0,0 +1,13 @@ +fpp-check +[ local path prefix ]/compiler/tools/fpp-check/test/template/interfaces_arg_bad_signature.fpp:23.24 + expand T(interface c) + ^ +error: port interface not implemented +fpp-check +[ local path prefix ]/compiler/tools/fpp-check/test/template/interfaces_arg_bad_signature.fpp:10.5 + output port pIn: P + ^ +error: port instance does not match definition in interface: +[ local path prefix ]/compiler/tools/fpp-check/test/template/interfaces_arg_bad_signature.fpp:4.5 + sync input port pIn: P + ^ diff --git a/compiler/tools/fpp-check/test/template/interfaces_arg_conformance_ok.fpp b/compiler/tools/fpp-check/test/template/interfaces_arg_conformance_ok.fpp new file mode 100644 index 0000000000..4bcba077fc --- /dev/null +++ b/compiler/tools/fpp-check/test/template/interfaces_arg_conformance_ok.fpp @@ -0,0 +1,25 @@ +port P + +interface I { + sync input port pIn: P + output port pOut: P +} + +passive component C { + sync input port pIn: P + output port pOut: P + output port extra: P +} + +instance c: C base id 0x100 + +module template T(interface i: I) { + topology Top { + instance i + } +} + +module M { + # c provides a superset of I, so it conforms + expand T(interface c) +} diff --git a/compiler/tools/fpp-check/test/template/interfaces_arg_conformance_ok.ref.txt b/compiler/tools/fpp-check/test/template/interfaces_arg_conformance_ok.ref.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/compiler/tools/fpp-check/test/template/interfaces_arg_missing_port.fpp b/compiler/tools/fpp-check/test/template/interfaces_arg_missing_port.fpp new file mode 100644 index 0000000000..8e3ffd5f2b --- /dev/null +++ b/compiler/tools/fpp-check/test/template/interfaces_arg_missing_port.fpp @@ -0,0 +1,23 @@ +port P + +interface I { + sync input port pIn: P + output port pOut: P +} + +passive component C { + sync input port pIn: P +} + +instance c: C base id 0x100 + +module template T(interface i: I) { + topology Top { + instance i + } +} + +module M { + # c is missing pOut, so it does not implement I + expand T(interface c) +} diff --git a/compiler/tools/fpp-check/test/template/interfaces_arg_missing_port.ref.txt b/compiler/tools/fpp-check/test/template/interfaces_arg_missing_port.ref.txt new file mode 100644 index 0000000000..c6e6e92cea --- /dev/null +++ b/compiler/tools/fpp-check/test/template/interfaces_arg_missing_port.ref.txt @@ -0,0 +1,10 @@ +fpp-check +[ local path prefix ]/compiler/tools/fpp-check/test/template/interfaces_arg_missing_port.fpp:22.24 + expand T(interface c) + ^ +error: port interface not implemented +fpp-check +[ local path prefix ]/compiler/tools/fpp-check/test/template/interfaces_arg_missing_port.fpp:5.5 + output port pOut: P + ^ +error: port instance missing diff --git a/compiler/tools/fpp-check/test/template/interfaces_basic.fpp b/compiler/tools/fpp-check/test/template/interfaces_basic.fpp new file mode 100644 index 0000000000..fa5782a564 --- /dev/null +++ b/compiler/tools/fpp-check/test/template/interfaces_basic.fpp @@ -0,0 +1,15 @@ +interface I { + +} + +module template T(interface i: I) { + topology P { + instance i + } +} + +passive component C {} + +instance c: C base id 1 + +expand T(interface c) diff --git a/compiler/tools/fpp-check/test/template/interfaces_basic.ref.txt b/compiler/tools/fpp-check/test/template/interfaces_basic.ref.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/compiler/tools/fpp-check/test/template/interfaces_invalid_port_instance.fpp b/compiler/tools/fpp-check/test/template/interfaces_invalid_port_instance.fpp new file mode 100644 index 0000000000..e4ebe1808b --- /dev/null +++ b/compiler/tools/fpp-check/test/template/interfaces_invalid_port_instance.fpp @@ -0,0 +1,56 @@ +port P + +interface A_I { + async input port aIn: [2] P + output port bOut: [2] P +} + +interface B_I { + output port aOut: [2] P + async input port bIn: [2] P +} + +active component A1 { + import A_I + + async input port aIn2: [2] P +} + +active component A2 { + import A_I +} + +active component B { + import B_I +} + +# Two instances of the same component +instance a1: A1 base id 10 queue size 10 stack size 1024 +instance a2: A2 base id 20 queue size 10 stack size 1024 + +instance b: B base id 100 queue size 10 stack size 1024 + +module template T(interface i: A_I, constant idx: U32) { + topology P { + instance i + instance b + + connections C { + i.bOut[idx] -> b.bIn[idx] + + # Input port exists on `a1` and `a2` but not in `A_I` + b.aOut[idx] -> i.aIn2[idx] + } + } +} + +# Instantiate two topologies that point to separate connections of b +module M1 { + expand T(interface a1, constant 0) +} + +module M2 { + module M { + # expand T(interface a2, constant 1) + } +} diff --git a/compiler/tools/fpp-check/test/template/interfaces_invalid_port_instance.ref.txt b/compiler/tools/fpp-check/test/template/interfaces_invalid_port_instance.ref.txt new file mode 100644 index 0000000000..eee693b720 --- /dev/null +++ b/compiler/tools/fpp-check/test/template/interfaces_invalid_port_instance.ref.txt @@ -0,0 +1,6 @@ +fpp-check +[ local path prefix ]/compiler/tools/fpp-check/test/template/interfaces_invalid_port_instance.fpp:42.30 + b.aOut[idx] -> i.aIn2[idx] + ^ + expanded at [ local path prefix ]/compiler/tools/fpp-check/test/template/interfaces_invalid_port_instance.fpp:49.5 +error: aIn2 is not a port instance of interface A_I diff --git a/compiler/tools/fpp-check/test/template/interfaces_invalid_port_instance_name.fpp b/compiler/tools/fpp-check/test/template/interfaces_invalid_port_instance_name.fpp new file mode 100644 index 0000000000..4167f4c874 --- /dev/null +++ b/compiler/tools/fpp-check/test/template/interfaces_invalid_port_instance_name.fpp @@ -0,0 +1,59 @@ +port P + +interface A_I1 { + async input port aIn: [2] P + output port bOut: [2] P +} + +interface A_I2 { + async input port aIn2: [2] P + output port bOut2: [2] P +} + +interface B_I { + output port aOut: [2] P + async input port bIn: [2] P +} + +active component A1 { + import A_I1 + import A_I2 + + async input port aIn3: [2] P +} + +active component B { + import B_I +} + +# Two instances of the same component +instance a1: A1 base id 10 queue size 10 stack size 1024 +instance b: B base id 100 queue size 10 stack size 1024 + +module template T(interface i: A_I1, constant idx: U32) { + constant a = 0 + constant b = a + 1 + + topology Top { + # Import `a1` using the `A_I1` interface + instance i + + instance b + + connections C { + # Connect to a port inside `A_I1` + i.bOut[idx] -> b.bIn[idx] + + # Connect to a port inside `A_I2` + b.aOut[idx] -> i.aIn2[idx] + + # Connect to a port outside of `A_I1 | A_I2` + b.aOut[idx + 1] -> i.aIn3[idx] + } + } +} + +# Instantiate two topologies that point to separate connections of b +module M1 { + expand T(interface a1, constant 0) +} diff --git a/compiler/tools/fpp-check/test/template/interfaces_invalid_port_instance_name.ref.txt b/compiler/tools/fpp-check/test/template/interfaces_invalid_port_instance_name.ref.txt new file mode 100644 index 0000000000..f267e12465 --- /dev/null +++ b/compiler/tools/fpp-check/test/template/interfaces_invalid_port_instance_name.ref.txt @@ -0,0 +1,6 @@ +fpp-check +[ local path prefix ]/compiler/tools/fpp-check/test/template/interfaces_invalid_port_instance_name.fpp:48.30 + b.aOut[idx] -> i.aIn2[idx] + ^ + expanded at [ local path prefix ]/compiler/tools/fpp-check/test/template/interfaces_invalid_port_instance_name.fpp:58.5 +error: aIn2 is not a port instance of interface A_I1 diff --git a/compiler/tools/fpp-check/test/template/interfaces_invalid_port_instance_name_aliased.fpp b/compiler/tools/fpp-check/test/template/interfaces_invalid_port_instance_name_aliased.fpp new file mode 100644 index 0000000000..cb44bca55e --- /dev/null +++ b/compiler/tools/fpp-check/test/template/interfaces_invalid_port_instance_name_aliased.fpp @@ -0,0 +1,59 @@ +port P + +interface A_I1 { + async input port aIn: [2] P + output port bOut: [2] P +} + +interface A_I2 { + async input port aIn2: [2] P + output port bOut2: [2] P +} + +interface B_I { + output port aOut: [2] P + async input port bIn: [2] P +} + +active component A1 { + import A_I1 + import A_I2 + + async input port aIn3: [2] P +} + +active component B { + import B_I +} + +# Two instances of the same component +instance a1: A1 base id 10 queue size 10 stack size 1024 +instance b: B base id 100 queue size 10 stack size 1024 + +module template T(interface i1: A_I1, interface i2: A_I2, constant idx: U32) { + constant a = 0 + constant b = a + 1 + + topology Top { + # Import `a1` using the `A_I1` interface + instance i1 + + # Import `a2` using `A_I2` interface + instance i2 + + instance b + + connections C { + # Connect to a port inside `A_I1` + i1.bOut[idx] -> b.bIn[idx] + + # Connect to a port inside `A_I2` on the wrong alias + b.aOut[idx] -> i1.aIn2[idx] + } + } +} + +# Instantiate two topologies that point to separate connections of b +module M1 { + expand T(interface a1, interface a1, constant 0) +} diff --git a/compiler/tools/fpp-check/test/template/interfaces_invalid_port_instance_name_aliased.ref.txt b/compiler/tools/fpp-check/test/template/interfaces_invalid_port_instance_name_aliased.ref.txt new file mode 100644 index 0000000000..5b1945149f --- /dev/null +++ b/compiler/tools/fpp-check/test/template/interfaces_invalid_port_instance_name_aliased.ref.txt @@ -0,0 +1,6 @@ +fpp-check +[ local path prefix ]/compiler/tools/fpp-check/test/template/interfaces_invalid_port_instance_name_aliased.fpp:51.31 + b.aOut[idx] -> i1.aIn2[idx] + ^ + expanded at [ local path prefix ]/compiler/tools/fpp-check/test/template/interfaces_invalid_port_instance_name_aliased.fpp:58.5 +error: aIn2 is not a port instance of interface A_I1 diff --git a/compiler/tools/fpp-check/test/template/interfaces_valid_port_instance_name_aliased.fpp b/compiler/tools/fpp-check/test/template/interfaces_valid_port_instance_name_aliased.fpp new file mode 100644 index 0000000000..6601585040 --- /dev/null +++ b/compiler/tools/fpp-check/test/template/interfaces_valid_port_instance_name_aliased.fpp @@ -0,0 +1,59 @@ +port P + +interface A_I1 { + async input port aIn: [2] P + output port bOut: [2] P +} + +interface A_I2 { + async input port aIn2: [2] P + output port bOut2: [2] P +} + +interface B_I { + output port aOut: [2] P + async input port bIn: [2] P +} + +active component A1 { + import A_I1 + import A_I2 + + async input port aIn3: [2] P +} + +active component B { + import B_I +} + +# Two instances of the same component +instance a1: A1 base id 10 queue size 10 stack size 1024 +instance b: B base id 100 queue size 10 stack size 1024 + +module template T(interface i1: A_I1, interface i2: A_I2, constant idx: U32) { + constant a = 0 + constant b = a + 1 + + topology Top { + # Import `a1` using the `A_I1` interface + instance i1 + + # Import `a2` using `A_I2` interface + instance i2 + + instance b + + connections C { + # Connect to a port inside `A_I1` + i1.bOut[idx] -> b.bIn[idx] + + # Connect to a port inside `A_I2` + b.aOut[idx] -> i2.aIn2[idx] + } + } +} + +# Instantiate two topologies that point to separate connections of b +module M1 { + expand T(interface a1, interface a1, constant 0) +} diff --git a/compiler/tools/fpp-check/test/template/interfaces_valid_port_instance_name_aliased.ref.txt b/compiler/tools/fpp-check/test/template/interfaces_valid_port_instance_name_aliased.ref.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/compiler/tools/fpp-check/test/template/invalid_nested.fpp b/compiler/tools/fpp-check/test/template/invalid_nested.fpp new file mode 100644 index 0000000000..e52774a663 --- /dev/null +++ b/compiler/tools/fpp-check/test/template/invalid_nested.fpp @@ -0,0 +1,22 @@ +module template Outer(constant c1: U32) { + module template Inner(constant c2: U32) { + constant k1 = c2 * 2 + } + + module M1 { + expand Inner(constant 10) + constant k2 = k1 * 3 + } + + module M2 { + expand Inner(constant 20) + constant k2 = k1 * 3 + } + + expand Inner(constant 30) + + constant j1 = M1.k1 + M2.k2 + constant j2 = k1 + M1.k1 + M2.k1 +} + +expand Outer(constant 10) diff --git a/compiler/tools/fpp-check/test/template/invalid_nested.ref.txt b/compiler/tools/fpp-check/test/template/invalid_nested.ref.txt new file mode 100644 index 0000000000..ec320733a7 --- /dev/null +++ b/compiler/tools/fpp-check/test/template/invalid_nested.ref.txt @@ -0,0 +1,9 @@ +fpp-check +[ local path prefix ]/compiler/tools/fpp-check/test/template/invalid_nested.fpp:2.5 + module template Inner(constant c2: U32) { + ^ +error: module template definitions cannot be nested +parent template defined here: +[ local path prefix ]/compiler/tools/fpp-check/test/template/invalid_nested.fpp:1.1 +module template Outer(constant c1: U32) { +^ diff --git a/compiler/tools/fpp-check/test/template/run b/compiler/tools/fpp-check/test/template/run new file mode 100755 index 0000000000..92816cad0e --- /dev/null +++ b/compiler/tools/fpp-check/test/template/run @@ -0,0 +1,4 @@ +#!/bin/sh + +export LOCAL_PATH_PREFIX=`cd ../../../../..; echo $PWD` +../run-script diff --git a/compiler/tools/fpp-check/test/template/self_reference.fpp b/compiler/tools/fpp-check/test/template/self_reference.fpp new file mode 100644 index 0000000000..4d2b07dd25 --- /dev/null +++ b/compiler/tools/fpp-check/test/template/self_reference.fpp @@ -0,0 +1,7 @@ +module template T(constant c: U32) { + constant k1 = c + constant k2 = k1 + c + constant k3 = k2 + c +} + +expand T(constant 10) diff --git a/compiler/tools/fpp-check/test/template/self_reference.ref.txt b/compiler/tools/fpp-check/test/template/self_reference.ref.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/compiler/tools/fpp-check/test/template/struct_parameter_anon_array_promote.fpp b/compiler/tools/fpp-check/test/template/struct_parameter_anon_array_promote.fpp new file mode 100644 index 0000000000..e2d117aaf1 --- /dev/null +++ b/compiler/tools/fpp-check/test/template/struct_parameter_anon_array_promote.fpp @@ -0,0 +1,10 @@ +array A = [1] U32 +array B = [2] U32 + +struct S { a: A, b: B } + +module template M(constant b: B) { + constant c = [ 1, b ] +} + +expand M(constant [2, 3]) diff --git a/compiler/tools/fpp-check/test/template/struct_parameter_anon_array_promote.ref.txt b/compiler/tools/fpp-check/test/template/struct_parameter_anon_array_promote.ref.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/compiler/tools/fpp-check/test/template/struct_parameter_bad_arg.fpp b/compiler/tools/fpp-check/test/template/struct_parameter_bad_arg.fpp new file mode 100644 index 0000000000..a60269f2cb --- /dev/null +++ b/compiler/tools/fpp-check/test/template/struct_parameter_bad_arg.fpp @@ -0,0 +1,10 @@ +array A = [1] U32 +array B = [2] U32 + +struct S { a: A, b: B } + +module template M(constant s: S) { + constant c = [ s.a, s.b[0] ] +} + +expand M(constant { a = [1], b = [2, 3, 5] }) diff --git a/compiler/tools/fpp-check/test/template/struct_parameter_bad_arg.ref.txt b/compiler/tools/fpp-check/test/template/struct_parameter_bad_arg.ref.txt new file mode 100644 index 0000000000..4f8813d490 --- /dev/null +++ b/compiler/tools/fpp-check/test/template/struct_parameter_bad_arg.ref.txt @@ -0,0 +1,5 @@ +fpp-check +[ local path prefix ]/compiler/tools/fpp-check/test/template/struct_parameter_bad_arg.fpp:10.19 +expand M(constant { a = [1], b = [2, 3, 5] }) + ^ +error: cannot convert value { a = [ 1 ], b = [ 2, 3, 5 ] } to type struct S diff --git a/compiler/tools/fpp-check/test/template/struct_parameter_bad_concat.fpp b/compiler/tools/fpp-check/test/template/struct_parameter_bad_concat.fpp new file mode 100644 index 0000000000..d8facfacf6 --- /dev/null +++ b/compiler/tools/fpp-check/test/template/struct_parameter_bad_concat.fpp @@ -0,0 +1,10 @@ +array A = [1] U32 +array B = [2] U32 + +struct S { a: A, b: B } + +module template M(constant s: S) { + constant c = [ s.a, s.b ] +} + +expand M(constant { a = [1], b = [2, 3] }) diff --git a/compiler/tools/fpp-check/test/template/struct_parameter_bad_concat.ref.txt b/compiler/tools/fpp-check/test/template/struct_parameter_bad_concat.ref.txt new file mode 100644 index 0000000000..f434fa9c0f --- /dev/null +++ b/compiler/tools/fpp-check/test/template/struct_parameter_bad_concat.ref.txt @@ -0,0 +1,6 @@ +fpp-check +[ local path prefix ]/compiler/tools/fpp-check/test/template/struct_parameter_bad_concat.fpp:7.16 + constant c = [ s.a, s.b ] + ^ + expanded at [ local path prefix ]/compiler/tools/fpp-check/test/template/struct_parameter_bad_concat.fpp:10.1 +error: cannot compute common type of array value with elements: array A, array B diff --git a/compiler/tools/fpp-check/test/template/struct_parameter_concat_primitives_promote.fpp b/compiler/tools/fpp-check/test/template/struct_parameter_concat_primitives_promote.fpp new file mode 100644 index 0000000000..7589ddf671 --- /dev/null +++ b/compiler/tools/fpp-check/test/template/struct_parameter_concat_primitives_promote.fpp @@ -0,0 +1,13 @@ +array A = [1] U32 +array B = [2] U32 + +struct S { a: A, b: B } + +constant b1 = [2, 3] +constant c1 = [ 1, b1 ] + +module template M(constant b: B) { + constant c = [ 1, b ] +} + +expand M(constant [2, 3]) diff --git a/compiler/tools/fpp-check/test/template/struct_parameter_concat_primitives_promote.ref.txt b/compiler/tools/fpp-check/test/template/struct_parameter_concat_primitives_promote.ref.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/compiler/tools/fpp-check/test/template/struct_parameter_concat_primitives_promote.txt b/compiler/tools/fpp-check/test/template/struct_parameter_concat_primitives_promote.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/compiler/tools/fpp-check/test/template/struct_parameter_ok.fpp b/compiler/tools/fpp-check/test/template/struct_parameter_ok.fpp new file mode 100644 index 0000000000..bc5aeb0d0e --- /dev/null +++ b/compiler/tools/fpp-check/test/template/struct_parameter_ok.fpp @@ -0,0 +1,10 @@ +array A = [1] U32 +array B = [2] U32 + +struct S { a: A, b: B } + +module template M(constant s: S) { + constant c = [ s.a[0], s.b[1] ] +} + +expand M(constant { a = [1], b = [2, 3] }) diff --git a/compiler/tools/fpp-check/test/template/struct_parameter_ok.ref.txt b/compiler/tools/fpp-check/test/template/struct_parameter_ok.ref.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/compiler/tools/fpp-check/test/template/tests.sh b/compiler/tools/fpp-check/test/template/tests.sh new file mode 100644 index 0000000000..0173e997e1 --- /dev/null +++ b/compiler/tools/fpp-check/test/template/tests.sh @@ -0,0 +1,24 @@ +tests=" +basic_constant +composition_invalid +constant_with_default +duplicate_def +interfaces +interfaces_arg_bad_signature +interfaces_arg_conformance_ok +interfaces_arg_missing_port +interfaces_basic +interfaces_invalid_port_instance +interfaces_invalid_port_instance_name +interfaces_invalid_port_instance_name_aliased +interfaces_valid_port_instance_name_aliased +invalid_nested +self_reference +struct_parameter_anon_array_promote +struct_parameter_bad_arg +struct_parameter_bad_concat +struct_parameter_concat_primitives_promote +struct_parameter_ok +types +undef_constant_param_type +undef_interface_param_type" diff --git a/compiler/tools/fpp-check/test/template/types.fpp b/compiler/tools/fpp-check/test/template/types.fpp new file mode 100644 index 0000000000..9e4e4291dc --- /dev/null +++ b/compiler/tools/fpp-check/test/template/types.fpp @@ -0,0 +1,26 @@ +module Fw { + + port Time + port Tlm + +} + +module template T(type P) { + port POut(p: P) -> P + + passive component C { + telemetry port tlmOut + time get port timeGetOut + + @ Telemetry channel 0 + telemetry Channel0: P id 0x00 + } +} + +struct S { + member: U32 +} + +expand T(type S) + +instance c: C base id 10 diff --git a/compiler/tools/fpp-check/test/template/types.ref.txt b/compiler/tools/fpp-check/test/template/types.ref.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/compiler/tools/fpp-check/test/template/undef_constant_param_type.fpp b/compiler/tools/fpp-check/test/template/undef_constant_param_type.fpp new file mode 100644 index 0000000000..895e313e17 --- /dev/null +++ b/compiler/tools/fpp-check/test/template/undef_constant_param_type.fpp @@ -0,0 +1 @@ +module template T(constant c: S) {} diff --git a/compiler/tools/fpp-check/test/template/undef_constant_param_type.ref.txt b/compiler/tools/fpp-check/test/template/undef_constant_param_type.ref.txt new file mode 100644 index 0000000000..afb6668dbc --- /dev/null +++ b/compiler/tools/fpp-check/test/template/undef_constant_param_type.ref.txt @@ -0,0 +1,6 @@ +fpp-check +[ local path prefix ]/compiler/tools/fpp-check/test/template/undef_constant_param_type.fpp:1.31 +module template T(constant c: S) {} + ^ +error: symbol S is not defined +note: looking for a type here diff --git a/compiler/tools/fpp-check/test/template/undef_interface_param_type.fpp b/compiler/tools/fpp-check/test/template/undef_interface_param_type.fpp new file mode 100644 index 0000000000..3ad0b99e20 --- /dev/null +++ b/compiler/tools/fpp-check/test/template/undef_interface_param_type.fpp @@ -0,0 +1 @@ +module template T(interface i: S) {} diff --git a/compiler/tools/fpp-check/test/template/undef_interface_param_type.ref.txt b/compiler/tools/fpp-check/test/template/undef_interface_param_type.ref.txt new file mode 100644 index 0000000000..10147191b4 --- /dev/null +++ b/compiler/tools/fpp-check/test/template/undef_interface_param_type.ref.txt @@ -0,0 +1,6 @@ +fpp-check +[ local path prefix ]/compiler/tools/fpp-check/test/template/undef_interface_param_type.fpp:1.32 +module template T(interface i: S) {} + ^ +error: symbol S is not defined +note: looking for a interface here diff --git a/compiler/tools/fpp-check/test/template/update-ref b/compiler/tools/fpp-check/test/template/update-ref new file mode 100755 index 0000000000..0f11071e7a --- /dev/null +++ b/compiler/tools/fpp-check/test/template/update-ref @@ -0,0 +1,4 @@ +#!/bin/sh + +export LOCAL_PATH_PREFIX=`cd ../../../../..; echo $PWD` +../update-ref-script diff --git a/compiler/tools/fpp-depend/test/template.fpp b/compiler/tools/fpp-depend/test/template.fpp new file mode 100644 index 0000000000..1400c98a3b --- /dev/null +++ b/compiler/tools/fpp-depend/test/template.fpp @@ -0,0 +1,16 @@ +locate interface ParamIface at "template_param_iface.fpp" +locate constant bodyConst at "template_body_dep.fpp" +locate type ArgType at "template_arg_type.fpp" +locate instance argInst at "template_arg_instance.fpp" + +module template T(interface i: ParamIface, type ty) { + constant cOut = bodyConst + struct S { x: ty } + topology Top { + instance i + } +} + +module M { + expand T(interface argInst, type ArgType) +} diff --git a/compiler/tools/fpp-depend/test/template.ref.txt b/compiler/tools/fpp-depend/test/template.ref.txt new file mode 100644 index 0000000000..1efc1b8b2f --- /dev/null +++ b/compiler/tools/fpp-depend/test/template.ref.txt @@ -0,0 +1,4 @@ +[ local path prefix ]/compiler/tools/fpp-depend/test/template_arg_instance.fpp +[ local path prefix ]/compiler/tools/fpp-depend/test/template_arg_type.fpp +[ local path prefix ]/compiler/tools/fpp-depend/test/template_body_dep.fpp +[ local path prefix ]/compiler/tools/fpp-depend/test/template_param_iface.fpp diff --git a/compiler/tools/fpp-depend/test/template_arg_instance.fpp b/compiler/tools/fpp-depend/test/template_arg_instance.fpp new file mode 100644 index 0000000000..ad2b87a092 --- /dev/null +++ b/compiler/tools/fpp-depend/test/template_arg_instance.fpp @@ -0,0 +1,3 @@ +locate interface ParamIface at "template_param_iface.fpp" +passive component ArgComp { import ParamIface } +instance argInst: ArgComp base id 0x200 diff --git a/compiler/tools/fpp-depend/test/template_arg_type.fpp b/compiler/tools/fpp-depend/test/template_arg_type.fpp new file mode 100644 index 0000000000..e73177d6d1 --- /dev/null +++ b/compiler/tools/fpp-depend/test/template_arg_type.fpp @@ -0,0 +1 @@ +type ArgType = U32 diff --git a/compiler/tools/fpp-depend/test/template_body_dep.fpp b/compiler/tools/fpp-depend/test/template_body_dep.fpp new file mode 100644 index 0000000000..adb427d372 --- /dev/null +++ b/compiler/tools/fpp-depend/test/template_body_dep.fpp @@ -0,0 +1 @@ +constant bodyConst = 7 diff --git a/compiler/tools/fpp-depend/test/template_locate.fpp b/compiler/tools/fpp-depend/test/template_locate.fpp new file mode 100644 index 0000000000..2e13ffe002 --- /dev/null +++ b/compiler/tools/fpp-depend/test/template_locate.fpp @@ -0,0 +1,7 @@ +# A template expansion depends on the file that defines the template, even +# when the template definition is located in a separate file. +locate template T at "template_locate_def.fpp" + +module M { + expand T(constant 10) +} diff --git a/compiler/tools/fpp-depend/test/template_locate.ref.txt b/compiler/tools/fpp-depend/test/template_locate.ref.txt new file mode 100644 index 0000000000..6ec03f7b73 --- /dev/null +++ b/compiler/tools/fpp-depend/test/template_locate.ref.txt @@ -0,0 +1 @@ +[ local path prefix ]/compiler/tools/fpp-depend/test/template_locate_def.fpp diff --git a/compiler/tools/fpp-depend/test/template_locate_def.fpp b/compiler/tools/fpp-depend/test/template_locate_def.fpp new file mode 100644 index 0000000000..1cc32c111a --- /dev/null +++ b/compiler/tools/fpp-depend/test/template_locate_def.fpp @@ -0,0 +1,3 @@ +module template T(constant p: U32) { + constant cOut = p + 1 +} diff --git a/compiler/tools/fpp-depend/test/template_param_iface.fpp b/compiler/tools/fpp-depend/test/template_param_iface.fpp new file mode 100644 index 0000000000..a38bcb6d69 --- /dev/null +++ b/compiler/tools/fpp-depend/test/template_param_iface.fpp @@ -0,0 +1,2 @@ +port P +interface ParamIface { sync input port pIn: P } diff --git a/compiler/tools/fpp-depend/test/tests.sh b/compiler/tools/fpp-depend/test/tests.sh index 41589ef4c6..ae91bd5c8d 100644 --- a/compiler/tools/fpp-depend/test/tests.sh +++ b/compiler/tools/fpp-depend/test/tests.sh @@ -63,6 +63,8 @@ special_ports top_implements string_no_size_implied_framework_defs string_with_size_implied_framework_defs +template +template_locate topology_implied_type transitive_instance " diff --git a/compiler/tools/fpp-filenames/test/run b/compiler/tools/fpp-filenames/test/run index c7b36692b1..1307c553bd 100755 --- a/compiler/tools/fpp-filenames/test/run +++ b/compiler/tools/fpp-filenames/test/run @@ -80,6 +80,21 @@ ok_test_template_auto_helpers() run_test "-u -t -a" "ok" ok_test_template_auto_helpers } +template() +{ + run_test "" template +} + +template_template() +{ + run_test "-t" "template" template_template +} + +template_test() +{ + run_test "-u" "template" template_test +} + tests=" include include_template @@ -93,6 +108,9 @@ ok_test ok_test_auto_helpers ok_test_template ok_test_template_auto_helpers +template +template_template +template_test " run_suite $tests diff --git a/compiler/tools/fpp-filenames/test/template.fpp b/compiler/tools/fpp-filenames/test/template.fpp new file mode 100644 index 0000000000..0750549bb1 --- /dev/null +++ b/compiler/tools/fpp-filenames/test/template.fpp @@ -0,0 +1,16 @@ +port P + +passive component TopComp { + sync input port pIn: P +} + +module template T(constant n: U32) { + array TemplateArr = [n] U32 + passive component TemplateComp { + sync input port pIn: P + } +} + +module M { + expand T(constant 3) +} diff --git a/compiler/tools/fpp-filenames/test/template.ref.txt b/compiler/tools/fpp-filenames/test/template.ref.txt new file mode 100644 index 0000000000..49a2cfb37c --- /dev/null +++ b/compiler/tools/fpp-filenames/test/template.ref.txt @@ -0,0 +1,4 @@ +PPortAc.cpp +PPortAc.hpp +TopCompComponentAc.cpp +TopCompComponentAc.hpp diff --git a/compiler/tools/fpp-filenames/test/template_template.ref.txt b/compiler/tools/fpp-filenames/test/template_template.ref.txt new file mode 100644 index 0000000000..80e80acb6e --- /dev/null +++ b/compiler/tools/fpp-filenames/test/template_template.ref.txt @@ -0,0 +1,2 @@ +TopComp.template.cpp +TopComp.template.hpp diff --git a/compiler/tools/fpp-filenames/test/template_test.ref.txt b/compiler/tools/fpp-filenames/test/template_test.ref.txt new file mode 100644 index 0000000000..d34d8a2e09 --- /dev/null +++ b/compiler/tools/fpp-filenames/test/template_test.ref.txt @@ -0,0 +1,4 @@ +TopCompGTestBase.cpp +TopCompGTestBase.hpp +TopCompTesterBase.cpp +TopCompTesterBase.hpp diff --git a/compiler/tools/fpp-filenames/test/update-ref b/compiler/tools/fpp-filenames/test/update-ref index abb351a6bb..79d1dec834 100755 --- a/compiler/tools/fpp-filenames/test/update-ref +++ b/compiler/tools/fpp-filenames/test/update-ref @@ -37,3 +37,6 @@ update "-u" "ok" ok_test update "-u -a" "ok" ok_test_auto_helpers update "-u -t" "ok" ok_test_template update "-u -t -a" "ok" ok_test_template_auto_helpers +update "" template +update "-t" "template" template_template +update "-u" "template" template_test diff --git a/compiler/tools/fpp-format/test/include.ref.txt b/compiler/tools/fpp-format/test/include.ref.txt index 064e938b6a..0e7157fe72 100644 --- a/compiler/tools/fpp-format/test/include.ref.txt +++ b/compiler/tools/fpp-format/test/include.ref.txt @@ -86,15 +86,15 @@ module DefinitionsAndSpecifiers { assert @< Async product receive port @ Internal Component State machine definition - state machine S @< State machine definition + state machine SM @< State machine definition @ State machine instance 1 - state machine instance s1: S \ + state machine instance s1: SM \ priority 10 \ drop @< State machine instance 1 @ State machine instance 2 - state machine instance s2: S @< State machine instance 2 + state machine instance s2: SM @< State machine instance 2 @ State machine for outside definition state machine instance so: SO @< State machine for outside definition @@ -191,8 +191,12 @@ module DefinitionsAndSpecifiers { } @< Module definition - @ Included constant - constant x = 0 @< Included constant + module Constants { + + @ Included constant + constant x = 0 @< Included constant + + } @ Port definition port P( @@ -262,7 +266,7 @@ module DefinitionsAndSpecifiers { } @< Deployment topology @ Topology definition with one implements - topology T implements \ + topology T2 implements \ I { @@ -270,7 +274,7 @@ module DefinitionsAndSpecifiers { } @< Topology definition with one implements @ Topology definition with two implements - topology T implements \ + topology T3 implements \ I I { @@ -331,7 +335,7 @@ module Expressions { constant arraySubExp2 = a.b.c[1] @< Array Subscript @ Array Subscript with member selection - constant arraySubExp2 = a.b.c[1][2].s[12] @< Array Subscript + constant arraySubExp3 = a.b.c[1][2].s[12] @< Array Subscript @ Boolean literal constant booleanLiteralExp = true @< Boolean literal diff --git a/compiler/tools/fpp-format/test/no_include.ref.txt b/compiler/tools/fpp-format/test/no_include.ref.txt index edf5642e6a..d4ca39ee55 100644 --- a/compiler/tools/fpp-format/test/no_include.ref.txt +++ b/compiler/tools/fpp-format/test/no_include.ref.txt @@ -86,15 +86,15 @@ module DefinitionsAndSpecifiers { assert @< Async product receive port @ Internal Component State machine definition - state machine S @< State machine definition + state machine SM @< State machine definition @ State machine instance 1 - state machine instance s1: S \ + state machine instance s1: SM \ priority 10 \ drop @< State machine instance 1 @ State machine instance 2 - state machine instance s2: S @< State machine instance 2 + state machine instance s2: SM @< State machine instance 2 @ State machine for outside definition state machine instance so: SO @< State machine for outside definition @@ -191,8 +191,12 @@ module DefinitionsAndSpecifiers { } @< Module definition - @ Include specifier - include "constant.fppi" @< Include specifier + module Constants { + + @ Include specifier + include "constant.fppi" @< Include specifier + + } @ Port definition port P( @@ -259,7 +263,7 @@ module DefinitionsAndSpecifiers { } @< Deployment topology @ Topology definition with one implements - topology T implements \ + topology T2 implements \ I { @@ -267,7 +271,7 @@ module DefinitionsAndSpecifiers { } @< Topology definition with one implements @ Topology definition with two implements - topology T implements \ + topology T3 implements \ I I { @@ -328,7 +332,7 @@ module Expressions { constant arraySubExp2 = a.b.c[1] @< Array Subscript @ Array Subscript with member selection - constant arraySubExp2 = a.b.c[1][2].s[12] @< Array Subscript + constant arraySubExp3 = a.b.c[1][2].s[12] @< Array Subscript @ Boolean literal constant booleanLiteralExp = true @< Boolean literal diff --git a/compiler/tools/fpp-format/test/run b/compiler/tools/fpp-format/test/run index 19a34bf373..07e7f72365 100755 --- a/compiler/tools/fpp-format/test/run +++ b/compiler/tools/fpp-format/test/run @@ -69,4 +69,16 @@ dictionary_specifier() $fpp_syntax dictionary_specifier.out.txt } +# Note: the expanded output uses the `expand ... { ... }` form, which is not +# (yet) valid FPP surface syntax, so we do not round-trip it through fpp-syntax. +template_expand() +{ + run_test '-t' template_expand +} + +template_include() +{ + run_test '-t' template_include +} + run_suite $tests diff --git a/compiler/tools/fpp-format/test/template.fpp b/compiler/tools/fpp-format/test/template.fpp new file mode 100644 index 0000000000..7665279e1c --- /dev/null +++ b/compiler/tools/fpp-format/test/template.fpp @@ -0,0 +1,19 @@ +interface Iface { + +} + +@ Template Definition +module template T ( + constant c: U32, @< A constant parameter + type Ty, @< A type parameter + interface inst: Iface @< An interface parameter +) { + port P( + a: Ty + ) -> Ty + + constant d = c + 2 +} + +@ Without -t, the expansion specifier is formatted but not expanded +expand T(constant 10, type U32, interface inst1) diff --git a/compiler/tools/fpp-format/test/template.ref.txt b/compiler/tools/fpp-format/test/template.ref.txt new file mode 100644 index 0000000000..2c4a570c55 --- /dev/null +++ b/compiler/tools/fpp-format/test/template.ref.txt @@ -0,0 +1,25 @@ +interface Iface { + + +} + +@ Template Definition +module template T( + constant c: U32 @< A constant parameter + type Ty @< A type parameter + interface inst: Iface @< An interface parameter + ) { + port P( + a: Ty + ) -> Ty + + constant d = c + 2 + +} + +@ Without -t, the expansion specifier is formatted but not expanded +expand T( + constant 10 + type U32 + interface inst1 + ) diff --git a/compiler/tools/fpp-format/test/template_expand.fpp b/compiler/tools/fpp-format/test/template_expand.fpp new file mode 100644 index 0000000000..583d334b26 --- /dev/null +++ b/compiler/tools/fpp-format/test/template_expand.fpp @@ -0,0 +1,33 @@ +@ An interface for the template's interface parameter +interface Iface { + +} + +@ Template definition with all three kinds of parameter +module template T( + constant c: U32, @< A constant parameter + type Ty, @< A type parameter + interface inst: Iface @< An interface parameter +) { + @ A port that uses the type parameter + port P( + a: Ty + ) -> Ty + + @ A constant derived from the constant parameter + constant d = c + 2 +} + +@ Expand the template with concrete arguments +expand T(constant 10, type U32, interface inst1) + +@ A template with an empty body +module template Empty( + constant c: U32 @< A constant parameter +) { + +} + +@ Expanding an empty-bodied template produces an empty brace block +expand Empty(constant 5) +@< with the specifier annotations attached to it diff --git a/compiler/tools/fpp-format/test/template_expand.ref.txt b/compiler/tools/fpp-format/test/template_expand.ref.txt new file mode 100644 index 0000000000..cd729ea31c --- /dev/null +++ b/compiler/tools/fpp-format/test/template_expand.ref.txt @@ -0,0 +1,51 @@ +@ An interface for the template's interface parameter +interface Iface { + + +} + +@ Template definition with all three kinds of parameter +module template T( + constant c: U32 @< A constant parameter + type Ty @< A type parameter + interface inst: Iface @< An interface parameter + ) { + @ A port that uses the type parameter + port P( + a: Ty + ) -> Ty + + @ A constant derived from the constant parameter + constant d = c + 2 + +} + +@ Expand the template with concrete arguments +expand T( + constant 10 + type U32 + interface inst1 + ) { + @ A port that uses the type parameter + port P( + a: Ty + ) -> Ty + + @ A constant derived from the constant parameter + constant d = c + 2 + +} + +@ A template with an empty body +module template Empty( + constant c: U32 @< A constant parameter + ) { + +} + +@ Expanding an empty-bodied template produces an empty brace block +expand Empty( + constant 5 + ) { + +} @< with the specifier annotations attached to it diff --git a/compiler/tools/fpp-format/test/template_include.fpp b/compiler/tools/fpp-format/test/template_include.fpp new file mode 100644 index 0000000000..3fadd61507 --- /dev/null +++ b/compiler/tools/fpp-format/test/template_include.fpp @@ -0,0 +1,5 @@ +include "template_include.fppi" + +@ Expanding a template defined in an included file requires -t to also +@ resolve the include so the template definition can be found +expand Included(constant 42) diff --git a/compiler/tools/fpp-format/test/template_include.fppi b/compiler/tools/fpp-format/test/template_include.fppi new file mode 100644 index 0000000000..ed216a2404 --- /dev/null +++ b/compiler/tools/fpp-format/test/template_include.fppi @@ -0,0 +1,7 @@ +@ A module template defined in an included file +module template Included( + constant n: U32 @< A constant parameter +) { + @ A constant defined by the included template + constant m = n + 1 +} diff --git a/compiler/tools/fpp-format/test/template_include.ref.txt b/compiler/tools/fpp-format/test/template_include.ref.txt new file mode 100644 index 0000000000..c71b407259 --- /dev/null +++ b/compiler/tools/fpp-format/test/template_include.ref.txt @@ -0,0 +1,18 @@ +@ A module template defined in an included file +module template Included( + constant n: U32 @< A constant parameter + ) { + @ A constant defined by the included template + constant m = n + 1 + +} + +@ Expanding a template defined in an included file requires -t to also +@ resolve the include so the template definition can be found +expand Included( + constant 42 + ) { + @ A constant defined by the included template + constant m = n + 1 + +} diff --git a/compiler/tools/fpp-format/test/tests.sh b/compiler/tools/fpp-format/test/tests.sh index 93c165a415..20ccfd2443 100644 --- a/compiler/tools/fpp-format/test/tests.sh +++ b/compiler/tools/fpp-format/test/tests.sh @@ -7,6 +7,9 @@ interface kwd_names no_include state_machine +template +template_expand +template_include topology dictionary_specifier " diff --git a/compiler/tools/fpp-format/test/update-ref b/compiler/tools/fpp-format/test/update-ref index a9f64f56b8..32063e9e61 100755 --- a/compiler/tools/fpp-format/test/update-ref +++ b/compiler/tools/fpp-format/test/update-ref @@ -65,6 +65,16 @@ dictionary_specifier() update '' ../../fpp-syntax/test/dictionary-specifier dictionary_specifier } +template_expand() +{ + update '-t' template_expand +} + +template_include() +{ + update '-t' template_include +} + for t in $tests do echo "updating ref output for $t" diff --git a/compiler/tools/fpp-locate-defs/test/defs.ref.txt b/compiler/tools/fpp-locate-defs/test/defs.ref.txt index 5ebd11f284..f150be0823 100644 --- a/compiler/tools/fpp-locate-defs/test/defs.ref.txt +++ b/compiler/tools/fpp-locate-defs/test/defs.ref.txt @@ -23,6 +23,8 @@ locate state machine M.SM at "defs/defs-2.fpp" locate state machine SM at "defs/defs-1.fpp" locate system M.S at "defs/defs-2.fpp" locate system S at "defs/defs-1.fpp" +locate template M.Tmpl at "defs/defs-2.fpp" +locate template Tmpl at "defs/defs-1.fpp" locate type A at "defs/defs-1.fpp" locate type Alias at "defs/defs-1.fpp" locate type C.A at "defs/defs-1.fpp" diff --git a/compiler/tools/fpp-locate-defs/test/defs/defs-1.fpp b/compiler/tools/fpp-locate-defs/test/defs/defs-1.fpp index d58128b220..4d70d1390f 100644 --- a/compiler/tools/fpp-locate-defs/test/defs/defs-1.fpp +++ b/compiler/tools/fpp-locate-defs/test/defs/defs-1.fpp @@ -42,8 +42,12 @@ passive component C { instance c: C base id 0x100 -topology T { +topology T { } +module template Tmpl(constant n: U32) { + array TArr = [n] U32 +} + system S: T diff --git a/compiler/tools/fpp-locate-defs/test/defs/defs-2.fpp b/compiler/tools/fpp-locate-defs/test/defs/defs-2.fpp index 2bd385541b..e768b3cdf5 100644 --- a/compiler/tools/fpp-locate-defs/test/defs/defs-2.fpp +++ b/compiler/tools/fpp-locate-defs/test/defs/defs-2.fpp @@ -41,6 +41,10 @@ module M { } + module template Tmpl(constant n: U32) { + array TArr = [n] U32 + } + system S: T } diff --git a/compiler/tools/fpp-locate-defs/test/defs_dir.ref.txt b/compiler/tools/fpp-locate-defs/test/defs_dir.ref.txt index 9c6b363c61..eca14f4a2e 100644 --- a/compiler/tools/fpp-locate-defs/test/defs_dir.ref.txt +++ b/compiler/tools/fpp-locate-defs/test/defs_dir.ref.txt @@ -23,6 +23,8 @@ locate state machine M.SM at "defs-2.fpp" locate state machine SM at "defs-1.fpp" locate system M.S at "defs-2.fpp" locate system S at "defs-1.fpp" +locate template M.Tmpl at "defs-2.fpp" +locate template Tmpl at "defs-1.fpp" locate type A at "defs-1.fpp" locate type Alias at "defs-1.fpp" locate type C.A at "defs-1.fpp" diff --git a/compiler/tools/fpp-locate-defs/test/template_expand.fpp b/compiler/tools/fpp-locate-defs/test/template_expand.fpp new file mode 100644 index 0000000000..097b33a932 --- /dev/null +++ b/compiler/tools/fpp-locate-defs/test/template_expand.fpp @@ -0,0 +1,18 @@ +# fpp-locate-defs expands templates so that the definitions generated by an +# expansion are located. Here module Expanded expands template Tmpl, producing +# Expanded.GenComp and Expanded.GenArr; both must appear in the output so that +# other files can locate these expansion-generated symbols. +port P + +module Lib { + module template Tmpl(constant n: U32) { + passive component GenComp { + sync input port pIn: P + } + array GenArr = [n] U32 + } +} + +module Expanded { + expand Lib.Tmpl(constant 3) +} diff --git a/compiler/tools/fpp-locate-defs/test/template_expand.ref.txt b/compiler/tools/fpp-locate-defs/test/template_expand.ref.txt new file mode 100644 index 0000000000..58067d6159 --- /dev/null +++ b/compiler/tools/fpp-locate-defs/test/template_expand.ref.txt @@ -0,0 +1,4 @@ +locate component Expanded.GenComp at "template_expand.fpp" +locate port P at "template_expand.fpp" +locate template Lib.Tmpl at "template_expand.fpp" +locate type Expanded.GenArr at "template_expand.fpp" diff --git a/compiler/tools/fpp-locate-defs/test/tests.sh b/compiler/tools/fpp-locate-defs/test/tests.sh index a2423bb00d..bdd98c336b 100644 --- a/compiler/tools/fpp-locate-defs/test/tests.sh +++ b/compiler/tools/fpp-locate-defs/test/tests.sh @@ -3,4 +3,5 @@ defs defs_dir include stdin +template_expand " diff --git a/compiler/tools/fpp-syntax/test/run b/compiler/tools/fpp-syntax/test/run index b9185dc67d..164fc0a9d9 100755 --- a/compiler/tools/fpp-syntax/test/run +++ b/compiler/tools/fpp-syntax/test/run @@ -139,6 +139,11 @@ syntax_stdin() diff -u syntax-stdin.ref.txt syntax-stdin.out.txt > syntax-stdin.diff.txt 2>&1 } +template() +{ + run_test -ita template +} + topology_ports() { run_test -ia topology-ports @@ -184,6 +189,7 @@ syntax_ast syntax_include_ast syntax_kwd_names syntax_stdin +template topology_ports two_input_files dictionary_specifier diff --git a/compiler/tools/fpp-syntax/test/syntax-ast.ref.txt b/compiler/tools/fpp-syntax/test/syntax-ast.ref.txt index eafd0cb6c3..c165bffda2 100644 --- a/compiler/tools/fpp-syntax/test/syntax-ast.ref.txt +++ b/compiler/tools/fpp-syntax/test/syntax-ast.ref.txt @@ -142,19 +142,19 @@ def module @< Async product receive port @ Internal Component State machine definition def state machine - ident S + ident SM @< State machine definition @ State machine instance 1 spec state machine instance ident s1 - state machine qual ident S + state machine qual ident SM priority literal int 10 queue full drop @< State machine instance 1 @ State machine instance 2 spec state machine instance ident s2 - state machine qual ident S + state machine qual ident SM @< State machine instance 2 @ State machine for outside definition spec state machine instance @@ -304,10 +304,12 @@ def module ident x literal int 0 @< Module definition - @ Include specifier - spec include - file constant.fppi - @< Include specifier + def module + ident Constants + @ Include specifier + spec include + file constant.fppi + @< Include specifier @ Port definition def port ident P @@ -406,13 +408,13 @@ def module @< Deployment topology @ Topology definition with one implements def topology - ident T + ident T2 implements qual ident I @< Topology definition with one implements @ Topology definition with two implements def topology - ident T + ident T3 implements qual ident I qual ident I @@ -530,7 +532,7 @@ def module @< Array Subscript @ Array Subscript with member selection def constant - ident arraySubExp2 + ident arraySubExp3 expr array subscript expr dot expr array subscript diff --git a/compiler/tools/fpp-syntax/test/syntax-include-ast.ref.txt b/compiler/tools/fpp-syntax/test/syntax-include-ast.ref.txt index 29c54865b5..7b54a7304f 100644 --- a/compiler/tools/fpp-syntax/test/syntax-include-ast.ref.txt +++ b/compiler/tools/fpp-syntax/test/syntax-include-ast.ref.txt @@ -142,19 +142,19 @@ def module @< Async product receive port @ Internal Component State machine definition def state machine - ident S + ident SM @< State machine definition @ State machine instance 1 spec state machine instance ident s1 - state machine qual ident S + state machine qual ident SM priority literal int 10 queue full drop @< State machine instance 1 @ State machine instance 2 spec state machine instance ident s2 - state machine qual ident S + state machine qual ident SM @< State machine instance 2 @ State machine for outside definition spec state machine instance @@ -304,11 +304,13 @@ def module ident x literal int 0 @< Module definition - @ Included constant - def constant - ident x - literal int 0 - @< Included constant + def module + ident Constants + @ Included constant + def constant + ident x + literal int 0 + @< Included constant @ Port definition def port ident P @@ -413,13 +415,13 @@ def module @< Deployment topology @ Topology definition with one implements def topology - ident T + ident T2 implements qual ident I @< Topology definition with one implements @ Topology definition with two implements def topology - ident T + ident T3 implements qual ident I qual ident I @@ -537,7 +539,7 @@ def module @< Array Subscript @ Array Subscript with member selection def constant - ident arraySubExp2 + ident arraySubExp3 expr array subscript expr dot expr array subscript diff --git a/compiler/tools/fpp-syntax/test/syntax-stdin.ref.txt b/compiler/tools/fpp-syntax/test/syntax-stdin.ref.txt index 29c54865b5..7b54a7304f 100644 --- a/compiler/tools/fpp-syntax/test/syntax-stdin.ref.txt +++ b/compiler/tools/fpp-syntax/test/syntax-stdin.ref.txt @@ -142,19 +142,19 @@ def module @< Async product receive port @ Internal Component State machine definition def state machine - ident S + ident SM @< State machine definition @ State machine instance 1 spec state machine instance ident s1 - state machine qual ident S + state machine qual ident SM priority literal int 10 queue full drop @< State machine instance 1 @ State machine instance 2 spec state machine instance ident s2 - state machine qual ident S + state machine qual ident SM @< State machine instance 2 @ State machine for outside definition spec state machine instance @@ -304,11 +304,13 @@ def module ident x literal int 0 @< Module definition - @ Included constant - def constant - ident x - literal int 0 - @< Included constant + def module + ident Constants + @ Included constant + def constant + ident x + literal int 0 + @< Included constant @ Port definition def port ident P @@ -413,13 +415,13 @@ def module @< Deployment topology @ Topology definition with one implements def topology - ident T + ident T2 implements qual ident I @< Topology definition with one implements @ Topology definition with two implements def topology - ident T + ident T3 implements qual ident I qual ident I @@ -537,7 +539,7 @@ def module @< Array Subscript @ Array Subscript with member selection def constant - ident arraySubExp2 + ident arraySubExp3 expr array subscript expr dot expr array subscript diff --git a/compiler/tools/fpp-syntax/test/syntax.fpp b/compiler/tools/fpp-syntax/test/syntax.fpp index 694cd0e751..3b0509ed7b 100644 --- a/compiler/tools/fpp-syntax/test/syntax.fpp +++ b/compiler/tools/fpp-syntax/test/syntax.fpp @@ -73,15 +73,15 @@ module DefinitionsAndSpecifiers { @< Async product receive port @ Internal Component State machine definition - state machine S + state machine SM @< State machine definition @ State machine instance 1 - state machine instance s1: S priority 10 drop + state machine instance s1: SM priority 10 drop @< State machine instance 1 @ State machine instance 2 - state machine instance s2: S + state machine instance s2: SM @< State machine instance 2 @ State machine for outside definition @@ -156,9 +156,11 @@ module DefinitionsAndSpecifiers { } @< Module definition - @ Include specifier - include "constant.fppi" - @< Include specifier + module Constants { + @ Include specifier + include "constant.fppi" + @< Include specifier + } @ Port definition port P(a: U32, b: F32) -> U32 @@ -228,11 +230,11 @@ module DefinitionsAndSpecifiers { @< Deployment topology @ Topology definition with one implements - topology T implements I {} + topology T2 implements I {} @< Topology definition with one implements @ Topology definition with two implements - topology T implements I, I {} + topology T3 implements I, I {} @< Topology definition with two implements @ System definition @@ -286,8 +288,8 @@ module Expressions { @< Array Subscript @ Array Subscript with member selection - constant arraySubExp2 = a.b.c[1][2].s[12] - @< Array Subscript + constant arraySubExp3 = a.b.c[1][2].s[12] + @< Array Subscript @ Boolean literal constant booleanLiteralExp = true diff --git a/compiler/tools/fpp-syntax/test/template.fpp b/compiler/tools/fpp-syntax/test/template.fpp new file mode 100644 index 0000000000..30a0fa7cff --- /dev/null +++ b/compiler/tools/fpp-syntax/test/template.fpp @@ -0,0 +1,20 @@ +module template Tmpl( + @ Constant template parameter + constant c: SomeType @< Constant parameter + + @ Type template parameter + type TypeParam @< Type parameter + + @ Interface instance template parameter + interface inst: InterfaceDef @< Instance parameter +) { + array Arr = [3] TypeParam + + topology Top { + instance inst + } +} + +@ Expansion specifier +expand Tmpl(constant 10, type Type, interface instance1) +@< Expansion specifier \ No newline at end of file diff --git a/compiler/tools/fpp-syntax/test/template.ref.txt b/compiler/tools/fpp-syntax/test/template.ref.txt new file mode 100644 index 0000000000..15d416dccf --- /dev/null +++ b/compiler/tools/fpp-syntax/test/template.ref.txt @@ -0,0 +1,33 @@ +def module template + ident Tmpl + @ Constant template parameter + constant template param + type name qual ident SomeType + @< Constant parameter + @ Type template parameter + type template param + ident TypeParam + @< Type parameter + @ Interface instance template parameter + interface template param + ident inst + qual ident InterfaceDef + @< Instance parameter + def array + ident Arr + size literal int 3 + type name qual ident TypeParam + def topology + ident Top + spec interface instance + qual ident inst +@ Expansion specifier +expand + qual ident Tmpl + constant template arg + literal int 10 + type template arg + type name qual ident Type + interface template param + qual ident instance1 +@< Expansion specifier diff --git a/compiler/tools/fpp-syntax/test/update-ref b/compiler/tools/fpp-syntax/test/update-ref index 65622597fb..2f21c6bffa 100755 --- a/compiler/tools/fpp-syntax/test/update-ref +++ b/compiler/tools/fpp-syntax/test/update-ref @@ -29,6 +29,7 @@ update "" illegal-character update "" parse-error update "" syntax update "" syntax-kwd-names +update -a state-machine update -ia topology-ports update -a dictionary-specifier update -a empty @@ -46,6 +47,8 @@ update -ia include-state-machine update -ia include-state-machine update -ia include-subdir update -ia include-topology +update -ia topology-ports +update -ita template update -ia subdir/include-parent-dir update -ia syntax syntax-include-ast update "" numeric-shift diff --git a/compiler/tools/fpp-to-json/test/activeComponents.ref.txt b/compiler/tools/fpp-to-json/test/activeComponents.ref.txt index d6ab9d0625..e290e8e8d4 100644 --- a/compiler/tools/fpp-to-json/test/activeComponents.ref.txt +++ b/compiler/tools/fpp-to-json/test/activeComponents.ref.txt @@ -140,18 +140,18 @@ "name" : "Fw" } }, - "id" : 42 + "id" : 52 } }, "name" : { "AstNode" : { "data" : "BufferSend", - "id" : 43 + "id" : 51 } } } }, - "id" : 44 + "id" : 53 } } }, @@ -159,7 +159,7 @@ "queueFull" : "None" } }, - "id" : 45 + "id" : 54 } } } @@ -196,18 +196,18 @@ "name" : "Fw" } }, - "id" : 54 + "id" : 67 } }, "name" : { "AstNode" : { "data" : "BufferSend", - "id" : 55 + "id" : 66 } } } }, - "id" : 56 + "id" : 68 } } }, @@ -215,7 +215,7 @@ "queueFull" : "None" } }, - "id" : 57 + "id" : 69 } } } @@ -225,7 +225,7 @@ ] ] }, - "id" : 58 + "id" : 70 } } } @@ -235,7 +235,7 @@ ] ] }, - "id" : 59 + "id" : 71 } } } @@ -298,18 +298,18 @@ "name" : "Svc" } }, - "id" : 112 + "id" : 128 } }, "name" : { "AstNode" : { "data" : "Sched", - "id" : 113 + "id" : 127 } } } }, - "id" : 114 + "id" : 129 } } }, @@ -317,7 +317,7 @@ "queueFull" : "None" } }, - "id" : 115 + "id" : 130 } } } @@ -337,7 +337,7 @@ "name" : "S1", "members" : "None" }, - "id" : 116 + "id" : 131 } } } @@ -378,7 +378,7 @@ } } }, - "id" : 205 + "id" : 224 } } }, @@ -393,7 +393,7 @@ "name" : "__FPRIME_UNINITIALIZED", "value" : "None" }, - "id" : 203 + "id" : 222 } }, [ @@ -408,7 +408,7 @@ "name" : "IDLE", "value" : "None" }, - "id" : 204 + "id" : 223 } }, [ @@ -418,7 +418,7 @@ "default" : "None", "isDictionaryDef" : false }, - "id" : 206 + "id" : 225 } } } @@ -446,15 +446,15 @@ "name" : "IDLE" } }, - "id" : 118 + "id" : 133 } } }, - "id" : 119 + "id" : 134 } } }, - "id" : 120 + "id" : 135 } } } @@ -474,7 +474,7 @@ "members" : [ ] }, - "id" : 123 + "id" : 138 } } } @@ -485,7 +485,7 @@ ] } }, - "id" : 124 + "id" : 139 } } } @@ -510,13 +510,13 @@ "name" : "S1" } }, - "id" : 126 + "id" : 141 } }, "priority" : "None", "queueFull" : "None" }, - "id" : 127 + "id" : 142 } } } @@ -541,13 +541,13 @@ "name" : "S2" } }, - "id" : 135 + "id" : 150 } }, "priority" : "None", "queueFull" : "None" }, - "id" : 136 + "id" : 151 } } } @@ -557,7 +557,7 @@ ] ] }, - "id" : 137 + "id" : 152 } } } @@ -567,7 +567,7 @@ ] ] }, - "id" : 138 + "id" : 153 } } } @@ -612,12 +612,12 @@ "value" : "10" } }, - "id" : 139 + "id" : 154 } }, "isDictionaryDef" : false }, - "id" : 140 + "id" : 155 } } } @@ -646,7 +646,7 @@ "value" : "10" } }, - "id" : 149 + "id" : 164 } }, "op" : { @@ -661,17 +661,17 @@ "value" : "1024" } }, - "id" : 150 + "id" : 165 } } } }, - "id" : 151 + "id" : 166 } }, "isDictionaryDef" : false }, - "id" : 152 + "id" : 167 } } } @@ -681,7 +681,7 @@ ] ] }, - "id" : 153 + "id" : 168 } } } @@ -710,18 +710,18 @@ "name" : "Utils" } }, - "id" : 154 + "id" : 171 } }, "name" : { "AstNode" : { "data" : "DataCompressor", - "id" : 155 + "id" : 170 } } } }, - "id" : 156 + "id" : 172 } }, "baseId" : { @@ -731,7 +731,7 @@ "value" : "0x100" } }, - "id" : 157 + "id" : 173 } }, "implType" : "None", @@ -748,18 +748,18 @@ "value" : "Default" } }, - "id" : 158 + "id" : 174 } }, "id" : { "AstNode" : { "data" : "queueSize", - "id" : 159 + "id" : 175 } } } }, - "id" : 160 + "id" : 176 } } }, @@ -775,18 +775,18 @@ "value" : "Default" } }, - "id" : 161 + "id" : 177 } }, "id" : { "AstNode" : { "data" : "stackSize", - "id" : 162 + "id" : 178 } } } }, - "id" : 163 + "id" : 179 } } }, @@ -798,7 +798,7 @@ "value" : "30" } }, - "id" : 164 + "id" : 180 } } }, @@ -806,7 +806,7 @@ "initSpecs" : [ ] }, - "id" : 165 + "id" : 181 } } } @@ -835,18 +835,18 @@ "name" : "M" } }, - "id" : 190 + "id" : 210 } }, "name" : { "AstNode" : { "data" : "StateMachines", - "id" : 191 + "id" : 209 } } } }, - "id" : 192 + "id" : 211 } }, "baseId" : { @@ -856,7 +856,7 @@ "value" : "0x200" } }, - "id" : 193 + "id" : 212 } }, "implType" : "None", @@ -873,18 +873,18 @@ "value" : "Default" } }, - "id" : 194 + "id" : 213 } }, "id" : { "AstNode" : { "data" : "queueSize", - "id" : 195 + "id" : 214 } } } }, - "id" : 196 + "id" : 215 } } }, @@ -900,18 +900,18 @@ "value" : "Default" } }, - "id" : 197 + "id" : 216 } }, "id" : { "AstNode" : { "data" : "stackSize", - "id" : 198 + "id" : 217 } } } }, - "id" : 199 + "id" : 218 } } }, @@ -923,7 +923,7 @@ "value" : "40" } }, - "id" : 200 + "id" : 219 } } }, @@ -931,7 +931,7 @@ "initSpecs" : [ ] }, - "id" : 201 + "id" : 220 } } } @@ -941,7 +941,7 @@ ] ] }, - "id" : 202 + "id" : 221 } } } @@ -959,1037 +959,1358 @@ "0" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", "pos" : "2.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "1" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", "pos" : "2.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "2" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", "pos" : "2.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "3" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", "pos" : "1.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "4" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", "pos" : "6.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "5" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", "pos" : "6.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "6" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", "pos" : "6.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "7" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", "pos" : "5.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "8" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", "pos" : "15.36", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "9" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", "pos" : "15.39", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "10" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", "pos" : "15.36", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "11" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "15.5", - "includingLoc" : "None" + "pos" : "15.36", + "includingLoc" : "None", + "expandingLoc" : "None" }, "12" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "18.32", - "includingLoc" : "None" + "pos" : "15.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "13" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "18.35", - "includingLoc" : "None" + "pos" : "18.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "14" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "18.32", - "includingLoc" : "None" + "pos" : "18.35", + "includingLoc" : "None", + "expandingLoc" : "None" }, "15" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "18.5", - "includingLoc" : "None" + "pos" : "18.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "16" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", "pos" : "18.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "17" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "18.35", - "includingLoc" : "None" + "pos" : "18.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "18" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", "pos" : "18.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "19" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "18.5", - "includingLoc" : "None" + "pos" : "18.35", + "includingLoc" : "None", + "expandingLoc" : "None" }, "20" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", "pos" : "18.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "21" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "18.35", - "includingLoc" : "None" + "pos" : "18.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "22" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "18.32", - "includingLoc" : "None" + "pos" : "18.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "23" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "18.5", - "includingLoc" : "None" + "pos" : "18.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "24" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "12.3", - "includingLoc" : "None" + "pos" : "18.35", + "includingLoc" : "None", + "expandingLoc" : "None" }, "25" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "15.36", - "includingLoc" : "None" + "pos" : "18.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "26" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "15.39", - "includingLoc" : "None" + "pos" : "18.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "27" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "15.36", - "includingLoc" : "None" + "pos" : "18.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "28" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "15.5", - "includingLoc" : "None" + "pos" : "12.3", + "includingLoc" : "None", + "expandingLoc" : "None" }, "29" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "18.32", - "includingLoc" : "None" + "pos" : "15.36", + "includingLoc" : "None", + "expandingLoc" : "None" }, "30" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "18.35", - "includingLoc" : "None" + "pos" : "15.39", + "includingLoc" : "None", + "expandingLoc" : "None" }, "31" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "18.32", - "includingLoc" : "None" + "pos" : "15.36", + "includingLoc" : "None", + "expandingLoc" : "None" }, "32" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "18.5", - "includingLoc" : "None" + "pos" : "15.36", + "includingLoc" : "None", + "expandingLoc" : "None" }, "33" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "18.32", - "includingLoc" : "None" + "pos" : "15.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "34" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "18.35", - "includingLoc" : "None" + "pos" : "18.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "35" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "18.32", - "includingLoc" : "None" + "pos" : "18.35", + "includingLoc" : "None", + "expandingLoc" : "None" }, "36" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "18.5", - "includingLoc" : "None" + "pos" : "18.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "37" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", "pos" : "18.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "38" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "18.35", - "includingLoc" : "None" + "pos" : "18.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "39" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", "pos" : "18.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "40" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "18.5", - "includingLoc" : "None" + "pos" : "18.35", + "includingLoc" : "None", + "expandingLoc" : "None" }, "41" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "12.3", - "includingLoc" : "None" + "pos" : "18.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "42" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "15.36", - "includingLoc" : "None" + "pos" : "18.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "43" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "15.39", - "includingLoc" : "None" + "pos" : "18.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "44" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "15.36", - "includingLoc" : "None" + "pos" : "18.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "45" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "15.5", - "includingLoc" : "None" + "pos" : "18.35", + "includingLoc" : "None", + "expandingLoc" : "None" }, "46" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", "pos" : "18.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "47" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "18.35", - "includingLoc" : "None" + "pos" : "18.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "48" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "18.32", - "includingLoc" : "None" + "pos" : "18.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "49" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "18.5", - "includingLoc" : "None" + "pos" : "12.3", + "includingLoc" : "None", + "expandingLoc" : "None" }, "50" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "18.32", - "includingLoc" : "None" + "pos" : "15.36", + "includingLoc" : "None", + "expandingLoc" : "None" }, "51" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "18.35", - "includingLoc" : "None" + "pos" : "15.39", + "includingLoc" : "None", + "expandingLoc" : "None" }, "52" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "18.32", - "includingLoc" : "None" + "pos" : "15.36", + "includingLoc" : "None", + "expandingLoc" : "None" }, "53" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "18.5", - "includingLoc" : "None" + "pos" : "15.36", + "includingLoc" : "None", + "expandingLoc" : "None" }, "54" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "18.32", - "includingLoc" : "None" + "pos" : "15.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "55" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "18.35", - "includingLoc" : "None" + "pos" : "18.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "56" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "18.32", - "includingLoc" : "None" + "pos" : "18.35", + "includingLoc" : "None", + "expandingLoc" : "None" }, "57" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "18.5", - "includingLoc" : "None" + "pos" : "18.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "58" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "12.3", - "includingLoc" : "None" + "pos" : "18.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "59" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "9.1", - "includingLoc" : "None" + "pos" : "18.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "60" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "30.31", - "includingLoc" : "None" + "pos" : "18.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "61" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "30.35", - "includingLoc" : "None" + "pos" : "18.35", + "includingLoc" : "None", + "expandingLoc" : "None" }, "62" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "30.31", - "includingLoc" : "None" + "pos" : "18.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "63" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "30.5", - "includingLoc" : "None" + "pos" : "18.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "64" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "33.5", - "includingLoc" : "None" + "pos" : "18.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "65" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "37.23", - "includingLoc" : "None" + "pos" : "18.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "66" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "37.23", - "includingLoc" : "None" + "pos" : "18.35", + "includingLoc" : "None", + "expandingLoc" : "None" }, "67" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "37.17", - "includingLoc" : "None" + "pos" : "18.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "68" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "37.9", - "includingLoc" : "None" + "pos" : "18.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "69" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "38.9", - "includingLoc" : "None" + "pos" : "18.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "70" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "38.9", - "includingLoc" : "None" + "pos" : "12.3", + "includingLoc" : "None", + "expandingLoc" : "None" }, "71" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "38.9", - "includingLoc" : "None" + "pos" : "9.1", + "includingLoc" : "None", + "expandingLoc" : "None" }, "72" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "36.5", - "includingLoc" : "None" + "pos" : "30.31", + "includingLoc" : "None", + "expandingLoc" : "None" }, "73" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "42.32", - "includingLoc" : "None" + "pos" : "30.35", + "includingLoc" : "None", + "expandingLoc" : "None" }, "74" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "42.32", - "includingLoc" : "None" + "pos" : "30.31", + "includingLoc" : "None", + "expandingLoc" : "None" }, "75" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "42.5", - "includingLoc" : "None" + "pos" : "30.31", + "includingLoc" : "None", + "expandingLoc" : "None" }, "76" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "45.32", - "includingLoc" : "None" + "pos" : "30.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "77" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "45.32", - "includingLoc" : "None" + "pos" : "33.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "78" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "45.5", - "includingLoc" : "None" + "pos" : "37.23", + "includingLoc" : "None", + "expandingLoc" : "None" }, "79" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "45.32", - "includingLoc" : "None" + "pos" : "37.23", + "includingLoc" : "None", + "expandingLoc" : "None" }, "80" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "45.32", - "includingLoc" : "None" + "pos" : "37.17", + "includingLoc" : "None", + "expandingLoc" : "None" }, "81" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "45.5", - "includingLoc" : "None" + "pos" : "37.9", + "includingLoc" : "None", + "expandingLoc" : "None" }, "82" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "45.32", - "includingLoc" : "None" + "pos" : "38.9", + "includingLoc" : "None", + "expandingLoc" : "None" }, "83" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "45.32", - "includingLoc" : "None" + "pos" : "38.9", + "includingLoc" : "None", + "expandingLoc" : "None" }, "84" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "45.5", - "includingLoc" : "None" + "pos" : "38.9", + "includingLoc" : "None", + "expandingLoc" : "None" }, "85" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "27.3", - "includingLoc" : "None" + "pos" : "36.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "86" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "30.31", - "includingLoc" : "None" + "pos" : "42.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "87" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "30.35", - "includingLoc" : "None" + "pos" : "42.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "88" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "30.31", - "includingLoc" : "None" + "pos" : "42.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "89" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "30.5", - "includingLoc" : "None" + "pos" : "45.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "90" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "33.5", - "includingLoc" : "None" + "pos" : "45.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "91" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "37.23", - "includingLoc" : "None" + "pos" : "45.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "92" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "37.23", - "includingLoc" : "None" + "pos" : "45.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "93" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "37.17", - "includingLoc" : "None" + "pos" : "45.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "94" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "37.9", - "includingLoc" : "None" + "pos" : "45.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "95" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "38.9", - "includingLoc" : "None" + "pos" : "45.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "96" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "38.9", - "includingLoc" : "None" + "pos" : "45.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "97" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "38.9", - "includingLoc" : "None" + "pos" : "45.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "98" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "36.5", - "includingLoc" : "None" + "pos" : "27.3", + "includingLoc" : "None", + "expandingLoc" : "None" }, "99" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "42.32", - "includingLoc" : "None" + "pos" : "30.31", + "includingLoc" : "None", + "expandingLoc" : "None" }, "100" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "42.32", - "includingLoc" : "None" + "pos" : "30.35", + "includingLoc" : "None", + "expandingLoc" : "None" }, "101" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "42.5", - "includingLoc" : "None" + "pos" : "30.31", + "includingLoc" : "None", + "expandingLoc" : "None" }, "102" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "45.32", - "includingLoc" : "None" + "pos" : "30.31", + "includingLoc" : "None", + "expandingLoc" : "None" }, "103" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "45.32", - "includingLoc" : "None" + "pos" : "30.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "104" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "45.5", - "includingLoc" : "None" + "pos" : "33.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "105" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "45.32", - "includingLoc" : "None" + "pos" : "37.23", + "includingLoc" : "None", + "expandingLoc" : "None" }, "106" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "45.32", - "includingLoc" : "None" + "pos" : "37.23", + "includingLoc" : "None", + "expandingLoc" : "None" }, "107" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "45.5", - "includingLoc" : "None" + "pos" : "37.17", + "includingLoc" : "None", + "expandingLoc" : "None" }, "108" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "45.32", - "includingLoc" : "None" + "pos" : "37.9", + "includingLoc" : "None", + "expandingLoc" : "None" }, "109" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "45.32", - "includingLoc" : "None" + "pos" : "38.9", + "includingLoc" : "None", + "expandingLoc" : "None" }, "110" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "45.5", - "includingLoc" : "None" + "pos" : "38.9", + "includingLoc" : "None", + "expandingLoc" : "None" }, "111" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "27.3", - "includingLoc" : "None" + "pos" : "38.9", + "includingLoc" : "None", + "expandingLoc" : "None" }, "112" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "30.31", - "includingLoc" : "None" + "pos" : "36.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "113" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "30.35", - "includingLoc" : "None" + "pos" : "42.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "114" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "30.31", - "includingLoc" : "None" + "pos" : "42.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "115" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "30.5", - "includingLoc" : "None" + "pos" : "42.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "116" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "33.5", - "includingLoc" : "None" + "pos" : "45.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "117" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "37.23", - "includingLoc" : "None" + "pos" : "45.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "118" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "37.23", - "includingLoc" : "None" + "pos" : "45.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "119" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "37.17", - "includingLoc" : "None" + "pos" : "45.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "120" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "37.9", - "includingLoc" : "None" + "pos" : "45.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "121" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "38.9", - "includingLoc" : "None" + "pos" : "45.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "122" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "38.9", - "includingLoc" : "None" + "pos" : "45.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "123" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "38.9", - "includingLoc" : "None" + "pos" : "45.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "124" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "36.5", - "includingLoc" : "None" + "pos" : "45.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "125" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "42.32", - "includingLoc" : "None" + "pos" : "27.3", + "includingLoc" : "None", + "expandingLoc" : "None" }, "126" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "42.32", - "includingLoc" : "None" + "pos" : "30.31", + "includingLoc" : "None", + "expandingLoc" : "None" }, "127" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "42.5", - "includingLoc" : "None" + "pos" : "30.35", + "includingLoc" : "None", + "expandingLoc" : "None" }, "128" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "45.32", - "includingLoc" : "None" + "pos" : "30.31", + "includingLoc" : "None", + "expandingLoc" : "None" }, "129" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "45.32", - "includingLoc" : "None" + "pos" : "30.31", + "includingLoc" : "None", + "expandingLoc" : "None" }, "130" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "45.5", - "includingLoc" : "None" + "pos" : "30.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "131" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "45.32", - "includingLoc" : "None" + "pos" : "33.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "132" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "45.32", - "includingLoc" : "None" + "pos" : "37.23", + "includingLoc" : "None", + "expandingLoc" : "None" }, "133" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "45.5", - "includingLoc" : "None" + "pos" : "37.23", + "includingLoc" : "None", + "expandingLoc" : "None" }, "134" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "45.32", - "includingLoc" : "None" + "pos" : "37.17", + "includingLoc" : "None", + "expandingLoc" : "None" }, "135" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "45.32", - "includingLoc" : "None" + "pos" : "37.9", + "includingLoc" : "None", + "expandingLoc" : "None" }, "136" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "45.5", - "includingLoc" : "None" + "pos" : "38.9", + "includingLoc" : "None", + "expandingLoc" : "None" }, "137" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "27.3", - "includingLoc" : "None" + "pos" : "38.9", + "includingLoc" : "None", + "expandingLoc" : "None" }, "138" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "24.1", - "includingLoc" : "None" + "pos" : "38.9", + "includingLoc" : "None", + "expandingLoc" : "None" }, "139" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "55.26", - "includingLoc" : "None" + "pos" : "36.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "140" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "55.5", - "includingLoc" : "None" + "pos" : "42.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "141" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "57.26", - "includingLoc" : "None" + "pos" : "42.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "142" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "57.31", - "includingLoc" : "None" + "pos" : "42.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "143" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "57.29", - "includingLoc" : "None" + "pos" : "45.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "144" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "57.5", - "includingLoc" : "None" + "pos" : "45.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "145" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "57.26", - "includingLoc" : "None" + "pos" : "45.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "146" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "57.31", - "includingLoc" : "None" + "pos" : "45.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "147" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "57.29", - "includingLoc" : "None" + "pos" : "45.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "148" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "57.5", - "includingLoc" : "None" + "pos" : "45.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "149" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "57.26", - "includingLoc" : "None" + "pos" : "45.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "150" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "57.31", - "includingLoc" : "None" + "pos" : "45.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "151" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "57.29", - "includingLoc" : "None" + "pos" : "45.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "152" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "57.5", - "includingLoc" : "None" + "pos" : "27.3", + "includingLoc" : "None", + "expandingLoc" : "None" }, "153" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "53.3", - "includingLoc" : "None" + "pos" : "24.1", + "includingLoc" : "None", + "expandingLoc" : "None" }, "154" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "61.28", - "includingLoc" : "None" + "pos" : "55.26", + "includingLoc" : "None", + "expandingLoc" : "None" }, "155" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "61.34", - "includingLoc" : "None" + "pos" : "55.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "156" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "61.28", - "includingLoc" : "None" + "pos" : "57.26", + "includingLoc" : "None", + "expandingLoc" : "None" }, "157" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "61.57", - "includingLoc" : "None" + "pos" : "57.31", + "includingLoc" : "None", + "expandingLoc" : "None" }, "158" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "62.16", - "includingLoc" : "None" + "pos" : "57.29", + "includingLoc" : "None", + "expandingLoc" : "None" }, "159" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "62.24", - "includingLoc" : "None" + "pos" : "57.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "160" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "62.16", - "includingLoc" : "None" + "pos" : "57.26", + "includingLoc" : "None", + "expandingLoc" : "None" }, "161" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "63.16", - "includingLoc" : "None" + "pos" : "57.31", + "includingLoc" : "None", + "expandingLoc" : "None" }, "162" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "63.24", - "includingLoc" : "None" + "pos" : "57.29", + "includingLoc" : "None", + "expandingLoc" : "None" }, "163" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "63.16", - "includingLoc" : "None" + "pos" : "57.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "164" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "64.14", - "includingLoc" : "None" + "pos" : "57.26", + "includingLoc" : "None", + "expandingLoc" : "None" }, "165" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "61.3", - "includingLoc" : "None" + "pos" : "57.31", + "includingLoc" : "None", + "expandingLoc" : "None" }, "166" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "67.27", - "includingLoc" : "None" + "pos" : "57.29", + "includingLoc" : "None", + "expandingLoc" : "None" }, "167" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "67.29", - "includingLoc" : "None" + "pos" : "57.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "168" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "67.27", - "includingLoc" : "None" + "pos" : "53.3", + "includingLoc" : "None", + "expandingLoc" : "None" }, "169" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "67.51", - "includingLoc" : "None" + "pos" : "61.28", + "includingLoc" : "None", + "expandingLoc" : "None" }, "170" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "68.16", - "includingLoc" : "None" + "pos" : "61.34", + "includingLoc" : "None", + "expandingLoc" : "None" }, "171" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "68.24", - "includingLoc" : "None" + "pos" : "61.28", + "includingLoc" : "None", + "expandingLoc" : "None" }, "172" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "68.16", - "includingLoc" : "None" + "pos" : "61.28", + "includingLoc" : "None", + "expandingLoc" : "None" }, "173" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "69.16", - "includingLoc" : "None" + "pos" : "61.57", + "includingLoc" : "None", + "expandingLoc" : "None" }, "174" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "69.24", - "includingLoc" : "None" + "pos" : "62.16", + "includingLoc" : "None", + "expandingLoc" : "None" }, "175" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "69.16", - "includingLoc" : "None" + "pos" : "62.24", + "includingLoc" : "None", + "expandingLoc" : "None" }, "176" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "70.14", - "includingLoc" : "None" + "pos" : "62.16", + "includingLoc" : "None", + "expandingLoc" : "None" }, "177" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "67.3", - "includingLoc" : "None" + "pos" : "63.16", + "includingLoc" : "None", + "expandingLoc" : "None" }, "178" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "67.27", - "includingLoc" : "None" + "pos" : "63.24", + "includingLoc" : "None", + "expandingLoc" : "None" }, "179" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "67.29", - "includingLoc" : "None" + "pos" : "63.16", + "includingLoc" : "None", + "expandingLoc" : "None" }, "180" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "67.27", - "includingLoc" : "None" + "pos" : "64.14", + "includingLoc" : "None", + "expandingLoc" : "None" }, "181" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "67.51", - "includingLoc" : "None" + "pos" : "61.3", + "includingLoc" : "None", + "expandingLoc" : "None" }, "182" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "68.16", - "includingLoc" : "None" + "pos" : "67.27", + "includingLoc" : "None", + "expandingLoc" : "None" }, "183" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "68.24", - "includingLoc" : "None" + "pos" : "67.29", + "includingLoc" : "None", + "expandingLoc" : "None" }, "184" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "68.16", - "includingLoc" : "None" + "pos" : "67.27", + "includingLoc" : "None", + "expandingLoc" : "None" }, "185" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "69.16", - "includingLoc" : "None" + "pos" : "67.27", + "includingLoc" : "None", + "expandingLoc" : "None" }, "186" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "69.24", - "includingLoc" : "None" + "pos" : "67.51", + "includingLoc" : "None", + "expandingLoc" : "None" }, "187" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "69.16", - "includingLoc" : "None" + "pos" : "68.16", + "includingLoc" : "None", + "expandingLoc" : "None" }, "188" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "70.14", - "includingLoc" : "None" + "pos" : "68.24", + "includingLoc" : "None", + "expandingLoc" : "None" }, "189" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "67.3", - "includingLoc" : "None" + "pos" : "68.16", + "includingLoc" : "None", + "expandingLoc" : "None" }, "190" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "67.27", - "includingLoc" : "None" + "pos" : "69.16", + "includingLoc" : "None", + "expandingLoc" : "None" }, "191" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "67.29", - "includingLoc" : "None" + "pos" : "69.24", + "includingLoc" : "None", + "expandingLoc" : "None" }, "192" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "67.27", - "includingLoc" : "None" + "pos" : "69.16", + "includingLoc" : "None", + "expandingLoc" : "None" }, "193" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "67.51", - "includingLoc" : "None" + "pos" : "70.14", + "includingLoc" : "None", + "expandingLoc" : "None" }, "194" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "68.16", - "includingLoc" : "None" + "pos" : "67.3", + "includingLoc" : "None", + "expandingLoc" : "None" }, "195" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "68.24", - "includingLoc" : "None" + "pos" : "67.27", + "includingLoc" : "None", + "expandingLoc" : "None" }, "196" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "68.16", - "includingLoc" : "None" + "pos" : "67.29", + "includingLoc" : "None", + "expandingLoc" : "None" }, "197" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "69.16", - "includingLoc" : "None" + "pos" : "67.27", + "includingLoc" : "None", + "expandingLoc" : "None" }, "198" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "69.24", - "includingLoc" : "None" + "pos" : "67.27", + "includingLoc" : "None", + "expandingLoc" : "None" }, "199" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "69.16", - "includingLoc" : "None" + "pos" : "67.51", + "includingLoc" : "None", + "expandingLoc" : "None" }, "200" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "70.14", - "includingLoc" : "None" + "pos" : "68.16", + "includingLoc" : "None", + "expandingLoc" : "None" }, "201" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "67.3", - "includingLoc" : "None" + "pos" : "68.24", + "includingLoc" : "None", + "expandingLoc" : "None" }, "202" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "51.1", - "includingLoc" : "None" + "pos" : "68.16", + "includingLoc" : "None", + "expandingLoc" : "None" }, "203" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "36.5", - "includingLoc" : "None" + "pos" : "69.16", + "includingLoc" : "None", + "expandingLoc" : "None" }, "204" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "36.5", - "includingLoc" : "None" + "pos" : "69.24", + "includingLoc" : "None", + "expandingLoc" : "None" }, "205" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", - "pos" : "36.5", - "includingLoc" : "None" + "pos" : "69.16", + "includingLoc" : "None", + "expandingLoc" : "None" }, "206" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", + "pos" : "70.14", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "207" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", + "pos" : "67.3", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "208" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", + "pos" : "67.27", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "209" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", + "pos" : "67.29", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "210" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", + "pos" : "67.27", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "211" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", + "pos" : "67.27", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "212" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", + "pos" : "67.51", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "213" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", + "pos" : "68.16", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "214" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", + "pos" : "68.24", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "215" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", + "pos" : "68.16", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "216" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", + "pos" : "69.16", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "217" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", + "pos" : "69.24", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "218" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", + "pos" : "69.16", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "219" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", + "pos" : "70.14", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "220" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", + "pos" : "67.3", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "221" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", + "pos" : "51.1", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "222" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", "pos" : "36.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "223" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", + "pos" : "36.5", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "224" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", + "pos" : "36.5", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "225" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/activeComponents.fpp", + "pos" : "36.5", + "includingLoc" : "None", + "expandingLoc" : "None" } } } @@ -1997,9 +2318,9 @@ "fppVersion" : "[ fpp version ]", "analysis" : { "componentInstanceMap" : { - "165" : { + "181" : { "aNode" : { - "astNodeId" : 165 + "astNodeId" : 181 }, "qualifiedName" : { "qualifier" : [ @@ -2008,7 +2329,7 @@ "base" : "dataCompressor" }, "component" : { - "astNodeId" : 58 + "astNodeId" : 70 }, "baseId" : 256, "maxId" : 255, @@ -2027,9 +2348,9 @@ } }, - "201" : { + "220" : { "aNode" : { - "astNodeId" : 201 + "astNodeId" : 220 }, "qualifiedName" : { "qualifier" : [ @@ -2038,7 +2359,7 @@ "base" : "stateMachines" }, "component" : { - "astNodeId" : 137 + "astNodeId" : 152 }, "baseId" : 512, "maxId" : 511, @@ -2059,9 +2380,9 @@ } }, "componentMap" : { - "58" : { + "70" : { "aNode" : { - "astNodeId" : 58 + "astNodeId" : 70 }, "portInterface" : { "instanceType" : "component", @@ -2069,7 +2390,7 @@ "bufferSendIn" : { "General" : { "aNode" : { - "astNodeId" : 45 + "astNodeId" : 54 }, "specifier" : { "kind" : { @@ -2081,7 +2402,7 @@ "size" : "None", "port" : { "Some" : { - "astNodeId" : 44 + "astNodeId" : 53 } }, "priority" : "None", @@ -2106,7 +2427,7 @@ "bufferSendOut" : { "General" : { "aNode" : { - "astNodeId" : 57 + "astNodeId" : 69 }, "specifier" : { "kind" : { @@ -2118,7 +2439,7 @@ "size" : "None", "port" : { "Some" : { - "astNodeId" : 56 + "astNodeId" : 68 } }, "priority" : "None", @@ -2180,9 +2501,9 @@ }, "defaultRecordId" : 0 }, - "137" : { + "152" : { "aNode" : { - "astNodeId" : 137 + "astNodeId" : 152 }, "portInterface" : { "instanceType" : "component", @@ -2190,7 +2511,7 @@ "schedIn" : { "General" : { "aNode" : { - "astNodeId" : 115 + "astNodeId" : 130 }, "specifier" : { "kind" : { @@ -2202,7 +2523,7 @@ "size" : "None", "port" : { "Some" : { - "astNodeId" : 114 + "astNodeId" : 129 } }, "priority" : "None", @@ -2252,11 +2573,11 @@ "stateMachineInstanceMap" : { "s1" : { "aNode" : { - "astNodeId" : 127 + "astNodeId" : 142 }, "symbol" : { "node" : { - "astNodeId" : 116 + "astNodeId" : 131 } }, "priority" : "None", @@ -2268,11 +2589,11 @@ }, "s2" : { "aNode" : { - "astNodeId" : 136 + "astNodeId" : 151 }, "symbol" : { "node" : { - "astNodeId" : 124 + "astNodeId" : 139 } }, "priority" : "None", @@ -2324,75 +2645,75 @@ "unqualifiedName" : "Svc" } }, - "58" : { + "70" : { "Module" : { - "nodeId" : 59, + "nodeId" : 71, "unqualifiedName" : "Utils" } }, - "116" : { + "131" : { "Component" : { - "nodeId" : 137, + "nodeId" : 152, "unqualifiedName" : "StateMachines" } }, - "124" : { + "139" : { "Component" : { - "nodeId" : 137, + "nodeId" : 152, "unqualifiedName" : "StateMachines" } }, - "137" : { + "152" : { "Module" : { - "nodeId" : 138, + "nodeId" : 153, "unqualifiedName" : "M" } }, - "140" : { + "155" : { "Module" : { - "nodeId" : 153, + "nodeId" : 168, "unqualifiedName" : "Default" } }, - "152" : { + "167" : { "Module" : { - "nodeId" : 153, + "nodeId" : 168, "unqualifiedName" : "Default" } }, - "153" : { + "168" : { "Module" : { - "nodeId" : 202, + "nodeId" : 221, "unqualifiedName" : "FSW" } }, - "165" : { + "181" : { "Module" : { - "nodeId" : 202, + "nodeId" : 221, "unqualifiedName" : "FSW" } }, - "201" : { + "220" : { "Module" : { - "nodeId" : 202, + "nodeId" : 221, "unqualifiedName" : "FSW" } }, - "203" : { + "222" : { "Enum" : { - "nodeId" : 206, + "nodeId" : 225, "unqualifiedName" : "State" } }, - "204" : { + "223" : { "Enum" : { - "nodeId" : 206, + "nodeId" : 225, "unqualifiedName" : "State" } }, - "206" : { + "225" : { "StateMachine" : { - "nodeId" : 124, + "nodeId" : 139, "unqualifiedName" : "S2" } } @@ -2426,18 +2747,18 @@ } } }, - "58" : { + "70" : { "map" : { } }, - "59" : { + "71" : { "map" : { "Component" : { "map" : { "DataCompressor" : { "Component" : { - "nodeId" : 58, + "nodeId" : 70, "unqualifiedName" : "DataCompressor" } } @@ -2447,7 +2768,7 @@ "map" : { "DataCompressor" : { "Component" : { - "nodeId" : 58, + "nodeId" : 70, "unqualifiedName" : "DataCompressor" } } @@ -2457,7 +2778,7 @@ "map" : { "DataCompressor" : { "Component" : { - "nodeId" : 58, + "nodeId" : 70, "unqualifiedName" : "DataCompressor" } } @@ -2467,7 +2788,7 @@ "map" : { "DataCompressor" : { "Component" : { - "nodeId" : 58, + "nodeId" : 70, "unqualifiedName" : "DataCompressor" } } @@ -2475,18 +2796,18 @@ } } }, - "116" : { + "131" : { "map" : { } }, - "124" : { + "139" : { "map" : { "Type" : { "map" : { "State" : { "Enum" : { - "nodeId" : 206, + "nodeId" : 225, "unqualifiedName" : "State" } } @@ -2496,7 +2817,7 @@ "map" : { "State" : { "Enum" : { - "nodeId" : 206, + "nodeId" : 225, "unqualifiedName" : "State" } } @@ -2504,19 +2825,19 @@ } } }, - "137" : { + "152" : { "map" : { "StateMachine" : { "map" : { "S1" : { "StateMachine" : { - "nodeId" : 116, + "nodeId" : 131, "unqualifiedName" : "S1" } }, "S2" : { "StateMachine" : { - "nodeId" : 124, + "nodeId" : 139, "unqualifiedName" : "S2" } } @@ -2526,13 +2847,13 @@ "map" : { "S1" : { "StateMachine" : { - "nodeId" : 116, + "nodeId" : 131, "unqualifiedName" : "S1" } }, "S2" : { "StateMachine" : { - "nodeId" : 124, + "nodeId" : 139, "unqualifiedName" : "S2" } } @@ -2542,13 +2863,13 @@ "map" : { "S1" : { "StateMachine" : { - "nodeId" : 116, + "nodeId" : 131, "unqualifiedName" : "S1" } }, "S2" : { "StateMachine" : { - "nodeId" : 124, + "nodeId" : 139, "unqualifiedName" : "S2" } } @@ -2556,13 +2877,13 @@ } } }, - "138" : { + "153" : { "map" : { "Component" : { "map" : { "StateMachines" : { "Component" : { - "nodeId" : 137, + "nodeId" : 152, "unqualifiedName" : "StateMachines" } } @@ -2572,7 +2893,7 @@ "map" : { "StateMachines" : { "Component" : { - "nodeId" : 137, + "nodeId" : 152, "unqualifiedName" : "StateMachines" } } @@ -2582,7 +2903,7 @@ "map" : { "StateMachines" : { "Component" : { - "nodeId" : 137, + "nodeId" : 152, "unqualifiedName" : "StateMachines" } } @@ -2592,7 +2913,7 @@ "map" : { "StateMachines" : { "Component" : { - "nodeId" : 137, + "nodeId" : 152, "unqualifiedName" : "StateMachines" } } @@ -2600,19 +2921,19 @@ } } }, - "153" : { + "168" : { "map" : { "Value" : { "map" : { "queueSize" : { "Constant" : { - "nodeId" : 140, + "nodeId" : 155, "unqualifiedName" : "queueSize" } }, "stackSize" : { "Constant" : { - "nodeId" : 152, + "nodeId" : 167, "unqualifiedName" : "stackSize" } } @@ -2620,13 +2941,13 @@ } } }, - "202" : { + "221" : { "map" : { "Component" : { "map" : { "Default" : { "Module" : { - "nodeId" : 153, + "nodeId" : 168, "unqualifiedName" : "Default" } } @@ -2636,7 +2957,7 @@ "map" : { "Default" : { "Module" : { - "nodeId" : 153, + "nodeId" : 168, "unqualifiedName" : "Default" } } @@ -2646,7 +2967,7 @@ "map" : { "Default" : { "Module" : { - "nodeId" : 153, + "nodeId" : 168, "unqualifiedName" : "Default" } } @@ -2656,19 +2977,19 @@ "map" : { "Default" : { "Module" : { - "nodeId" : 153, + "nodeId" : 168, "unqualifiedName" : "Default" } }, "dataCompressor" : { "ComponentInstance" : { - "nodeId" : 165, + "nodeId" : 181, "unqualifiedName" : "dataCompressor" } }, "stateMachines" : { "ComponentInstance" : { - "nodeId" : 201, + "nodeId" : 220, "unqualifiedName" : "stateMachines" } } @@ -2678,7 +2999,17 @@ "map" : { "Default" : { "Module" : { - "nodeId" : 153, + "nodeId" : 168, + "unqualifiedName" : "Default" + } + } + } + }, + "Template" : { + "map" : { + "Default" : { + "Module" : { + "nodeId" : 168, "unqualifiedName" : "Default" } } @@ -2688,7 +3019,7 @@ "map" : { "Default" : { "Module" : { - "nodeId" : 153, + "nodeId" : 168, "unqualifiedName" : "Default" } } @@ -2698,7 +3029,7 @@ "map" : { "Default" : { "Module" : { - "nodeId" : 153, + "nodeId" : 168, "unqualifiedName" : "Default" } } @@ -2706,19 +3037,19 @@ } } }, - "206" : { + "225" : { "map" : { "Value" : { "map" : { "IDLE" : { "EnumConstant" : { - "nodeId" : 204, + "nodeId" : 223, "unqualifiedName" : "IDLE" } }, "__FPRIME_UNINITIALIZED" : { "EnumConstant" : { - "nodeId" : 203, + "nodeId" : 222, "unqualifiedName" : "__FPRIME_UNINITIALIZED" } } @@ -2731,10 +3062,10 @@ }, "typeMap" : { - "124" : { + "139" : { "Enum" : { "node" : { - "astNodeId" : 206 + "astNodeId" : 225 }, "repType" : { "kind" : { @@ -2746,108 +3077,108 @@ "default" : "None" } }, - "139" : { + "154" : { "Int" : { "Integer" : { } } }, - "140" : { + "155" : { "Int" : { "Integer" : { } } }, - "149" : { + "164" : { "Int" : { "Integer" : { } } }, - "150" : { + "165" : { "Int" : { "Integer" : { } } }, - "151" : { + "166" : { "Int" : { "Integer" : { } } }, - "152" : { + "167" : { "Int" : { "Integer" : { } } }, - "157" : { + "173" : { "Int" : { "Integer" : { } } }, - "160" : { + "176" : { "Int" : { "Integer" : { } } }, - "163" : { + "179" : { "Int" : { "Integer" : { } } }, - "164" : { + "180" : { "Int" : { "Integer" : { } } }, - "193" : { + "212" : { "Int" : { "Integer" : { } } }, - "196" : { + "215" : { "Int" : { "Integer" : { } } }, - "199" : { + "218" : { "Int" : { "Integer" : { } } }, - "200" : { + "219" : { "Int" : { "Integer" : { } } }, - "203" : { + "222" : { "Enum" : { "node" : { - "astNodeId" : 206 + "astNodeId" : 225 }, "repType" : { "kind" : { @@ -2859,10 +3190,10 @@ "default" : "None" } }, - "204" : { + "223" : { "Enum" : { "node" : { - "astNodeId" : 206 + "astNodeId" : 225 }, "repType" : { "kind" : { @@ -2874,7 +3205,7 @@ "default" : "None" } }, - "205" : { + "224" : { "Int" : { "PrimitiveInt" : { "kind" : { @@ -2885,10 +3216,10 @@ } } }, - "206" : { + "225" : { "Enum" : { "node" : { - "astNodeId" : 206 + "astNodeId" : 225 }, "repType" : { "kind" : { @@ -2905,7 +3236,7 @@ ], "t" : { "node" : { - "astNodeId" : 206 + "astNodeId" : 225 }, "repType" : { "kind" : { @@ -2922,205 +3253,223 @@ } }, "useDefMap" : { - "42" : { + "52" : { "Module" : { "nodeId" : 3, "unqualifiedName" : "Fw" } }, - "44" : { + "53" : { "Port" : { "nodeId" : 2, "unqualifiedName" : "BufferSend" } }, - "54" : { + "67" : { "Module" : { "nodeId" : 3, "unqualifiedName" : "Fw" } }, - "56" : { + "68" : { "Port" : { "nodeId" : 2, "unqualifiedName" : "BufferSend" } }, - "112" : { + "128" : { "Module" : { "nodeId" : 7, "unqualifiedName" : "Svc" } }, - "114" : { + "129" : { "Port" : { "nodeId" : 6, "unqualifiedName" : "Sched" } }, - "124" : { + "139" : { "Enum" : { - "nodeId" : 206, + "nodeId" : 225, "unqualifiedName" : "State" } }, - "126" : { + "141" : { "StateMachine" : { - "nodeId" : 116, + "nodeId" : 131, "unqualifiedName" : "S1" } }, - "135" : { + "150" : { "StateMachine" : { - "nodeId" : 124, + "nodeId" : 139, "unqualifiedName" : "S2" } }, - "154" : { + "171" : { "Module" : { - "nodeId" : 59, + "nodeId" : 71, "unqualifiedName" : "Utils" } }, - "156" : { + "172" : { "Component" : { - "nodeId" : 58, + "nodeId" : 70, "unqualifiedName" : "DataCompressor" } }, - "158" : { + "174" : { "Module" : { - "nodeId" : 153, + "nodeId" : 168, "unqualifiedName" : "Default" } }, - "160" : { + "176" : { "Constant" : { - "nodeId" : 140, + "nodeId" : 155, "unqualifiedName" : "queueSize" } }, - "161" : { + "177" : { "Module" : { - "nodeId" : 153, + "nodeId" : 168, "unqualifiedName" : "Default" } }, - "163" : { + "179" : { "Constant" : { - "nodeId" : 152, + "nodeId" : 167, "unqualifiedName" : "stackSize" } }, - "190" : { + "210" : { "Module" : { - "nodeId" : 138, + "nodeId" : 153, "unqualifiedName" : "M" } }, - "192" : { + "211" : { "Component" : { - "nodeId" : 137, + "nodeId" : 152, "unqualifiedName" : "StateMachines" } }, - "194" : { + "213" : { "Module" : { - "nodeId" : 153, + "nodeId" : 168, "unqualifiedName" : "Default" } }, - "196" : { + "215" : { "Constant" : { - "nodeId" : 140, + "nodeId" : 155, "unqualifiedName" : "queueSize" } }, - "197" : { + "216" : { "Module" : { - "nodeId" : 153, + "nodeId" : 168, "unqualifiedName" : "Default" } }, - "199" : { + "218" : { "Constant" : { - "nodeId" : 152, + "nodeId" : 167, "unqualifiedName" : "stackSize" } + }, + "226" : { + "Module" : { + "nodeId" : 153, + "unqualifiedName" : "M" + } + }, + "227" : { + "Component" : { + "nodeId" : 152, + "unqualifiedName" : "StateMachines" + } + }, + "228" : { + "StateMachine" : { + "nodeId" : 139, + "unqualifiedName" : "S2" + } } }, "valueMap" : { - "139" : { + "154" : { "Integer" : { "value" : 10 } }, - "140" : { + "155" : { "Integer" : { "value" : 10 } }, - "149" : { + "164" : { "Integer" : { "value" : 10 } }, - "150" : { + "165" : { "Integer" : { "value" : 1024 } }, - "151" : { + "166" : { "Integer" : { "value" : 10240 } }, - "152" : { + "167" : { "Integer" : { "value" : 10240 } }, - "157" : { + "173" : { "Integer" : { "value" : 256 } }, - "160" : { + "176" : { "Integer" : { "value" : 10 } }, - "163" : { + "179" : { "Integer" : { "value" : 10240 } }, - "164" : { + "180" : { "Integer" : { "value" : 30 } }, - "193" : { + "212" : { "Integer" : { "value" : 512 } }, - "196" : { + "215" : { "Integer" : { "value" : 10 } }, - "199" : { + "218" : { "Integer" : { "value" : 10240 } }, - "200" : { + "219" : { "Integer" : { "value" : 40 } }, - "203" : { + "222" : { "EnumConstant" : { "value" : [ "__FPRIME_UNINITIALIZED", @@ -3128,7 +3477,7 @@ ], "t" : { "node" : { - "astNodeId" : 206 + "astNodeId" : 225 }, "repType" : { "kind" : { @@ -3141,7 +3490,7 @@ } } }, - "204" : { + "223" : { "EnumConstant" : { "value" : [ "IDLE", @@ -3149,7 +3498,7 @@ ], "t" : { "node" : { - "astNodeId" : 206 + "astNodeId" : 225 }, "repType" : { "kind" : { @@ -3164,14 +3513,14 @@ } }, "stateMachineMap" : { - "116" : { + "131" : { "aNode" : { - "astNodeId" : 116 + "astNodeId" : 131 }, "sma" : { "symbol" : { "node" : { - "astNodeId" : 116 + "astNodeId" : 131 } }, "symbolScopeMap" : { @@ -3203,27 +3552,27 @@ } } }, - "124" : { + "139" : { "aNode" : { - "astNodeId" : 124 + "astNodeId" : 139 }, "sma" : { "symbol" : { "node" : { - "astNodeId" : 124 + "astNodeId" : 139 } }, "symbolScopeMap" : { - "123" : { + "138" : { "map" : { } } }, "useDefMap" : { - "118" : { + "133" : { "State" : { - "nodeId" : 123, + "nodeId" : 138, "unqualifiedName" : "IDLE" } } @@ -3235,7 +3584,7 @@ "State" : { "symbol" : { "node" : { - "astNodeId" : 123 + "astNodeId" : 138 } } } @@ -3243,7 +3592,7 @@ } }, "arcMap" : { - "123" : [ + "138" : [ ] } }, @@ -3254,7 +3603,7 @@ "State" : { "symbol" : { "node" : { - "astNodeId" : 123 + "astNodeId" : 138 } } } @@ -3262,12 +3611,12 @@ } }, "arcMap" : { - "123" : [ + "138" : [ ] } }, "typeOptionMap" : { - "120" : "None" + "135" : "None" }, "flattenedStateTransitionMap" : { diff --git a/compiler/tools/fpp-to-json/test/commands.ref.txt b/compiler/tools/fpp-to-json/test/commands.ref.txt index f17bbc41ef..5cf801a965 100644 --- a/compiler/tools/fpp-to-json/test/commands.ref.txt +++ b/compiler/tools/fpp-to-json/test/commands.ref.txt @@ -509,282 +509,338 @@ "0" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "1.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "1" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "1.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "2" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "2.40", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "3" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "2.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "4" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "13.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "5" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "16.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "6" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "19.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "7" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "26.36", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "8" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "26.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "9" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "29.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "10" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "29.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "11" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "29.38", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "12" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "29.35", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "13" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "29.38", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "14" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "29.35", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "15" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "29.38", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "16" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "29.35", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "17" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "29.52", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "18" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "29.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "19" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "32.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "20" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "32.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "21" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "32.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "22" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "32.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "23" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "32.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "24" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "32.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "25" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "32.45", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "26" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "32.59", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "27" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "32.62", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "28" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "32.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "29" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "32.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "30" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "32.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "31" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "32.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "32" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "32.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "33" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "32.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "34" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "32.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "35" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "32.45", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "36" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "32.59", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "37" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "32.62", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "38" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "32.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "39" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "32.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "40" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "32.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "41" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "32.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "42" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "32.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "43" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "32.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "44" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "32.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "45" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "32.45", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "46" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "32.59", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "47" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "32.62", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "48" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "32.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "49" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "6.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "50" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "37.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "51" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "38.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "52" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "39.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "53" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "39.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "54" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "39.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "55" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp", "pos" : "36.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } } } @@ -1296,6 +1352,24 @@ "nodeId" : 3, "unqualifiedName" : "FW_FIXED_LENGTH_STRING_SIZE" } + }, + "58" : { + "Module" : { + "nodeId" : 55, + "unqualifiedName" : "Fw" + } + }, + "59" : { + "Module" : { + "nodeId" : 55, + "unqualifiedName" : "Fw" + } + }, + "60" : { + "Module" : { + "nodeId" : 55, + "unqualifiedName" : "Fw" + } } }, "valueMap" : { diff --git a/compiler/tools/fpp-to-json/test/commands_no_format.ref.txt b/compiler/tools/fpp-to-json/test/commands_no_format.ref.txt index 27de45fbf2..962d6b475d 100644 --- a/compiler/tools/fpp-to-json/test/commands_no_format.ref.txt +++ b/compiler/tools/fpp-to-json/test/commands_no_format.ref.txt @@ -1,3 +1,3 @@ {"fppVersion":"[ fpp version ]","ast":[{"members":[[[],{"DefAliasType":{"node":{"AstNode":{"data":{"name":"FwSizeStoreType","typeName":{"AstNode":{"data":{"TypeNameInt":{"name":{"U16":{}}}},"id":0}},"isDictionaryDef":false},"id":1}}}},[]],[[],{"DefConstant":{"node":{"AstNode":{"data":{"name":"FW_FIXED_LENGTH_STRING_SIZE","value":{"AstNode":{"data":{"ExprLiteralInt":{"value":"256"}},"id":2}},"isDictionaryDef":false},"id":3}}}},[]],[["A component for illustrating priority and queue full behavior for async","commands"],{"DefComponent":{"node":{"AstNode":{"data":{"kind":{"Active":{}},"name":"PriorityQueueFull","members":[[["Command registration"],{"SpecPortInstance":{"node":{"AstNode":{"data":{"Special":{"inputKind":"None","kind":{"CommandReg":{}},"name":"cmdRegOut","priority":"None","queueFull":"None"}},"id":4}}}},[]],[["Command input"],{"SpecPortInstance":{"node":{"AstNode":{"data":{"Special":{"inputKind":"None","kind":{"CommandRecv":{}},"name":"cmdIn","priority":"None","queueFull":"None"}},"id":5}}}},[]],[["Command response"],{"SpecPortInstance":{"node":{"AstNode":{"data":{"Special":{"inputKind":"None","kind":{"CommandResp":{}},"name":"cmdResponseOut","priority":"None","queueFull":"None"}},"id":6}}}},[]],[["Command with priority"],{"SpecCommand":{"node":{"AstNode":{"data":{"kind":{"Async":{}},"name":"COMMAND_1","params":[],"opcode":"None","priority":{"Some":{"AstNode":{"data":{"ExprLiteralInt":{"value":"10"}},"id":7}}},"queueFull":"None"},"id":8}}}},[]],[["Command with formal parameters and priority"],{"SpecCommand":{"node":{"AstNode":{"data":{"kind":{"Async":{}},"name":"COMMAND_2","params":[[[],{"AstNode":{"data":{"kind":{"Value":{}},"name":"a","typeName":{"AstNode":{"data":{"TypeNameInt":{"name":{"U32":{}}}},"id":9}}},"id":10}},[]],[[],{"AstNode":{"data":{"kind":{"Value":{}},"name":"b","typeName":{"AstNode":{"data":{"TypeNameFloat":{"name":{"F32":{}}}},"id":15}}},"id":16}},[]]],"opcode":"None","priority":{"Some":{"AstNode":{"data":{"ExprLiteralInt":{"value":"20"}},"id":17}}},"queueFull":"None"},"id":18}}}},[]],[["Command with formal parameters, opcode, priority, and queue full behavior"],{"SpecCommand":{"node":{"AstNode":{"data":{"kind":{"Async":{}},"name":"COMMAND_3","params":[[[],{"AstNode":{"data":{"kind":{"Value":{}},"name":"a","typeName":{"AstNode":{"data":{"TypeNameString":{"size":"None"}},"id":43}}},"id":44}},[]]],"opcode":{"Some":{"AstNode":{"data":{"ExprLiteralInt":{"value":"0x10"}},"id":45}}},"priority":{"Some":{"AstNode":{"data":{"ExprLiteralInt":{"value":"30"}},"id":46}}},"queueFull":{"Some":{"AstNode":{"data":{"Drop":{}},"id":47}}}},"id":48}}}},[]]]},"id":49}}}},[]],[[],{"DefModule":{"node":{"AstNode":{"data":{"name":"Fw","members":[[[],{"DefPort":{"node":{"AstNode":{"data":{"name":"Cmd","params":[],"returnType":"None"},"id":50}}}},[]],[[],{"DefPort":{"node":{"AstNode":{"data":{"name":"CmdReg","params":[],"returnType":"None"},"id":51}}}},[]],[[],{"DefPort":{"node":{"AstNode":{"data":{"name":"CmdResponse","params":[],"returnType":"None"},"id":54}}}},[]]]},"id":55}}}},[]]]}]} -{"fppVersion":"[ fpp version ]","locationMap":{"0":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"1.24","includingLoc":"None"},"1":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"1.1","includingLoc":"None"},"2":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"2.40","includingLoc":"None"},"3":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"2.1","includingLoc":"None"},"4":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"13.3","includingLoc":"None"},"5":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"16.3","includingLoc":"None"},"6":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"19.3","includingLoc":"None"},"7":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"26.36","includingLoc":"None"},"8":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"26.3","includingLoc":"None"},"9":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"29.30","includingLoc":"None"},"10":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"29.27","includingLoc":"None"},"11":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"29.38","includingLoc":"None"},"12":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"29.35","includingLoc":"None"},"13":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"29.38","includingLoc":"None"},"14":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"29.35","includingLoc":"None"},"15":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"29.38","includingLoc":"None"},"16":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"29.35","includingLoc":"None"},"17":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"29.52","includingLoc":"None"},"18":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"29.3","includingLoc":"None"},"19":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.30","includingLoc":"None"},"20":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.27","includingLoc":"None"},"21":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.30","includingLoc":"None"},"22":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.27","includingLoc":"None"},"23":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.30","includingLoc":"None"},"24":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.27","includingLoc":"None"},"25":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.45","includingLoc":"None"},"26":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.59","includingLoc":"None"},"27":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.62","includingLoc":"None"},"28":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.3","includingLoc":"None"},"29":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.30","includingLoc":"None"},"30":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.27","includingLoc":"None"},"31":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.30","includingLoc":"None"},"32":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.27","includingLoc":"None"},"33":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.30","includingLoc":"None"},"34":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.27","includingLoc":"None"},"35":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.45","includingLoc":"None"},"36":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.59","includingLoc":"None"},"37":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.62","includingLoc":"None"},"38":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.3","includingLoc":"None"},"39":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.30","includingLoc":"None"},"40":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.27","includingLoc":"None"},"41":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.30","includingLoc":"None"},"42":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.27","includingLoc":"None"},"43":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.30","includingLoc":"None"},"44":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.27","includingLoc":"None"},"45":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.45","includingLoc":"None"},"46":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.59","includingLoc":"None"},"47":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.62","includingLoc":"None"},"48":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.3","includingLoc":"None"},"49":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"6.1","includingLoc":"None"},"50":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"37.3","includingLoc":"None"},"51":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"38.3","includingLoc":"None"},"52":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"39.3","includingLoc":"None"},"53":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"39.3","includingLoc":"None"},"54":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"39.3","includingLoc":"None"},"55":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"36.1","includingLoc":"None"}}} -{"fppVersion":"[ fpp version ]","analysis":{"componentInstanceMap":{},"componentMap":{"49":{"aNode":{"astNodeId":49},"portInterface":{"instanceType":"component","portMap":{"cmdIn":{"Special":{"aNode":{"astNodeId":5},"specifier":{"inputKind":"None","kind":{"CommandRecv":{}},"name":"cmdIn","priority":"None","queueFull":"None"},"symbol":{"Port":{"nodeId":50,"unqualifiedName":"Cmd"}},"priority":"None","queueFull":"None","importNodeIds":[]}},"cmdRegOut":{"Special":{"aNode":{"astNodeId":4},"specifier":{"inputKind":"None","kind":{"CommandReg":{}},"name":"cmdRegOut","priority":"None","queueFull":"None"},"symbol":{"Port":{"nodeId":51,"unqualifiedName":"CmdReg"}},"priority":"None","queueFull":"None","importNodeIds":[]}},"cmdResponseOut":{"Special":{"aNode":{"astNodeId":6},"specifier":{"inputKind":"None","kind":{"CommandResp":{}},"name":"cmdResponseOut","priority":"None","queueFull":"None"},"symbol":{"Port":{"nodeId":54,"unqualifiedName":"CmdResponse"}},"priority":"None","queueFull":"None","importNodeIds":[]}}},"specialPortMap":{"command recv":{"aNode":{"astNodeId":5},"specifier":{"inputKind":"None","kind":{"CommandRecv":{}},"name":"cmdIn","priority":"None","queueFull":"None"},"symbol":{"Port":{"nodeId":50,"unqualifiedName":"Cmd"}},"priority":"None","queueFull":"None","importNodeIds":[]},"command reg":{"aNode":{"astNodeId":4},"specifier":{"inputKind":"None","kind":{"CommandReg":{}},"name":"cmdRegOut","priority":"None","queueFull":"None"},"symbol":{"Port":{"nodeId":51,"unqualifiedName":"CmdReg"}},"priority":"None","queueFull":"None","importNodeIds":[]},"command resp":{"aNode":{"astNodeId":6},"specifier":{"inputKind":"None","kind":{"CommandResp":{}},"name":"cmdResponseOut","priority":"None","queueFull":"None"},"symbol":{"Port":{"nodeId":54,"unqualifiedName":"CmdResponse"}},"priority":"None","queueFull":"None","importNodeIds":[]}}},"commandMap":{"0":{"NonParam":{"aNode":{"astNodeId":8},"kind":{"Async":{"priority":{"Some":10},"queueFull":{"Assert":{}}}}}},"1":{"NonParam":{"aNode":{"astNodeId":18},"kind":{"Async":{"priority":{"Some":20},"queueFull":{"Assert":{}}}}}},"16":{"NonParam":{"aNode":{"astNodeId":48},"kind":{"Async":{"priority":{"Some":30},"queueFull":{"Drop":{}}}}}}},"defaultOpcode":17,"tlmChannelMap":{},"tlmChannelNameMap":{},"defaultTlmChannelId":0,"eventMap":{},"defaultEventId":0,"paramMap":{},"specPortMatchingList":[],"stateMachineInstanceMap":{},"portMatchingList":[],"defaultParamId":0,"containerMap":{},"defaultContainerId":0,"recordMap":{},"defaultRecordId":0}},"frameworkDefinitions":{"constantMap":{"FW_FIXED_LENGTH_STRING_SIZE":{"node":{"astNodeId":3}}},"typeMap":{"FwSizeStoreType":{"AliasType":{"node":{"astNodeId":1}}}}},"includedFileSet":[],"inputFileSet":["[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp"],"locationSpecifierMap":[],"parentSymbolMap":{"50":{"Module":{"nodeId":55,"unqualifiedName":"Fw"}},"51":{"Module":{"nodeId":55,"unqualifiedName":"Fw"}},"54":{"Module":{"nodeId":55,"unqualifiedName":"Fw"}}},"symbolScopeMap":{"49":{"map":{}},"55":{"map":{"Port":{"map":{"Cmd":{"Port":{"nodeId":50,"unqualifiedName":"Cmd"}},"CmdReg":{"Port":{"nodeId":51,"unqualifiedName":"CmdReg"}},"CmdResponse":{"Port":{"nodeId":54,"unqualifiedName":"CmdResponse"}}}}}}},"topologyMap":{},"typeMap":{"0":{"Int":{"PrimitiveInt":{"kind":{"U16":{}}}}},"1":{"AliasType":{"node":{"astNodeId":1},"aliasType":{"Int":{"PrimitiveInt":{"kind":{"U16":{}}}}}}},"2":{"Int":{"Integer":{}}},"3":{"Int":{"Integer":{}}},"7":{"Int":{"Integer":{}}},"9":{"Int":{"PrimitiveInt":{"kind":{"U32":{}}}}},"15":{"Primitive":{"Float":{"kind":{"F32":{}}}}},"17":{"Int":{"Integer":{}}},"43":{"String":{"size":"None"}},"45":{"Int":{"Integer":{}}},"46":{"Int":{"Integer":{}}},"56":{"AliasType":{"node":{"astNodeId":1},"aliasType":{"Int":{"PrimitiveInt":{"kind":{"U16":{}}}}}}},"57":{"Int":{"Integer":{}}}},"useDefMap":{"4":{"Port":{"nodeId":51,"unqualifiedName":"CmdReg"}},"5":{"Port":{"nodeId":50,"unqualifiedName":"Cmd"}},"6":{"Port":{"nodeId":54,"unqualifiedName":"CmdResponse"}},"56":{"AliasType":{"nodeId":1,"unqualifiedName":"FwSizeStoreType"}},"57":{"Constant":{"nodeId":3,"unqualifiedName":"FW_FIXED_LENGTH_STRING_SIZE"}}},"valueMap":{"2":{"Integer":{"value":256}},"3":{"Integer":{"value":256}},"7":{"Integer":{"value":10}},"17":{"Integer":{"value":20}},"45":{"Integer":{"value":16}},"46":{"Integer":{"value":30}},"57":{"Integer":{"value":256}}},"stateMachineMap":{},"dictionarySymbolSet":[],"interfaceMap":{},"dictionaryMap":{}}} +{"fppVersion":"[ fpp version ]","locationMap":{"0":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"1.24","includingLoc":"None","expandingLoc":"None"},"1":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"1.1","includingLoc":"None","expandingLoc":"None"},"2":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"2.40","includingLoc":"None","expandingLoc":"None"},"3":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"2.1","includingLoc":"None","expandingLoc":"None"},"4":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"13.3","includingLoc":"None","expandingLoc":"None"},"5":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"16.3","includingLoc":"None","expandingLoc":"None"},"6":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"19.3","includingLoc":"None","expandingLoc":"None"},"7":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"26.36","includingLoc":"None","expandingLoc":"None"},"8":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"26.3","includingLoc":"None","expandingLoc":"None"},"9":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"29.30","includingLoc":"None","expandingLoc":"None"},"10":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"29.27","includingLoc":"None","expandingLoc":"None"},"11":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"29.38","includingLoc":"None","expandingLoc":"None"},"12":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"29.35","includingLoc":"None","expandingLoc":"None"},"13":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"29.38","includingLoc":"None","expandingLoc":"None"},"14":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"29.35","includingLoc":"None","expandingLoc":"None"},"15":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"29.38","includingLoc":"None","expandingLoc":"None"},"16":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"29.35","includingLoc":"None","expandingLoc":"None"},"17":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"29.52","includingLoc":"None","expandingLoc":"None"},"18":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"29.3","includingLoc":"None","expandingLoc":"None"},"19":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.30","includingLoc":"None","expandingLoc":"None"},"20":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.27","includingLoc":"None","expandingLoc":"None"},"21":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.30","includingLoc":"None","expandingLoc":"None"},"22":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.27","includingLoc":"None","expandingLoc":"None"},"23":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.30","includingLoc":"None","expandingLoc":"None"},"24":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.27","includingLoc":"None","expandingLoc":"None"},"25":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.45","includingLoc":"None","expandingLoc":"None"},"26":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.59","includingLoc":"None","expandingLoc":"None"},"27":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.62","includingLoc":"None","expandingLoc":"None"},"28":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.3","includingLoc":"None","expandingLoc":"None"},"29":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.30","includingLoc":"None","expandingLoc":"None"},"30":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.27","includingLoc":"None","expandingLoc":"None"},"31":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.30","includingLoc":"None","expandingLoc":"None"},"32":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.27","includingLoc":"None","expandingLoc":"None"},"33":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.30","includingLoc":"None","expandingLoc":"None"},"34":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.27","includingLoc":"None","expandingLoc":"None"},"35":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.45","includingLoc":"None","expandingLoc":"None"},"36":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.59","includingLoc":"None","expandingLoc":"None"},"37":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.62","includingLoc":"None","expandingLoc":"None"},"38":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.3","includingLoc":"None","expandingLoc":"None"},"39":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.30","includingLoc":"None","expandingLoc":"None"},"40":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.27","includingLoc":"None","expandingLoc":"None"},"41":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.30","includingLoc":"None","expandingLoc":"None"},"42":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.27","includingLoc":"None","expandingLoc":"None"},"43":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.30","includingLoc":"None","expandingLoc":"None"},"44":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.27","includingLoc":"None","expandingLoc":"None"},"45":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.45","includingLoc":"None","expandingLoc":"None"},"46":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.59","includingLoc":"None","expandingLoc":"None"},"47":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.62","includingLoc":"None","expandingLoc":"None"},"48":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"32.3","includingLoc":"None","expandingLoc":"None"},"49":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"6.1","includingLoc":"None","expandingLoc":"None"},"50":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"37.3","includingLoc":"None","expandingLoc":"None"},"51":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"38.3","includingLoc":"None","expandingLoc":"None"},"52":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"39.3","includingLoc":"None","expandingLoc":"None"},"53":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"39.3","includingLoc":"None","expandingLoc":"None"},"54":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"39.3","includingLoc":"None","expandingLoc":"None"},"55":{"file":"[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp","pos":"36.1","includingLoc":"None","expandingLoc":"None"}}} +{"fppVersion":"[ fpp version ]","analysis":{"componentInstanceMap":{},"componentMap":{"49":{"aNode":{"astNodeId":49},"portInterface":{"instanceType":"component","portMap":{"cmdIn":{"Special":{"aNode":{"astNodeId":5},"specifier":{"inputKind":"None","kind":{"CommandRecv":{}},"name":"cmdIn","priority":"None","queueFull":"None"},"symbol":{"Port":{"nodeId":50,"unqualifiedName":"Cmd"}},"priority":"None","queueFull":"None","importNodeIds":[]}},"cmdRegOut":{"Special":{"aNode":{"astNodeId":4},"specifier":{"inputKind":"None","kind":{"CommandReg":{}},"name":"cmdRegOut","priority":"None","queueFull":"None"},"symbol":{"Port":{"nodeId":51,"unqualifiedName":"CmdReg"}},"priority":"None","queueFull":"None","importNodeIds":[]}},"cmdResponseOut":{"Special":{"aNode":{"astNodeId":6},"specifier":{"inputKind":"None","kind":{"CommandResp":{}},"name":"cmdResponseOut","priority":"None","queueFull":"None"},"symbol":{"Port":{"nodeId":54,"unqualifiedName":"CmdResponse"}},"priority":"None","queueFull":"None","importNodeIds":[]}}},"specialPortMap":{"command recv":{"aNode":{"astNodeId":5},"specifier":{"inputKind":"None","kind":{"CommandRecv":{}},"name":"cmdIn","priority":"None","queueFull":"None"},"symbol":{"Port":{"nodeId":50,"unqualifiedName":"Cmd"}},"priority":"None","queueFull":"None","importNodeIds":[]},"command reg":{"aNode":{"astNodeId":4},"specifier":{"inputKind":"None","kind":{"CommandReg":{}},"name":"cmdRegOut","priority":"None","queueFull":"None"},"symbol":{"Port":{"nodeId":51,"unqualifiedName":"CmdReg"}},"priority":"None","queueFull":"None","importNodeIds":[]},"command resp":{"aNode":{"astNodeId":6},"specifier":{"inputKind":"None","kind":{"CommandResp":{}},"name":"cmdResponseOut","priority":"None","queueFull":"None"},"symbol":{"Port":{"nodeId":54,"unqualifiedName":"CmdResponse"}},"priority":"None","queueFull":"None","importNodeIds":[]}}},"commandMap":{"0":{"NonParam":{"aNode":{"astNodeId":8},"kind":{"Async":{"priority":{"Some":10},"queueFull":{"Assert":{}}}}}},"1":{"NonParam":{"aNode":{"astNodeId":18},"kind":{"Async":{"priority":{"Some":20},"queueFull":{"Assert":{}}}}}},"16":{"NonParam":{"aNode":{"astNodeId":48},"kind":{"Async":{"priority":{"Some":30},"queueFull":{"Drop":{}}}}}}},"defaultOpcode":17,"tlmChannelMap":{},"tlmChannelNameMap":{},"defaultTlmChannelId":0,"eventMap":{},"defaultEventId":0,"paramMap":{},"specPortMatchingList":[],"stateMachineInstanceMap":{},"portMatchingList":[],"defaultParamId":0,"containerMap":{},"defaultContainerId":0,"recordMap":{},"defaultRecordId":0}},"frameworkDefinitions":{"constantMap":{"FW_FIXED_LENGTH_STRING_SIZE":{"node":{"astNodeId":3}}},"typeMap":{"FwSizeStoreType":{"AliasType":{"node":{"astNodeId":1}}}}},"includedFileSet":[],"inputFileSet":["[ local path prefix ]/compiler/tools/fpp-to-json/test/commands.fpp"],"locationSpecifierMap":[],"parentSymbolMap":{"50":{"Module":{"nodeId":55,"unqualifiedName":"Fw"}},"51":{"Module":{"nodeId":55,"unqualifiedName":"Fw"}},"54":{"Module":{"nodeId":55,"unqualifiedName":"Fw"}}},"symbolScopeMap":{"49":{"map":{}},"55":{"map":{"Port":{"map":{"Cmd":{"Port":{"nodeId":50,"unqualifiedName":"Cmd"}},"CmdReg":{"Port":{"nodeId":51,"unqualifiedName":"CmdReg"}},"CmdResponse":{"Port":{"nodeId":54,"unqualifiedName":"CmdResponse"}}}}}}},"topologyMap":{},"typeMap":{"0":{"Int":{"PrimitiveInt":{"kind":{"U16":{}}}}},"1":{"AliasType":{"node":{"astNodeId":1},"aliasType":{"Int":{"PrimitiveInt":{"kind":{"U16":{}}}}}}},"2":{"Int":{"Integer":{}}},"3":{"Int":{"Integer":{}}},"7":{"Int":{"Integer":{}}},"9":{"Int":{"PrimitiveInt":{"kind":{"U32":{}}}}},"15":{"Primitive":{"Float":{"kind":{"F32":{}}}}},"17":{"Int":{"Integer":{}}},"43":{"String":{"size":"None"}},"45":{"Int":{"Integer":{}}},"46":{"Int":{"Integer":{}}},"56":{"AliasType":{"node":{"astNodeId":1},"aliasType":{"Int":{"PrimitiveInt":{"kind":{"U16":{}}}}}}},"57":{"Int":{"Integer":{}}}},"useDefMap":{"4":{"Port":{"nodeId":51,"unqualifiedName":"CmdReg"}},"5":{"Port":{"nodeId":50,"unqualifiedName":"Cmd"}},"6":{"Port":{"nodeId":54,"unqualifiedName":"CmdResponse"}},"56":{"AliasType":{"nodeId":1,"unqualifiedName":"FwSizeStoreType"}},"57":{"Constant":{"nodeId":3,"unqualifiedName":"FW_FIXED_LENGTH_STRING_SIZE"}},"58":{"Module":{"nodeId":55,"unqualifiedName":"Fw"}},"59":{"Module":{"nodeId":55,"unqualifiedName":"Fw"}},"60":{"Module":{"nodeId":55,"unqualifiedName":"Fw"}}},"valueMap":{"2":{"Integer":{"value":256}},"3":{"Integer":{"value":256}},"7":{"Integer":{"value":10}},"17":{"Integer":{"value":20}},"45":{"Integer":{"value":16}},"46":{"Integer":{"value":30}},"57":{"Integer":{"value":256}}},"stateMachineMap":{},"dictionarySymbolSet":[],"interfaceMap":{},"dictionaryMap":{}}} diff --git a/compiler/tools/fpp-to-json/test/constTypesComponents.ref.txt b/compiler/tools/fpp-to-json/test/constTypesComponents.ref.txt index e5e79f8383..6cfab9275b 100644 --- a/compiler/tools/fpp-to-json/test/constTypesComponents.ref.txt +++ b/compiler/tools/fpp-to-json/test/constTypesComponents.ref.txt @@ -333,212 +333,254 @@ "0" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constTypesComponents.fpp", "pos" : "10.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "1" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constTypesComponents.fpp", "pos" : "10.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "2" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constTypesComponents.fpp", "pos" : "11.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "3" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constTypesComponents.fpp", "pos" : "11.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "4" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constTypesComponents.fpp", "pos" : "9.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "5" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constTypesComponents.fpp", "pos" : "19.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "6" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constTypesComponents.fpp", "pos" : "22.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "7" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constTypesComponents.fpp", "pos" : "25.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "8" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constTypesComponents.fpp", "pos" : "33.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "9" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constTypesComponents.fpp", "pos" : "33.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "10" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constTypesComponents.fpp", "pos" : "33.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "11" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constTypesComponents.fpp", "pos" : "33.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "12" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constTypesComponents.fpp", "pos" : "33.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "13" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constTypesComponents.fpp", "pos" : "33.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "14" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constTypesComponents.fpp", "pos" : "33.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "15" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constTypesComponents.fpp", "pos" : "33.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "16" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constTypesComponents.fpp", "pos" : "32.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "17" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constTypesComponents.fpp", "pos" : "33.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "18" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constTypesComponents.fpp", "pos" : "33.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "19" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constTypesComponents.fpp", "pos" : "33.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "20" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constTypesComponents.fpp", "pos" : "33.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "21" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constTypesComponents.fpp", "pos" : "33.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "22" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constTypesComponents.fpp", "pos" : "33.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "23" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constTypesComponents.fpp", "pos" : "33.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "24" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constTypesComponents.fpp", "pos" : "33.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "25" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constTypesComponents.fpp", "pos" : "32.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "26" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constTypesComponents.fpp", "pos" : "33.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "27" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constTypesComponents.fpp", "pos" : "33.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "28" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constTypesComponents.fpp", "pos" : "33.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "29" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constTypesComponents.fpp", "pos" : "33.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "30" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constTypesComponents.fpp", "pos" : "33.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "31" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constTypesComponents.fpp", "pos" : "33.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "32" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constTypesComponents.fpp", "pos" : "33.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "33" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constTypesComponents.fpp", "pos" : "33.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "34" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constTypesComponents.fpp", "pos" : "32.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "35" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constTypesComponents.fpp", "pos" : "2.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "36" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constTypesComponents.fpp", "pos" : "39.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "37" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constTypesComponents.fpp", "pos" : "40.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "38" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constTypesComponents.fpp", "pos" : "41.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "39" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constTypesComponents.fpp", "pos" : "41.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "40" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constTypesComponents.fpp", "pos" : "41.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "41" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constTypesComponents.fpp", "pos" : "38.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } } } @@ -1034,6 +1076,24 @@ "nodeId" : 4, "unqualifiedName" : "State" } + }, + "42" : { + "Module" : { + "nodeId" : 41, + "unqualifiedName" : "Fw" + } + }, + "43" : { + "Module" : { + "nodeId" : 41, + "unqualifiedName" : "Fw" + } + }, + "44" : { + "Module" : { + "nodeId" : 41, + "unqualifiedName" : "Fw" + } } }, "valueMap" : { diff --git a/compiler/tools/fpp-to-json/test/constants.ref.txt b/compiler/tools/fpp-to-json/test/constants.ref.txt index b09e2b7679..ee0e194e42 100644 --- a/compiler/tools/fpp-to-json/test/constants.ref.txt +++ b/compiler/tools/fpp-to-json/test/constants.ref.txt @@ -1007,407 +1007,488 @@ "0" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "1.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "1" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "1.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "2" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "2.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "3" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "2.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "4" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "4.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "5" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "4.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "6" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "6.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "7" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "6.19", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "8" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "6.22", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "9" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "6.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "10" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "6.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "11" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "7.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "12" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "7.19", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "13" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "7.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "14" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "7.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "15" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "8.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "16" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "8.21", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "17" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "8.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "18" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "8.28", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "19" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "8.31", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "20" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "8.26", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "21" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "8.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "22" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "8.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "23" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "10.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "24" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "10.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "25" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "10.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "26" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "10.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "27" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "11.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "28" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "11.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "29" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "11.19", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "30" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "11.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "31" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "11.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "32" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "11.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "33" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "13.20", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "34" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "13.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "35" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "13.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "36" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "13.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "37" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "13.38", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "38" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "13.34", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "39" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "13.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "40" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "13.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "41" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "14.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "42" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "14.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "43" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "16.22", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "44" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "16.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "45" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "16.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "46" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "16.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "47" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "16.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "48" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "16.40", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "49" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "16.36", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "50" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "16.34", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "51" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "16.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "52" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "16.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "53" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "18.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "54" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "18.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "55" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "19.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "56" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "19.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "57" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "21.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "58" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "21.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "59" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "21.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "60" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "22.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "61" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "22.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "62" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "22.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "63" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "22.22", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "64" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "22.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "65" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "22.20", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "66" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "22.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "67" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "23.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "68" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "23.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "69" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "23.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "70" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "25.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "71" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "25.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "72" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "26.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "73" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "26.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "74" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "30.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "75" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "30.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "76" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "30.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "77" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "30.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "78" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "33.21", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "79" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "33.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "80" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/constants.fpp", "pos" : "33.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } } } @@ -2265,7 +2346,8 @@ "value" : 3 } } - ] + ], + "scalar" : "None" } }, "10" : { @@ -2286,7 +2368,8 @@ "value" : 3 } } - ] + ], + "scalar" : "None" } }, "11" : { @@ -2327,7 +2410,8 @@ } } } - ] + ], + "scalar" : "None" } }, "14" : { @@ -2353,7 +2437,8 @@ } } } - ] + ], + "scalar" : "None" } }, "15" : { @@ -2379,7 +2464,8 @@ "value" : 2 } } - ] + ], + "scalar" : "None" } }, "18" : { @@ -2405,7 +2491,8 @@ "value" : 4 } } - ] + ], + "scalar" : "None" } }, "21" : { @@ -2424,7 +2511,8 @@ "value" : 2 } } - ] + ], + "scalar" : "None" } }, { @@ -2440,10 +2528,12 @@ "value" : 4 } } - ] + ], + "scalar" : "None" } } - ] + ], + "scalar" : "None" } }, "22" : { @@ -2462,7 +2552,8 @@ "value" : 2 } } - ] + ], + "scalar" : "None" } }, { @@ -2478,10 +2569,12 @@ "value" : 4 } } - ] + ], + "scalar" : "None" } } - ] + ], + "scalar" : "None" } }, "23" : { @@ -2500,7 +2593,8 @@ "value" : 2 } } - ] + ], + "scalar" : "None" } }, { @@ -2516,10 +2610,12 @@ "value" : 4 } } - ] + ], + "scalar" : "None" } } - ] + ], + "scalar" : "None" } }, "24" : { @@ -2540,7 +2636,8 @@ "value" : 2 } } - ] + ], + "scalar" : "None" } }, "26" : { @@ -2556,7 +2653,8 @@ "value" : 2 } } - ] + ], + "scalar" : "None" } }, "27" : { @@ -2575,7 +2673,8 @@ "value" : 2 } } - ] + ], + "scalar" : "None" } }, { @@ -2591,10 +2690,12 @@ "value" : 4 } } - ] + ], + "scalar" : "None" } } - ] + ], + "scalar" : "None" } }, "28" : { @@ -2620,7 +2721,8 @@ "value" : 2 } } - ] + ], + "scalar" : "None" } }, "31" : { @@ -2781,7 +2883,8 @@ } } } - ] + ], + "scalar" : "None" } }, "52" : { @@ -2819,7 +2922,8 @@ } } } - ] + ], + "scalar" : "None" } }, "53" : { diff --git a/compiler/tools/fpp-to-json/test/dataProducts.ref.txt b/compiler/tools/fpp-to-json/test/dataProducts.ref.txt index 423b7ec69b..48b79699b9 100644 --- a/compiler/tools/fpp-to-json/test/dataProducts.ref.txt +++ b/compiler/tools/fpp-to-json/test/dataProducts.ref.txt @@ -437,147 +437,176 @@ "0" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/dataProducts.fpp", "pos" : "3.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "1" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/dataProducts.fpp", "pos" : "4.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "2" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/dataProducts.fpp", "pos" : "5.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "3" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/dataProducts.fpp", "pos" : "6.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "4" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/dataProducts.fpp", "pos" : "6.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "5" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/dataProducts.fpp", "pos" : "6.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "6" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/dataProducts.fpp", "pos" : "1.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "7" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/dataProducts.fpp", "pos" : "12.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "8" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/dataProducts.fpp", "pos" : "13.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "9" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/dataProducts.fpp", "pos" : "14.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "10" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/dataProducts.fpp", "pos" : "15.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "11" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/dataProducts.fpp", "pos" : "18.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "12" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/dataProducts.fpp", "pos" : "21.31", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "13" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/dataProducts.fpp", "pos" : "21.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "14" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/dataProducts.fpp", "pos" : "24.35", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "15" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/dataProducts.fpp", "pos" : "24.58", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "16" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/dataProducts.fpp", "pos" : "24.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "17" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/dataProducts.fpp", "pos" : "27.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "18" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/dataProducts.fpp", "pos" : "27.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "19" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/dataProducts.fpp", "pos" : "30.22", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "20" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/dataProducts.fpp", "pos" : "30.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "21" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/dataProducts.fpp", "pos" : "30.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "22" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/dataProducts.fpp", "pos" : "30.22", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "23" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/dataProducts.fpp", "pos" : "30.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "24" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/dataProducts.fpp", "pos" : "30.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "25" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/dataProducts.fpp", "pos" : "30.22", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "26" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/dataProducts.fpp", "pos" : "30.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "27" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/dataProducts.fpp", "pos" : "30.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "28" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/dataProducts.fpp", "pos" : "10.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } } } @@ -1086,6 +1115,30 @@ "nodeId" : 5, "unqualifiedName" : "Time" } + }, + "29" : { + "Module" : { + "nodeId" : 6, + "unqualifiedName" : "Fw" + } + }, + "30" : { + "Module" : { + "nodeId" : 6, + "unqualifiedName" : "Fw" + } + }, + "31" : { + "Module" : { + "nodeId" : 6, + "unqualifiedName" : "Fw" + } + }, + "32" : { + "Module" : { + "nodeId" : 6, + "unqualifiedName" : "Fw" + } } }, "valueMap" : { diff --git a/compiler/tools/fpp-to-json/test/enums.ref.txt b/compiler/tools/fpp-to-json/test/enums.ref.txt index 65f525d982..f137071080 100644 --- a/compiler/tools/fpp-to-json/test/enums.ref.txt +++ b/compiler/tools/fpp-to-json/test/enums.ref.txt @@ -388,177 +388,212 @@ "0" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/enums.fpp", "pos" : "2.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "1" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/enums.fpp", "pos" : "3.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "2" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/enums.fpp", "pos" : "4.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "3" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/enums.fpp", "pos" : "4.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "4" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/enums.fpp", "pos" : "4.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "5" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/enums.fpp", "pos" : "1.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "6" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/enums.fpp", "pos" : "6.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "7" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/enums.fpp", "pos" : "6.34", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "8" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/enums.fpp", "pos" : "6.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "9" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/enums.fpp", "pos" : "6.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "10" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/enums.fpp", "pos" : "8.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "11" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/enums.fpp", "pos" : "8.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "12" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/enums.fpp", "pos" : "8.21", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "13" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/enums.fpp", "pos" : "8.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "14" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/enums.fpp", "pos" : "8.28", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "15" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/enums.fpp", "pos" : "8.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "16" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/enums.fpp", "pos" : "8.28", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "17" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/enums.fpp", "pos" : "8.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "18" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/enums.fpp", "pos" : "8.28", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "19" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/enums.fpp", "pos" : "8.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "20" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/enums.fpp", "pos" : "8.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "21" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/enums.fpp", "pos" : "9.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "22" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/enums.fpp", "pos" : "9.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "23" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/enums.fpp", "pos" : "9.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "24" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/enums.fpp", "pos" : "9.20", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "25" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/enums.fpp", "pos" : "9.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "26" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/enums.fpp", "pos" : "9.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "27" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/enums.fpp", "pos" : "11.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "28" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/enums.fpp", "pos" : "11.19", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "29" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/enums.fpp", "pos" : "11.22", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "30" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/enums.fpp", "pos" : "11.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "31" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/enums.fpp", "pos" : "11.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "32" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/enums.fpp", "pos" : "11.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "33" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/enums.fpp", "pos" : "11.37", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "34" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/enums.fpp", "pos" : "11.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } } } diff --git a/compiler/tools/fpp-to-json/test/events.ref.txt b/compiler/tools/fpp-to-json/test/events.ref.txt index 69b02957d5..08fb0387d0 100644 --- a/compiler/tools/fpp-to-json/test/events.ref.txt +++ b/compiler/tools/fpp-to-json/test/events.ref.txt @@ -940,1022 +940,1226 @@ "0" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "9.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "1" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "12.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "2" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "15.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "3" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "24.8", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "4" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "25.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "5" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "23.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "6" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "30.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "7" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "30.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "8" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "30.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "9" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "30.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "10" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "33.8", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "11" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "34.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "12" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "29.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "13" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "39.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "14" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "38.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "15" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "39.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "16" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "38.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "17" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "39.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "18" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "38.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "19" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "2.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "20" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "52.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "21" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "55.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "22" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "58.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "23" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "66.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "24" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "67.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "25" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "68.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "26" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "68.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "27" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "65.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "28" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "72.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "29" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "72.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "30" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "72.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "31" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "72.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "32" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "75.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "33" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "76.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "34" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "77.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "35" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "78.22", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "36" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "78.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "37" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "78.34", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "38" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "78.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "39" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "78.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "40" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "77.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "41" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "71.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "42" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "83.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "43" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "83.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "44" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "83.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "45" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "83.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "46" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "84.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "47" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "84.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "48" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "84.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "49" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "84.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "50" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "85.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "51" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "85.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "52" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "85.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "53" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "85.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "54" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "88.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "55" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "89.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "56" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "82.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "57" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "93.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "58" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "93.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "59" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "93.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "60" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "93.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "61" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "96.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "62" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "97.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "63" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "92.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "64" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "93.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "65" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "93.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "66" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "93.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "67" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "93.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "68" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "96.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "69" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "97.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "70" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "92.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "71" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "93.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "72" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "93.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "73" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "93.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "74" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "93.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "75" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "96.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "76" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "97.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "77" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "92.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "78" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "45.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "79" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "52.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "80" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "55.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "81" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "58.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "82" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "66.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "83" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "67.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "84" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "68.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "85" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "68.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "86" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "65.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "87" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "72.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "88" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "72.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "89" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "72.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "90" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "72.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "91" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "75.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "92" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "76.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "93" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "77.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "94" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "78.22", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "95" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "78.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "96" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "78.34", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "97" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "78.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "98" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "78.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "99" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "77.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "100" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "71.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "101" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "83.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "102" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "83.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "103" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "83.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "104" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "83.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "105" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "84.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "106" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "84.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "107" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "84.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "108" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "84.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "109" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "85.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "110" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "85.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "111" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "85.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "112" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "85.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "113" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "88.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "114" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "89.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "115" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "82.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "116" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "93.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "117" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "93.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "118" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "93.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "119" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "93.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "120" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "96.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "121" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "97.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "122" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "92.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "123" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "93.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "124" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "93.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "125" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "93.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "126" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "93.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "127" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "96.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "128" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "97.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "129" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "92.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "130" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "93.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "131" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "93.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "132" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "93.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "133" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "93.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "134" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "96.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "135" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "97.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "136" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "92.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "137" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "45.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "138" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "52.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "139" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "55.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "140" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "58.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "141" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "66.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "142" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "67.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "143" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "68.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "144" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "68.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "145" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "65.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "146" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "72.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "147" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "72.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "148" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "72.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "149" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "72.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "150" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "75.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "151" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "76.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "152" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "77.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "153" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "78.22", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "154" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "78.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "155" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "78.34", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "156" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "78.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "157" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "78.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "158" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "77.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "159" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "71.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "160" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "83.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "161" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "83.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "162" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "83.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "163" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "83.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "164" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "84.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "165" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "84.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "166" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "84.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "167" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "84.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "168" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "85.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "169" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "85.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "170" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "85.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "171" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "85.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "172" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "88.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "173" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "89.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "174" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "82.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "175" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "93.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "176" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "93.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "177" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "93.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "178" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "93.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "179" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "96.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "180" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "97.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "181" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "92.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "182" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "93.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "183" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "93.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "184" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "93.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "185" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "93.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "186" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "96.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "187" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "97.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "188" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "92.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "189" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "93.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "190" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "93.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "191" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "93.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "192" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "93.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "193" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "96.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "194" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "97.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "195" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "92.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "196" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "45.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "197" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "43.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "198" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "103.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "199" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "104.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "200" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "105.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "201" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "105.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "202" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "105.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "203" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/events.fpp", "pos" : "102.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } } } @@ -2850,6 +3054,42 @@ "nodeId" : 202, "unqualifiedName" : "Time" } + }, + "204" : { + "Module" : { + "nodeId" : 203, + "unqualifiedName" : "Fw" + } + }, + "205" : { + "Module" : { + "nodeId" : 203, + "unqualifiedName" : "Fw" + } + }, + "206" : { + "Module" : { + "nodeId" : 203, + "unqualifiedName" : "Fw" + } + }, + "207" : { + "Module" : { + "nodeId" : 203, + "unqualifiedName" : "Fw" + } + }, + "208" : { + "Module" : { + "nodeId" : 203, + "unqualifiedName" : "Fw" + } + }, + "209" : { + "Module" : { + "nodeId" : 203, + "unqualifiedName" : "Fw" + } } }, "valueMap" : { diff --git a/compiler/tools/fpp-to-json/test/frameworkDefs.ref.txt b/compiler/tools/fpp-to-json/test/frameworkDefs.ref.txt index 9896050902..29d0888ea1 100644 --- a/compiler/tools/fpp-to-json/test/frameworkDefs.ref.txt +++ b/compiler/tools/fpp-to-json/test/frameworkDefs.ref.txt @@ -1490,1082 +1490,1298 @@ "0" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "1.19", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "1" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "1.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "2" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "2.21", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "3" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "2.21", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "4" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "2.21", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "5" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "2.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "6" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "3.19", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "7" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "3.19", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "8" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "3.19", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "9" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "3.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "10" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "4.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "11" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "4.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "12" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "4.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "13" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "4.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "14" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "5.22", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "15" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "5.22", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "16" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "5.22", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "17" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "5.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "18" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "6.21", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "19" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "6.21", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "20" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "6.21", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "21" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "6.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "22" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "7.31", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "23" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "7.31", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "24" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "7.31", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "25" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "7.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "26" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "8.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "27" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "8.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "28" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "9.19", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "29" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "9.19", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "30" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "9.19", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "31" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "9.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "32" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "10.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "33" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "10.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "34" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "13.28", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "35" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "13.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "36" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "16.31", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "37" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "16.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "38" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "19.19", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "39" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "21.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "40" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "25.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "41" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "27.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "42" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "27.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "43" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "27.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "44" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "28.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "45" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "19.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "46" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "32.45", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "47" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "32.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "48" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "36.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "49" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "38.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "50" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "38.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "51" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "40.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "52" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "40.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "53" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "54" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "55" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "56" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "57" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "58" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "59" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "36.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "60" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "36.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "61" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "38.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "62" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "38.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "63" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "40.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "64" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "40.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "65" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "66" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "67" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "68" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "69" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "70" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "71" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "36.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "72" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "36.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "73" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "38.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "74" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "38.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "75" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "40.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "76" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "40.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "77" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "78" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "79" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "80" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "81" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "82" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "83" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "36.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "84" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "30.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "85" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "32.45", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "86" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "32.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "87" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "36.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "88" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "38.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "89" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "38.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "90" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "40.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "91" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "40.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "92" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "93" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "94" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "95" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "96" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "97" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "98" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "36.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "99" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "36.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "100" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "38.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "101" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "38.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "102" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "40.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "103" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "40.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "104" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "105" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "106" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "107" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "108" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "109" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "110" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "36.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "111" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "36.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "112" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "38.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "113" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "38.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "114" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "40.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "115" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "40.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "116" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "117" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "118" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "119" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "120" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "121" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "122" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "36.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "123" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "30.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "124" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "32.45", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "125" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "32.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "126" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "36.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "127" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "38.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "128" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "38.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "129" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "40.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "130" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "40.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "131" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "132" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "133" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "134" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "135" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "136" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "137" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "36.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "138" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "36.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "139" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "38.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "140" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "38.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "141" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "40.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "142" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "40.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "143" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "144" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "145" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "146" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "147" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "148" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "149" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "36.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "150" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "36.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "151" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "38.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "152" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "38.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "153" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "40.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "154" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "40.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "155" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "156" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "157" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "158" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "159" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "160" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "42.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "161" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "36.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "162" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "30.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "163" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "18.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "164" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "47.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "165" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "47.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "166" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "48.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "167" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "48.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "168" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "50.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "169" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "50.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "170" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "51.39", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "171" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "51.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "172" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "52.35", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "173" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "52.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "174" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "53.35", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "175" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "53.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "176" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "54.33", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "177" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "54.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "178" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "55.36", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "179" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "55.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "180" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "56.40", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "181" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "56.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "182" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "57.50", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "183" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "57.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "184" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "58.35", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "185" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "58.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "186" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "59.35", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "187" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "59.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "188" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "60.36", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "189" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "60.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "190" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "61.40", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "191" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "61.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "192" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "62.38", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "193" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "62.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "194" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "63.37", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "195" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "63.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "196" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "64.37", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "197" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "64.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "198" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "65.38", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "199" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "65.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "200" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "66.42", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "201" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "66.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "202" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "67.41", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "203" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "67.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "204" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "68.45", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "205" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "68.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "206" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "69.37", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "207" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "69.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "208" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "70.35", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "209" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "70.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "210" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "71.35", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "211" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "71.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "212" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "72.48", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "213" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "72.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "214" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "73.47", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "215" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-dict/test/top/config.fpp", "pos" : "73.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } } } @@ -3004,6 +3220,16 @@ } } }, + "Template" : { + "map" : { + "DpCfg" : { + "Module" : { + "nodeId" : 162, + "unqualifiedName" : "DpCfg" + } + } + } + }, "Type" : { "map" : { "DpCfg" : { diff --git a/compiler/tools/fpp-to-json/test/importedTopologies.ref.txt b/compiler/tools/fpp-to-json/test/importedTopologies.ref.txt index a5dbbf68b4..7fac2317b2 100644 --- a/compiler/tools/fpp-to-json/test/importedTopologies.ref.txt +++ b/compiler/tools/fpp-to-json/test/importedTopologies.ref.txt @@ -857,647 +857,776 @@ "0" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "1.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "1" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "4.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "2" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "4.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "3" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "4.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "4" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "5.21", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "5" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "5.21", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "6" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "5.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "7" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "5.21", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "8" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "5.21", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "9" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "5.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "10" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "5.21", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "11" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "5.21", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "12" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "5.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "13" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "3.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "14" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "8.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "15" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "8.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "16" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "8.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "17" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "8.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "18" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "9.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "19" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "9.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "20" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "9.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "21" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "9.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "22" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "10.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "23" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "10.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "24" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "10.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "25" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "10.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "26" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "11.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "27" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "11.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "28" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "11.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "29" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "11.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "30" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "17.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "31" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "17.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "32" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "17.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "33" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "19.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "34" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "19.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "35" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "19.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "36" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "23.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "37" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "23.8", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "38" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "23.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "39" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "23.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "40" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "23.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "41" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "23.19", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "42" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "23.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "43" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "23.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "44" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "22.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "45" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "46" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.8", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "47" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "48" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "49" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "50" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.19", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "51" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "52" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "53" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "27.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "54" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "55" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.8", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "56" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "57" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "58" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "59" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.19", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "60" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "61" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "62" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "27.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "63" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "64" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.8", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "65" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "66" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "67" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "68" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.19", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "69" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "70" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "71" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "27.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "72" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "14.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "73" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "35.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "74" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "35.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "75" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "35.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "76" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "37.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "77" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "37.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "78" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "37.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "79" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "39.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "80" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "39.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "81" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "39.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "82" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "43.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "83" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "43.8", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "84" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "43.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "85" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "43.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "86" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "43.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "87" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "43.19", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "88" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "43.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "89" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "43.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "90" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "42.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "91" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "92" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.8", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "93" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "94" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "95" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "96" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.19", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "97" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "98" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "99" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "47.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "100" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "101" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.8", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "102" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "103" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "104" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "105" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.19", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "106" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "107" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "108" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "47.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "109" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "110" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.8", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "111" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "112" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "113" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "114" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.19", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "115" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "116" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "117" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "47.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "118" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "34.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "119" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "55.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "120" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "55.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "121" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "55.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "122" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "55.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "123" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "55.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "124" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "55.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "125" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "55.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "126" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "55.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "127" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "55.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "128" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "54.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } } } @@ -1763,39 +1892,42 @@ "17" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "17.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "21" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "19.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } + }, + "directTemplateArgs" : { + }, "transitiveImportSet" : [ ], "instanceMap" : [ [ { - "InterfaceComponentInstance" : { - "astNodeId" : 17 - } + "InterfaceComponentInstance" : 17 }, { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "17.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } ], [ { - "InterfaceComponentInstance" : { - "astNodeId" : 21 - } + "InterfaceComponentInstance" : 21 }, { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "19.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } ] ], @@ -1823,13 +1955,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "23.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 17 - } + "InterfaceComponentInstance" : 17 }, "portInstance" : { "General" : { @@ -1876,13 +2007,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "23.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 21 - } + "InterfaceComponentInstance" : 21 }, "portInstance" : { "General" : { @@ -1934,13 +2064,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 21 - } + "InterfaceComponentInstance" : 21 }, "portInstance" : { "General" : { @@ -1987,13 +2116,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 17 - } + "InterfaceComponentInstance" : 17 }, "portInstance" : { "General" : { @@ -2047,13 +2175,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "23.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 17 - } + "InterfaceComponentInstance" : 17 }, "portInstance" : { "General" : { @@ -2100,13 +2227,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "23.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 21 - } + "InterfaceComponentInstance" : 21 }, "portInstance" : { "General" : { @@ -2158,13 +2284,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 21 - } + "InterfaceComponentInstance" : 21 }, "portInstance" : { "General" : { @@ -2211,13 +2336,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 17 - } + "InterfaceComponentInstance" : 17 }, "portInstance" : { "General" : { @@ -2268,9 +2392,7 @@ [ { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 17 - } + "InterfaceComponentInstance" : 17 }, "portInstance" : { "General" : { @@ -2316,13 +2438,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "23.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 17 - } + "InterfaceComponentInstance" : 17 }, "portInstance" : { "General" : { @@ -2369,13 +2490,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "23.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 21 - } + "InterfaceComponentInstance" : 21 }, "portInstance" : { "General" : { @@ -2425,9 +2545,7 @@ [ { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 21 - } + "InterfaceComponentInstance" : 21 }, "portInstance" : { "General" : { @@ -2473,13 +2591,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 21 - } + "InterfaceComponentInstance" : 21 }, "portInstance" : { "General" : { @@ -2526,13 +2643,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 17 - } + "InterfaceComponentInstance" : 17 }, "portInstance" : { "General" : { @@ -2584,9 +2700,7 @@ [ { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 17 - } + "InterfaceComponentInstance" : 17 }, "portInstance" : { "General" : { @@ -2632,13 +2746,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 21 - } + "InterfaceComponentInstance" : 21 }, "portInstance" : { "General" : { @@ -2685,13 +2798,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 17 - } + "InterfaceComponentInstance" : 17 }, "portInstance" : { "General" : { @@ -2741,9 +2853,7 @@ [ { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 21 - } + "InterfaceComponentInstance" : 21 }, "portInstance" : { "General" : { @@ -2789,13 +2899,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "23.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 17 - } + "InterfaceComponentInstance" : 17 }, "portInstance" : { "General" : { @@ -2842,13 +2951,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "23.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 21 - } + "InterfaceComponentInstance" : 21 }, "portInstance" : { "General" : { @@ -2903,13 +3011,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "23.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 17 - } + "InterfaceComponentInstance" : 17 }, "portInstance" : { "General" : { @@ -2956,13 +3063,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "23.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 21 - } + "InterfaceComponentInstance" : 21 }, "portInstance" : { "General" : { @@ -3015,13 +3121,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 21 - } + "InterfaceComponentInstance" : 21 }, "portInstance" : { "General" : { @@ -3068,13 +3173,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 17 - } + "InterfaceComponentInstance" : 17 }, "portInstance" : { "General" : { @@ -3129,13 +3233,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "23.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 17 - } + "InterfaceComponentInstance" : 17 }, "portInstance" : { "General" : { @@ -3182,13 +3285,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "23.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 21 - } + "InterfaceComponentInstance" : 21 }, "portInstance" : { "General" : { @@ -3241,13 +3343,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 21 - } + "InterfaceComponentInstance" : 21 }, "portInstance" : { "General" : { @@ -3294,13 +3395,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 17 - } + "InterfaceComponentInstance" : 17 }, "portInstance" : { "General" : { @@ -3364,20 +3464,26 @@ "72" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "35.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } }, "directComponentInstances" : { "25" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "37.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "29" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "39.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } + }, + "directTemplateArgs" : { + }, "transitiveImportSet" : [ { @@ -3389,62 +3495,57 @@ "instanceMap" : [ [ { - "InterfaceComponentInstance" : { - "astNodeId" : 17 - } + "InterfaceComponentInstance" : 17 }, { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "17.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } ], [ { - "InterfaceComponentInstance" : { - "astNodeId" : 21 - } + "InterfaceComponentInstance" : 21 }, { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "19.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } ], [ { - "InterfaceTopology" : { - "astNodeId" : 72 - } + "InterfaceTopology" : 72 }, { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "35.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } ], [ { - "InterfaceComponentInstance" : { - "astNodeId" : 25 - } + "InterfaceComponentInstance" : 25 }, { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "37.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } ], [ { - "InterfaceComponentInstance" : { - "astNodeId" : 29 - } + "InterfaceComponentInstance" : 29 }, { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "39.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } ] ], @@ -3472,13 +3573,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "23.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 17 - } + "InterfaceComponentInstance" : 17 }, "portInstance" : { "General" : { @@ -3525,13 +3625,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "23.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 21 - } + "InterfaceComponentInstance" : 21 }, "portInstance" : { "General" : { @@ -3583,13 +3682,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 21 - } + "InterfaceComponentInstance" : 21 }, "portInstance" : { "General" : { @@ -3636,13 +3734,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 17 - } + "InterfaceComponentInstance" : 17 }, "portInstance" : { "General" : { @@ -3694,13 +3791,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "43.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 25 - } + "InterfaceComponentInstance" : 25 }, "portInstance" : { "General" : { @@ -3747,13 +3843,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "43.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 29 - } + "InterfaceComponentInstance" : 29 }, "portInstance" : { "General" : { @@ -3805,13 +3900,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 29 - } + "InterfaceComponentInstance" : 29 }, "portInstance" : { "General" : { @@ -3858,13 +3952,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 25 - } + "InterfaceComponentInstance" : 25 }, "portInstance" : { "General" : { @@ -3918,13 +4011,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "43.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 25 - } + "InterfaceComponentInstance" : 25 }, "portInstance" : { "General" : { @@ -3971,13 +4063,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "43.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 29 - } + "InterfaceComponentInstance" : 29 }, "portInstance" : { "General" : { @@ -4029,13 +4120,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 29 - } + "InterfaceComponentInstance" : 29 }, "portInstance" : { "General" : { @@ -4082,13 +4172,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 25 - } + "InterfaceComponentInstance" : 25 }, "portInstance" : { "General" : { @@ -4139,9 +4228,7 @@ [ { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 17 - } + "InterfaceComponentInstance" : 17 }, "portInstance" : { "General" : { @@ -4187,13 +4274,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "23.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 17 - } + "InterfaceComponentInstance" : 17 }, "portInstance" : { "General" : { @@ -4240,13 +4326,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "23.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 21 - } + "InterfaceComponentInstance" : 21 }, "portInstance" : { "General" : { @@ -4296,9 +4381,7 @@ [ { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 21 - } + "InterfaceComponentInstance" : 21 }, "portInstance" : { "General" : { @@ -4344,13 +4427,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 21 - } + "InterfaceComponentInstance" : 21 }, "portInstance" : { "General" : { @@ -4397,13 +4479,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 17 - } + "InterfaceComponentInstance" : 17 }, "portInstance" : { "General" : { @@ -4453,9 +4534,7 @@ [ { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 25 - } + "InterfaceComponentInstance" : 25 }, "portInstance" : { "General" : { @@ -4501,13 +4580,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "43.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 25 - } + "InterfaceComponentInstance" : 25 }, "portInstance" : { "General" : { @@ -4554,13 +4632,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "43.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 29 - } + "InterfaceComponentInstance" : 29 }, "portInstance" : { "General" : { @@ -4610,9 +4687,7 @@ [ { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 29 - } + "InterfaceComponentInstance" : 29 }, "portInstance" : { "General" : { @@ -4658,13 +4733,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 29 - } + "InterfaceComponentInstance" : 29 }, "portInstance" : { "General" : { @@ -4711,13 +4785,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 25 - } + "InterfaceComponentInstance" : 25 }, "portInstance" : { "General" : { @@ -4769,9 +4842,7 @@ [ { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 17 - } + "InterfaceComponentInstance" : 17 }, "portInstance" : { "General" : { @@ -4817,13 +4888,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 21 - } + "InterfaceComponentInstance" : 21 }, "portInstance" : { "General" : { @@ -4870,13 +4940,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 17 - } + "InterfaceComponentInstance" : 17 }, "portInstance" : { "General" : { @@ -4926,9 +4995,7 @@ [ { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 21 - } + "InterfaceComponentInstance" : 21 }, "portInstance" : { "General" : { @@ -4974,13 +5041,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "23.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 17 - } + "InterfaceComponentInstance" : 17 }, "portInstance" : { "General" : { @@ -5027,13 +5093,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "23.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 21 - } + "InterfaceComponentInstance" : 21 }, "portInstance" : { "General" : { @@ -5083,9 +5148,7 @@ [ { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 25 - } + "InterfaceComponentInstance" : 25 }, "portInstance" : { "General" : { @@ -5131,13 +5194,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 29 - } + "InterfaceComponentInstance" : 29 }, "portInstance" : { "General" : { @@ -5184,13 +5246,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 25 - } + "InterfaceComponentInstance" : 25 }, "portInstance" : { "General" : { @@ -5240,9 +5301,7 @@ [ { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 29 - } + "InterfaceComponentInstance" : 29 }, "portInstance" : { "General" : { @@ -5288,13 +5347,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "43.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 25 - } + "InterfaceComponentInstance" : 25 }, "portInstance" : { "General" : { @@ -5341,13 +5399,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "43.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 29 - } + "InterfaceComponentInstance" : 29 }, "portInstance" : { "General" : { @@ -5402,13 +5459,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "23.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 17 - } + "InterfaceComponentInstance" : 17 }, "portInstance" : { "General" : { @@ -5455,13 +5511,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "23.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 21 - } + "InterfaceComponentInstance" : 21 }, "portInstance" : { "General" : { @@ -5514,13 +5569,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 21 - } + "InterfaceComponentInstance" : 21 }, "portInstance" : { "General" : { @@ -5567,13 +5621,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 17 - } + "InterfaceComponentInstance" : 17 }, "portInstance" : { "General" : { @@ -5626,13 +5679,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "43.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 25 - } + "InterfaceComponentInstance" : 25 }, "portInstance" : { "General" : { @@ -5679,13 +5731,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "43.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 29 - } + "InterfaceComponentInstance" : 29 }, "portInstance" : { "General" : { @@ -5738,13 +5789,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 29 - } + "InterfaceComponentInstance" : 29 }, "portInstance" : { "General" : { @@ -5791,13 +5841,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 25 - } + "InterfaceComponentInstance" : 25 }, "portInstance" : { "General" : { @@ -5852,13 +5901,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "23.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 17 - } + "InterfaceComponentInstance" : 17 }, "portInstance" : { "General" : { @@ -5905,13 +5953,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "23.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 21 - } + "InterfaceComponentInstance" : 21 }, "portInstance" : { "General" : { @@ -5964,13 +6011,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 21 - } + "InterfaceComponentInstance" : 21 }, "portInstance" : { "General" : { @@ -6017,13 +6063,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 17 - } + "InterfaceComponentInstance" : 17 }, "portInstance" : { "General" : { @@ -6076,13 +6121,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "43.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 25 - } + "InterfaceComponentInstance" : 25 }, "portInstance" : { "General" : { @@ -6129,13 +6173,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "43.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 29 - } + "InterfaceComponentInstance" : 29 }, "portInstance" : { "General" : { @@ -6188,13 +6231,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 29 - } + "InterfaceComponentInstance" : 29 }, "portInstance" : { "General" : { @@ -6241,13 +6283,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 25 - } + "InterfaceComponentInstance" : 25 }, "portInstance" : { "General" : { @@ -6311,11 +6352,15 @@ "118" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "55.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } }, "directComponentInstances" : { + }, + "directTemplateArgs" : { + }, "transitiveImportSet" : [ { @@ -6332,74 +6377,68 @@ "instanceMap" : [ [ { - "InterfaceComponentInstance" : { - "astNodeId" : 17 - } + "InterfaceComponentInstance" : 17 }, { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "17.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } ], [ { - "InterfaceComponentInstance" : { - "astNodeId" : 21 - } + "InterfaceComponentInstance" : 21 }, { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "19.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } ], [ { - "InterfaceTopology" : { - "astNodeId" : 72 - } + "InterfaceTopology" : 72 }, { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "35.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } ], [ { - "InterfaceComponentInstance" : { - "astNodeId" : 25 - } + "InterfaceComponentInstance" : 25 }, { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "37.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } ], [ { - "InterfaceComponentInstance" : { - "astNodeId" : 29 - } + "InterfaceComponentInstance" : 29 }, { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "39.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } ], [ { - "InterfaceTopology" : { - "astNodeId" : 118 - } + "InterfaceTopology" : 118 }, { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "55.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } ] ], @@ -6427,13 +6466,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "23.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 17 - } + "InterfaceComponentInstance" : 17 }, "portInstance" : { "General" : { @@ -6480,13 +6518,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "23.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 21 - } + "InterfaceComponentInstance" : 21 }, "portInstance" : { "General" : { @@ -6538,13 +6575,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 21 - } + "InterfaceComponentInstance" : 21 }, "portInstance" : { "General" : { @@ -6591,13 +6627,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 17 - } + "InterfaceComponentInstance" : 17 }, "portInstance" : { "General" : { @@ -6649,13 +6684,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "43.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 25 - } + "InterfaceComponentInstance" : 25 }, "portInstance" : { "General" : { @@ -6702,13 +6736,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "43.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 29 - } + "InterfaceComponentInstance" : 29 }, "portInstance" : { "General" : { @@ -6760,13 +6793,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 29 - } + "InterfaceComponentInstance" : 29 }, "portInstance" : { "General" : { @@ -6813,13 +6845,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 25 - } + "InterfaceComponentInstance" : 25 }, "portInstance" : { "General" : { @@ -6873,9 +6904,7 @@ [ { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 17 - } + "InterfaceComponentInstance" : 17 }, "portInstance" : { "General" : { @@ -6921,13 +6950,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "23.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 17 - } + "InterfaceComponentInstance" : 17 }, "portInstance" : { "General" : { @@ -6974,13 +7002,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "23.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 21 - } + "InterfaceComponentInstance" : 21 }, "portInstance" : { "General" : { @@ -7030,9 +7057,7 @@ [ { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 21 - } + "InterfaceComponentInstance" : 21 }, "portInstance" : { "General" : { @@ -7078,13 +7103,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 21 - } + "InterfaceComponentInstance" : 21 }, "portInstance" : { "General" : { @@ -7131,13 +7155,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 17 - } + "InterfaceComponentInstance" : 17 }, "portInstance" : { "General" : { @@ -7187,9 +7210,7 @@ [ { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 25 - } + "InterfaceComponentInstance" : 25 }, "portInstance" : { "General" : { @@ -7235,13 +7256,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "43.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 25 - } + "InterfaceComponentInstance" : 25 }, "portInstance" : { "General" : { @@ -7288,13 +7308,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "43.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 29 - } + "InterfaceComponentInstance" : 29 }, "portInstance" : { "General" : { @@ -7344,9 +7363,7 @@ [ { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 29 - } + "InterfaceComponentInstance" : 29 }, "portInstance" : { "General" : { @@ -7392,13 +7409,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 29 - } + "InterfaceComponentInstance" : 29 }, "portInstance" : { "General" : { @@ -7445,13 +7461,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 25 - } + "InterfaceComponentInstance" : 25 }, "portInstance" : { "General" : { @@ -7503,9 +7518,7 @@ [ { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 17 - } + "InterfaceComponentInstance" : 17 }, "portInstance" : { "General" : { @@ -7551,13 +7564,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 21 - } + "InterfaceComponentInstance" : 21 }, "portInstance" : { "General" : { @@ -7604,13 +7616,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 17 - } + "InterfaceComponentInstance" : 17 }, "portInstance" : { "General" : { @@ -7660,9 +7671,7 @@ [ { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 21 - } + "InterfaceComponentInstance" : 21 }, "portInstance" : { "General" : { @@ -7708,13 +7717,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "23.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 17 - } + "InterfaceComponentInstance" : 17 }, "portInstance" : { "General" : { @@ -7761,13 +7769,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "23.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 21 - } + "InterfaceComponentInstance" : 21 }, "portInstance" : { "General" : { @@ -7817,9 +7824,7 @@ [ { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 25 - } + "InterfaceComponentInstance" : 25 }, "portInstance" : { "General" : { @@ -7865,13 +7870,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 29 - } + "InterfaceComponentInstance" : 29 }, "portInstance" : { "General" : { @@ -7918,13 +7922,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 25 - } + "InterfaceComponentInstance" : 25 }, "portInstance" : { "General" : { @@ -7974,9 +7977,7 @@ [ { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 29 - } + "InterfaceComponentInstance" : 29 }, "portInstance" : { "General" : { @@ -8022,13 +8023,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "43.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 25 - } + "InterfaceComponentInstance" : 25 }, "portInstance" : { "General" : { @@ -8075,13 +8075,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "43.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 29 - } + "InterfaceComponentInstance" : 29 }, "portInstance" : { "General" : { @@ -8136,13 +8135,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "23.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 17 - } + "InterfaceComponentInstance" : 17 }, "portInstance" : { "General" : { @@ -8189,13 +8187,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "23.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 21 - } + "InterfaceComponentInstance" : 21 }, "portInstance" : { "General" : { @@ -8248,13 +8245,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 21 - } + "InterfaceComponentInstance" : 21 }, "portInstance" : { "General" : { @@ -8301,13 +8297,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 17 - } + "InterfaceComponentInstance" : 17 }, "portInstance" : { "General" : { @@ -8360,13 +8355,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "43.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 25 - } + "InterfaceComponentInstance" : 25 }, "portInstance" : { "General" : { @@ -8413,13 +8407,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "43.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 29 - } + "InterfaceComponentInstance" : 29 }, "portInstance" : { "General" : { @@ -8472,13 +8465,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 29 - } + "InterfaceComponentInstance" : 29 }, "portInstance" : { "General" : { @@ -8525,13 +8517,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 25 - } + "InterfaceComponentInstance" : 25 }, "portInstance" : { "General" : { @@ -8586,13 +8577,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "23.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 17 - } + "InterfaceComponentInstance" : 17 }, "portInstance" : { "General" : { @@ -8639,13 +8629,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "23.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 21 - } + "InterfaceComponentInstance" : 21 }, "portInstance" : { "General" : { @@ -8698,13 +8687,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 21 - } + "InterfaceComponentInstance" : 21 }, "portInstance" : { "General" : { @@ -8751,13 +8739,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "28.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 17 - } + "InterfaceComponentInstance" : 17 }, "portInstance" : { "General" : { @@ -8810,13 +8797,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "43.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 25 - } + "InterfaceComponentInstance" : 25 }, "portInstance" : { "General" : { @@ -8863,13 +8849,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "43.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 29 - } + "InterfaceComponentInstance" : 29 }, "portInstance" : { "General" : { @@ -8922,13 +8907,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 29 - } + "InterfaceComponentInstance" : 29 }, "portInstance" : { "General" : { @@ -8975,13 +8959,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/importedTopologies.fpp", "pos" : "48.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 25 - } + "InterfaceComponentInstance" : 25 }, "portInstance" : { "General" : { diff --git a/compiler/tools/fpp-to-json/test/interfaces.ref.txt b/compiler/tools/fpp-to-json/test/interfaces.ref.txt index f732a0d775..d9dc9c3ee8 100644 --- a/compiler/tools/fpp-to-json/test/interfaces.ref.txt +++ b/compiler/tools/fpp-to-json/test/interfaces.ref.txt @@ -664,382 +664,458 @@ "0" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "2.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "1" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "3.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "2" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "4.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "3" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "4.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "4" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "4.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "5" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "1.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "6" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "7.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "7" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "9.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "8" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "9.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "9" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "10.40", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "10" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "10.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "11" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "20.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "12" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "23.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "13" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "26.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "14" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "26.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "15" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "26.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "16" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "14.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "17" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "30.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "18" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "30.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "19" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "30.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "20" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "30.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "21" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "30.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "22" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "30.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "23" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "30.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "24" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "30.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "25" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "30.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "26" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "29.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "27" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "34.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "28" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "34.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "29" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "34.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "30" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "35.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "31" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "35.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "32" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "35.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "33" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "42.36", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "34" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "42.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "35" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "45.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "36" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "45.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "37" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "45.38", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "38" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "45.35", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "39" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "45.38", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "40" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "45.35", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "41" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "45.38", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "42" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "45.35", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "43" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "45.52", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "44" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "45.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "45" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "48.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "46" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "48.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "47" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "48.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "48" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "48.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "49" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "48.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "50" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "48.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "51" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "48.45", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "52" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "48.59", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "53" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "48.62", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "54" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "48.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "55" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "48.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "56" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "48.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "57" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "48.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "58" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "48.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "59" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "48.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "60" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "48.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "61" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "48.45", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "62" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "48.59", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "63" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "48.62", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "64" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "48.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "65" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "48.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "66" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "48.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "67" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "48.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "68" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "48.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "69" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "48.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "70" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "48.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "71" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "48.45", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "72" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "48.59", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "73" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "48.62", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "74" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "48.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "75" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/interfaces.fpp", "pos" : "33.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } } } @@ -1613,6 +1689,24 @@ "nodeId" : 10, "unqualifiedName" : "FW_FIXED_LENGTH_STRING_SIZE" } + }, + "78" : { + "Module" : { + "nodeId" : 5, + "unqualifiedName" : "Fw" + } + }, + "79" : { + "Module" : { + "nodeId" : 5, + "unqualifiedName" : "Fw" + } + }, + "80" : { + "Module" : { + "nodeId" : 5, + "unqualifiedName" : "Fw" + } } }, "valueMap" : { diff --git a/compiler/tools/fpp-to-json/test/internalPorts.ref.txt b/compiler/tools/fpp-to-json/test/internalPorts.ref.txt index adcfbcfe1e..77bd08bf60 100644 --- a/compiler/tools/fpp-to-json/test/internalPorts.ref.txt +++ b/compiler/tools/fpp-to-json/test/internalPorts.ref.txt @@ -137,222 +137,266 @@ "0" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/internalPorts.fpp", "pos" : "2.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "1" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/internalPorts.fpp", "pos" : "9.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "2" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/internalPorts.fpp", "pos" : "9.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "3" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/internalPorts.fpp", "pos" : "9.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "4" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/internalPorts.fpp", "pos" : "9.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "5" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/internalPorts.fpp", "pos" : "9.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "6" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/internalPorts.fpp", "pos" : "9.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "7" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/internalPorts.fpp", "pos" : "9.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "8" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/internalPorts.fpp", "pos" : "9.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "9" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/internalPorts.fpp", "pos" : "9.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "10" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/internalPorts.fpp", "pos" : "9.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "11" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/internalPorts.fpp", "pos" : "9.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "12" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/internalPorts.fpp", "pos" : "9.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "13" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/internalPorts.fpp", "pos" : "9.42", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "14" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/internalPorts.fpp", "pos" : "9.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "15" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/internalPorts.fpp", "pos" : "9.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "16" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/internalPorts.fpp", "pos" : "9.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "17" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/internalPorts.fpp", "pos" : "9.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "18" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/internalPorts.fpp", "pos" : "9.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "19" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/internalPorts.fpp", "pos" : "9.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "20" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/internalPorts.fpp", "pos" : "9.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "21" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/internalPorts.fpp", "pos" : "9.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "22" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/internalPorts.fpp", "pos" : "9.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "23" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/internalPorts.fpp", "pos" : "9.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "24" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/internalPorts.fpp", "pos" : "9.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "25" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/internalPorts.fpp", "pos" : "9.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "26" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/internalPorts.fpp", "pos" : "9.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "27" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/internalPorts.fpp", "pos" : "9.42", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "28" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/internalPorts.fpp", "pos" : "9.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "29" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/internalPorts.fpp", "pos" : "9.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "30" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/internalPorts.fpp", "pos" : "9.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "31" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/internalPorts.fpp", "pos" : "9.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "32" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/internalPorts.fpp", "pos" : "9.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "33" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/internalPorts.fpp", "pos" : "9.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "34" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/internalPorts.fpp", "pos" : "9.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "35" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/internalPorts.fpp", "pos" : "9.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "36" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/internalPorts.fpp", "pos" : "9.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "37" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/internalPorts.fpp", "pos" : "9.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "38" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/internalPorts.fpp", "pos" : "9.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "39" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/internalPorts.fpp", "pos" : "9.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "40" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/internalPorts.fpp", "pos" : "9.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "41" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/internalPorts.fpp", "pos" : "9.42", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "42" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/internalPorts.fpp", "pos" : "9.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "43" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/internalPorts.fpp", "pos" : "6.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } } } diff --git a/compiler/tools/fpp-to-json/test/matchedPorts.ref.txt b/compiler/tools/fpp-to-json/test/matchedPorts.ref.txt index 649fec19b2..370098fe5c 100644 --- a/compiler/tools/fpp-to-json/test/matchedPorts.ref.txt +++ b/compiler/tools/fpp-to-json/test/matchedPorts.ref.txt @@ -88,7 +88,7 @@ "name" : "Svc" } }, - "id" : 3 + "id" : 5 } }, "name" : { @@ -99,7 +99,7 @@ } } }, - "id" : 5 + "id" : 6 } } }, @@ -107,7 +107,7 @@ "queueFull" : "None" } }, - "id" : 6 + "id" : 7 } } } @@ -139,7 +139,7 @@ "value" : "numPingPorts" } }, - "id" : 7 + "id" : 8 } } }, @@ -155,18 +155,18 @@ "name" : "Svc" } }, - "id" : 8 + "id" : 11 } }, "name" : { "AstNode" : { "data" : "Ping", - "id" : 9 + "id" : 10 } } } }, - "id" : 10 + "id" : 12 } } }, @@ -174,7 +174,7 @@ "queueFull" : "None" } }, - "id" : 11 + "id" : 13 } } } @@ -194,17 +194,17 @@ "port1" : { "AstNode" : { "data" : "pingOut", - "id" : 18 + "id" : 20 } }, "port2" : { "AstNode" : { "data" : "pingIn", - "id" : 19 + "id" : 21 } } }, - "id" : 20 + "id" : 22 } } } @@ -214,7 +214,7 @@ ] ] }, - "id" : 21 + "id" : 23 } } } @@ -245,7 +245,7 @@ ], "returnType" : "None" }, - "id" : 24 + "id" : 26 } } } @@ -255,7 +255,7 @@ ] ] }, - "id" : 25 + "id" : 27 } } } @@ -273,132 +273,170 @@ "0" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/matchedPorts.fpp", "pos" : "2.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "1" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/matchedPorts.fpp", "pos" : "2.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "2" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/matchedPorts.fpp", "pos" : "7.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "3" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/matchedPorts.fpp", "pos" : "7.39", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "4" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/matchedPorts.fpp", "pos" : "7.43", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "5" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/matchedPorts.fpp", "pos" : "7.39", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "6" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/matchedPorts.fpp", - "pos" : "7.3", - "includingLoc" : "None" + "pos" : "7.39", + "includingLoc" : "None", + "expandingLoc" : "None" }, "7" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/matchedPorts.fpp", - "pos" : "10.29", - "includingLoc" : "None" + "pos" : "7.3", + "includingLoc" : "None", + "expandingLoc" : "None" }, "8" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/matchedPorts.fpp", - "pos" : "10.43", - "includingLoc" : "None" + "pos" : "10.29", + "includingLoc" : "None", + "expandingLoc" : "None" }, "9" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/matchedPorts.fpp", - "pos" : "10.47", - "includingLoc" : "None" + "pos" : "10.43", + "includingLoc" : "None", + "expandingLoc" : "None" }, "10" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/matchedPorts.fpp", - "pos" : "10.43", - "includingLoc" : "None" + "pos" : "10.47", + "includingLoc" : "None", + "expandingLoc" : "None" }, "11" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/matchedPorts.fpp", - "pos" : "10.3", - "includingLoc" : "None" + "pos" : "10.43", + "includingLoc" : "None", + "expandingLoc" : "None" }, "12" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/matchedPorts.fpp", - "pos" : "13.9", - "includingLoc" : "None" + "pos" : "10.43", + "includingLoc" : "None", + "expandingLoc" : "None" }, "13" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/matchedPorts.fpp", - "pos" : "13.22", - "includingLoc" : "None" + "pos" : "10.3", + "includingLoc" : "None", + "expandingLoc" : "None" }, "14" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/matchedPorts.fpp", - "pos" : "13.3", - "includingLoc" : "None" + "pos" : "13.9", + "includingLoc" : "None", + "expandingLoc" : "None" }, "15" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/matchedPorts.fpp", - "pos" : "13.9", - "includingLoc" : "None" + "pos" : "13.22", + "includingLoc" : "None", + "expandingLoc" : "None" }, "16" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/matchedPorts.fpp", - "pos" : "13.22", - "includingLoc" : "None" + "pos" : "13.3", + "includingLoc" : "None", + "expandingLoc" : "None" }, "17" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/matchedPorts.fpp", - "pos" : "13.3", - "includingLoc" : "None" + "pos" : "13.9", + "includingLoc" : "None", + "expandingLoc" : "None" }, "18" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/matchedPorts.fpp", - "pos" : "13.9", - "includingLoc" : "None" + "pos" : "13.22", + "includingLoc" : "None", + "expandingLoc" : "None" }, "19" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/matchedPorts.fpp", - "pos" : "13.22", - "includingLoc" : "None" + "pos" : "13.3", + "includingLoc" : "None", + "expandingLoc" : "None" }, "20" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/matchedPorts.fpp", - "pos" : "13.3", - "includingLoc" : "None" + "pos" : "13.9", + "includingLoc" : "None", + "expandingLoc" : "None" }, "21" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/matchedPorts.fpp", - "pos" : "4.1", - "includingLoc" : "None" + "pos" : "13.22", + "includingLoc" : "None", + "expandingLoc" : "None" }, "22" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/matchedPorts.fpp", - "pos" : "18.3", - "includingLoc" : "None" + "pos" : "13.3", + "includingLoc" : "None", + "expandingLoc" : "None" }, "23" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/matchedPorts.fpp", - "pos" : "18.3", - "includingLoc" : "None" + "pos" : "4.1", + "includingLoc" : "None", + "expandingLoc" : "None" }, "24" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/matchedPorts.fpp", "pos" : "18.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "25" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/matchedPorts.fpp", + "pos" : "18.3", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "26" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/matchedPorts.fpp", + "pos" : "18.3", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "27" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/matchedPorts.fpp", "pos" : "17.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } } } @@ -409,9 +447,9 @@ }, "componentMap" : { - "21" : { + "23" : { "aNode" : { - "astNodeId" : 21 + "astNodeId" : 23 }, "portInterface" : { "instanceType" : "component", @@ -419,7 +457,7 @@ "pingIn" : { "General" : { "aNode" : { - "astNodeId" : 11 + "astNodeId" : 13 }, "specifier" : { "kind" : { @@ -430,12 +468,12 @@ "name" : "pingIn", "size" : { "Some" : { - "astNodeId" : 7 + "astNodeId" : 8 } }, "port" : { "Some" : { - "astNodeId" : 10 + "astNodeId" : 12 } }, "priority" : "None", @@ -447,7 +485,7 @@ "DefPort" : { "symbol" : { "Port" : { - "nodeId" : 24, + "nodeId" : 26, "unqualifiedName" : "Ping" } } @@ -460,7 +498,7 @@ "pingOut" : { "General" : { "aNode" : { - "astNodeId" : 6 + "astNodeId" : 7 }, "specifier" : { "kind" : { @@ -476,7 +514,7 @@ }, "port" : { "Some" : { - "astNodeId" : 5 + "astNodeId" : 6 } }, "priority" : "None", @@ -488,7 +526,7 @@ "DefPort" : { "symbol" : { "Port" : { - "nodeId" : 24, + "nodeId" : 26, "unqualifiedName" : "Ping" } } @@ -523,7 +561,7 @@ }, "specPortMatchingList" : [ { - "astNodeId" : 20 + "astNodeId" : 22 } ], "stateMachineInstanceMap" : { @@ -532,11 +570,11 @@ "portMatchingList" : [ { "aNode" : { - "astNodeId" : 20 + "astNodeId" : 22 }, "instance1" : { "aNode" : { - "astNodeId" : 6 + "astNodeId" : 7 }, "specifier" : { "kind" : { @@ -552,7 +590,7 @@ }, "port" : { "Some" : { - "astNodeId" : 5 + "astNodeId" : 6 } }, "priority" : "None", @@ -564,7 +602,7 @@ "DefPort" : { "symbol" : { "Port" : { - "nodeId" : 24, + "nodeId" : 26, "unqualifiedName" : "Ping" } } @@ -575,7 +613,7 @@ }, "instance2" : { "aNode" : { - "astNodeId" : 11 + "astNodeId" : 13 }, "specifier" : { "kind" : { @@ -586,12 +624,12 @@ "name" : "pingIn", "size" : { "Some" : { - "astNodeId" : 7 + "astNodeId" : 8 } }, "port" : { "Some" : { - "astNodeId" : 10 + "astNodeId" : 12 } }, "priority" : "None", @@ -603,7 +641,7 @@ "DefPort" : { "symbol" : { "Port" : { - "nodeId" : 24, + "nodeId" : 26, "unqualifiedName" : "Ping" } } @@ -641,26 +679,26 @@ "locationSpecifierMap" : [ ], "parentSymbolMap" : { - "24" : { + "26" : { "Module" : { - "nodeId" : 25, + "nodeId" : 27, "unqualifiedName" : "Svc" } } }, "symbolScopeMap" : { - "21" : { + "23" : { "map" : { } }, - "25" : { + "27" : { "map" : { "Port" : { "map" : { "Ping" : { "Port" : { - "nodeId" : 24, + "nodeId" : 26, "unqualifiedName" : "Ping" } } @@ -694,7 +732,7 @@ } } }, - "7" : { + "8" : { "Int" : { "Integer" : { @@ -709,33 +747,33 @@ "unqualifiedName" : "numPingPorts" } }, - "3" : { + "5" : { "Module" : { - "nodeId" : 25, + "nodeId" : 27, "unqualifiedName" : "Svc" } }, - "5" : { + "6" : { "Port" : { - "nodeId" : 24, + "nodeId" : 26, "unqualifiedName" : "Ping" } }, - "7" : { + "8" : { "Constant" : { "nodeId" : 1, "unqualifiedName" : "numPingPorts" } }, - "8" : { + "11" : { "Module" : { - "nodeId" : 25, + "nodeId" : 27, "unqualifiedName" : "Svc" } }, - "10" : { + "12" : { "Port" : { - "nodeId" : 24, + "nodeId" : 26, "unqualifiedName" : "Ping" } } @@ -756,7 +794,7 @@ "value" : 10 } }, - "7" : { + "8" : { "Integer" : { "value" : 10 } diff --git a/compiler/tools/fpp-to-json/test/modules.ref.txt b/compiler/tools/fpp-to-json/test/modules.ref.txt index c9cba21bb6..cb639959d7 100644 --- a/compiler/tools/fpp-to-json/test/modules.ref.txt +++ b/compiler/tools/fpp-to-json/test/modules.ref.txt @@ -406,317 +406,380 @@ "0" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "3.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "1" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "3.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "2" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "4.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "3" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "4.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "4" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "5.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "5" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "5.19", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "6" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "5.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "7" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "5.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "8" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "5.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "9" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "5.19", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "10" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "5.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "11" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "5.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "12" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "5.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "13" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "5.19", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "14" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "5.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "15" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "5.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "16" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "2.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "17" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "8.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "18" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "8.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "19" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "8.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "20" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "8.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "21" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "11.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "22" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "11.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "23" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "11.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "24" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "11.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "25" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "11.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "26" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "11.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "27" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "10.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "28" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "14.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "29" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "14.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "30" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "14.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "31" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "14.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "32" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "14.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "33" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "14.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "34" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "13.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "35" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "19.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "36" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "19.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "37" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "19.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "38" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "19.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "39" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "19.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "40" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "19.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "41" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "18.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "42" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "19.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "43" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "19.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "44" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "19.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "45" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "19.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "46" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "19.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "47" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "19.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "48" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "18.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "49" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "19.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "50" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "19.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "51" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "19.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "52" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "19.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "53" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "19.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "54" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "19.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "55" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "18.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "56" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "17.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "57" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "22.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "58" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "22.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "59" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "22.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "60" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "22.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "61" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "22.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "62" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/modules.fpp", "pos" : "22.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } } } @@ -901,6 +964,16 @@ } } }, + "Template" : { + "map" : { + "B" : { + "Module" : { + "nodeId" : 55, + "unqualifiedName" : "B" + } + } + } + }, "Type" : { "map" : { "B" : { diff --git a/compiler/tools/fpp-to-json/test/parameters.ref.txt b/compiler/tools/fpp-to-json/test/parameters.ref.txt index 0e08597ee6..0e84496034 100644 --- a/compiler/tools/fpp-to-json/test/parameters.ref.txt +++ b/compiler/tools/fpp-to-json/test/parameters.ref.txt @@ -639,222 +639,266 @@ "0" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/parameters.fpp", "pos" : "2.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "1" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/parameters.fpp", "pos" : "2.19", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "2" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/parameters.fpp", "pos" : "2.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "3" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/parameters.fpp", "pos" : "12.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "4" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/parameters.fpp", "pos" : "15.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "5" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/parameters.fpp", "pos" : "18.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "6" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/parameters.fpp", "pos" : "21.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "7" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/parameters.fpp", "pos" : "24.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "8" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/parameters.fpp", "pos" : "33.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "9" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/parameters.fpp", "pos" : "33.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "10" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/parameters.fpp", "pos" : "33.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "11" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/parameters.fpp", "pos" : "38.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "12" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/parameters.fpp", "pos" : "39.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "13" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/parameters.fpp", "pos" : "40.8", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "14" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/parameters.fpp", "pos" : "41.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "15" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/parameters.fpp", "pos" : "42.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "16" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/parameters.fpp", "pos" : "38.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "17" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/parameters.fpp", "pos" : "47.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "18" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/parameters.fpp", "pos" : "47.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "19" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/parameters.fpp", "pos" : "47.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "20" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/parameters.fpp", "pos" : "48.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "21" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/parameters.fpp", "pos" : "48.20", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "22" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/parameters.fpp", "pos" : "48.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "23" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/parameters.fpp", "pos" : "48.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "24" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/parameters.fpp", "pos" : "49.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "25" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/parameters.fpp", "pos" : "47.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "26" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/parameters.fpp", "pos" : "54.26", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "27" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/parameters.fpp", "pos" : "55.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "28" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/parameters.fpp", "pos" : "54.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "29" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/parameters.fpp", "pos" : "54.26", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "30" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/parameters.fpp", "pos" : "55.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "31" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/parameters.fpp", "pos" : "54.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "32" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/parameters.fpp", "pos" : "54.26", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "33" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/parameters.fpp", "pos" : "55.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "34" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/parameters.fpp", "pos" : "54.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "35" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/parameters.fpp", "pos" : "5.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "36" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/parameters.fpp", "pos" : "60.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "37" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/parameters.fpp", "pos" : "61.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "38" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/parameters.fpp", "pos" : "62.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "39" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/parameters.fpp", "pos" : "63.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "40" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/parameters.fpp", "pos" : "64.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "41" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/parameters.fpp", "pos" : "64.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "42" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/parameters.fpp", "pos" : "64.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "43" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/parameters.fpp", "pos" : "59.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } } } @@ -1378,7 +1422,8 @@ } } } - ] + ], + "scalar" : "None" }, "t" : { "node" : { @@ -1443,7 +1488,8 @@ } } } - ] + ], + "scalar" : "None" }, "t" : { "node" : { @@ -1499,7 +1545,8 @@ } } } - ] + ], + "scalar" : "None" }, "t" : { "node" : { @@ -1754,7 +1801,8 @@ } } } - ] + ], + "scalar" : "None" }, "t" : { "node" : { @@ -1900,7 +1948,8 @@ } } } - ] + ], + "scalar" : "None" }, "t" : { "node" : { @@ -2049,6 +2098,36 @@ "nodeId" : 2, "unqualifiedName" : "F64x3" } + }, + "44" : { + "Module" : { + "nodeId" : 43, + "unqualifiedName" : "Fw" + } + }, + "45" : { + "Module" : { + "nodeId" : 43, + "unqualifiedName" : "Fw" + } + }, + "46" : { + "Module" : { + "nodeId" : 43, + "unqualifiedName" : "Fw" + } + }, + "47" : { + "Module" : { + "nodeId" : 43, + "unqualifiedName" : "Fw" + } + }, + "48" : { + "Module" : { + "nodeId" : 43, + "unqualifiedName" : "Fw" + } } }, "valueMap" : { @@ -2150,7 +2229,8 @@ } } } - ] + ], + "scalar" : "None" } }, "24" : { diff --git a/compiler/tools/fpp-to-json/test/passiveComponent.ref.txt b/compiler/tools/fpp-to-json/test/passiveComponent.ref.txt index 5b5b7592d5..ac9c8dbcd9 100644 --- a/compiler/tools/fpp-to-json/test/passiveComponent.ref.txt +++ b/compiler/tools/fpp-to-json/test/passiveComponent.ref.txt @@ -58,18 +58,18 @@ "name" : "Svc" } }, - "id" : 30 + "id" : 34 } }, "name" : { "AstNode" : { "data" : "Sched", - "id" : 31 + "id" : 33 } } } }, - "id" : 32 + "id" : 35 } } }, @@ -77,7 +77,7 @@ "queueFull" : "None" } }, - "id" : 33 + "id" : 36 } } } @@ -106,7 +106,7 @@ "queueFull" : "None" } }, - "id" : 34 + "id" : 37 } } } @@ -135,7 +135,7 @@ "queueFull" : "None" } }, - "id" : 35 + "id" : 38 } } } @@ -164,7 +164,7 @@ } } }, - "id" : 36 + "id" : 39 } }, "id" : "None", @@ -175,7 +175,7 @@ "high" : [ ] }, - "id" : 37 + "id" : 40 } } } @@ -204,7 +204,7 @@ } } }, - "id" : 42 + "id" : 45 } }, "id" : "None", @@ -215,7 +215,7 @@ "high" : [ ] }, - "id" : 43 + "id" : 46 } } } @@ -225,7 +225,7 @@ ] ] }, - "id" : 44 + "id" : 47 } } } @@ -235,7 +235,7 @@ ] ] }, - "id" : 45 + "id" : 48 } } } @@ -274,18 +274,18 @@ "name" : "Sensors" } }, - "id" : 56 + "id" : 63 } }, "name" : { "AstNode" : { "data" : "EngineTemp", - "id" : 57 + "id" : 62 } } } }, - "id" : 58 + "id" : 64 } }, "baseId" : { @@ -295,7 +295,7 @@ "value" : "0x100" } }, - "id" : 59 + "id" : 65 } }, "implType" : "None", @@ -307,7 +307,7 @@ "initSpecs" : [ ] }, - "id" : 60 + "id" : 66 } } } @@ -317,7 +317,7 @@ ] ] }, - "id" : 61 + "id" : 67 } } } @@ -348,7 +348,7 @@ ], "returnType" : "None" }, - "id" : 64 + "id" : 70 } } } @@ -358,7 +358,7 @@ ] ] }, - "id" : 65 + "id" : 71 } } } @@ -389,7 +389,7 @@ ], "returnType" : "None" }, - "id" : 66 + "id" : 72 } } } @@ -410,7 +410,7 @@ ], "returnType" : "None" }, - "id" : 69 + "id" : 75 } } } @@ -420,7 +420,7 @@ ] ] }, - "id" : 70 + "id" : 76 } } } @@ -438,357 +438,464 @@ "0" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", "pos" : "7.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "1" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", "pos" : "7.34", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "2" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", "pos" : "7.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "3" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "7.5", - "includingLoc" : "None" + "pos" : "7.30", + "includingLoc" : "None", + "expandingLoc" : "None" }, "4" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "10.5", - "includingLoc" : "None" + "pos" : "7.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "5" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "13.5", - "includingLoc" : "None" + "pos" : "10.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "6" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "16.28", - "includingLoc" : "None" + "pos" : "13.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "7" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "16.5", - "includingLoc" : "None" + "pos" : "16.28", + "includingLoc" : "None", + "expandingLoc" : "None" }, "8" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "19.25", - "includingLoc" : "None" + "pos" : "16.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "9" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "19.5", - "includingLoc" : "None" + "pos" : "19.25", + "includingLoc" : "None", + "expandingLoc" : "None" }, "10" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "19.25", - "includingLoc" : "None" + "pos" : "19.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "11" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "19.5", - "includingLoc" : "None" + "pos" : "19.25", + "includingLoc" : "None", + "expandingLoc" : "None" }, "12" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "19.25", - "includingLoc" : "None" + "pos" : "19.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "13" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "19.5", - "includingLoc" : "None" + "pos" : "19.25", + "includingLoc" : "None", + "expandingLoc" : "None" }, "14" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "4.3", - "includingLoc" : "None" + "pos" : "19.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "15" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "7.30", - "includingLoc" : "None" + "pos" : "4.3", + "includingLoc" : "None", + "expandingLoc" : "None" }, "16" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "7.34", - "includingLoc" : "None" + "pos" : "7.30", + "includingLoc" : "None", + "expandingLoc" : "None" }, "17" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "7.30", - "includingLoc" : "None" + "pos" : "7.34", + "includingLoc" : "None", + "expandingLoc" : "None" }, "18" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "7.5", - "includingLoc" : "None" + "pos" : "7.30", + "includingLoc" : "None", + "expandingLoc" : "None" }, "19" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "10.5", - "includingLoc" : "None" + "pos" : "7.30", + "includingLoc" : "None", + "expandingLoc" : "None" }, "20" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "13.5", - "includingLoc" : "None" + "pos" : "7.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "21" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "16.28", - "includingLoc" : "None" + "pos" : "10.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "22" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "16.5", - "includingLoc" : "None" + "pos" : "13.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "23" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "19.25", - "includingLoc" : "None" + "pos" : "16.28", + "includingLoc" : "None", + "expandingLoc" : "None" }, "24" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "19.5", - "includingLoc" : "None" + "pos" : "16.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "25" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", "pos" : "19.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "26" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", "pos" : "19.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "27" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", "pos" : "19.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "28" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", "pos" : "19.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "29" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "4.3", - "includingLoc" : "None" + "pos" : "19.25", + "includingLoc" : "None", + "expandingLoc" : "None" }, "30" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "7.30", - "includingLoc" : "None" + "pos" : "19.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "31" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "7.34", - "includingLoc" : "None" + "pos" : "4.3", + "includingLoc" : "None", + "expandingLoc" : "None" }, "32" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", "pos" : "7.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "33" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "7.5", - "includingLoc" : "None" + "pos" : "7.34", + "includingLoc" : "None", + "expandingLoc" : "None" }, "34" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "10.5", - "includingLoc" : "None" + "pos" : "7.30", + "includingLoc" : "None", + "expandingLoc" : "None" }, "35" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "13.5", - "includingLoc" : "None" + "pos" : "7.30", + "includingLoc" : "None", + "expandingLoc" : "None" }, "36" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "16.28", - "includingLoc" : "None" + "pos" : "7.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "37" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "16.5", - "includingLoc" : "None" + "pos" : "10.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "38" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "19.25", - "includingLoc" : "None" + "pos" : "13.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "39" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "19.5", - "includingLoc" : "None" + "pos" : "16.28", + "includingLoc" : "None", + "expandingLoc" : "None" }, "40" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "19.25", - "includingLoc" : "None" + "pos" : "16.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "41" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "19.5", - "includingLoc" : "None" + "pos" : "19.25", + "includingLoc" : "None", + "expandingLoc" : "None" }, "42" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "19.25", - "includingLoc" : "None" + "pos" : "19.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "43" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "19.5", - "includingLoc" : "None" + "pos" : "19.25", + "includingLoc" : "None", + "expandingLoc" : "None" }, "44" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "4.3", - "includingLoc" : "None" + "pos" : "19.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "45" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "1.1", - "includingLoc" : "None" + "pos" : "19.25", + "includingLoc" : "None", + "expandingLoc" : "None" }, "46" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "28.24", - "includingLoc" : "None" + "pos" : "19.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "47" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "28.32", - "includingLoc" : "None" + "pos" : "4.3", + "includingLoc" : "None", + "expandingLoc" : "None" }, "48" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "28.24", - "includingLoc" : "None" + "pos" : "1.1", + "includingLoc" : "None", + "expandingLoc" : "None" }, "49" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "28.51", - "includingLoc" : "None" + "pos" : "28.24", + "includingLoc" : "None", + "expandingLoc" : "None" }, "50" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "28.3", - "includingLoc" : "None" + "pos" : "28.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "51" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", "pos" : "28.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "52" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "28.32", - "includingLoc" : "None" + "pos" : "28.24", + "includingLoc" : "None", + "expandingLoc" : "None" }, "53" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "28.24", - "includingLoc" : "None" + "pos" : "28.51", + "includingLoc" : "None", + "expandingLoc" : "None" }, "54" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "28.51", - "includingLoc" : "None" + "pos" : "28.3", + "includingLoc" : "None", + "expandingLoc" : "None" }, "55" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "28.3", - "includingLoc" : "None" + "pos" : "28.24", + "includingLoc" : "None", + "expandingLoc" : "None" }, "56" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "28.24", - "includingLoc" : "None" + "pos" : "28.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "57" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "28.32", - "includingLoc" : "None" + "pos" : "28.24", + "includingLoc" : "None", + "expandingLoc" : "None" }, "58" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", "pos" : "28.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "59" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", "pos" : "28.51", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "60" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", "pos" : "28.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "61" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "25.1", - "includingLoc" : "None" + "pos" : "28.24", + "includingLoc" : "None", + "expandingLoc" : "None" }, "62" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "33.3", - "includingLoc" : "None" + "pos" : "28.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "63" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "33.3", - "includingLoc" : "None" + "pos" : "28.24", + "includingLoc" : "None", + "expandingLoc" : "None" }, "64" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "33.3", - "includingLoc" : "None" + "pos" : "28.24", + "includingLoc" : "None", + "expandingLoc" : "None" }, "65" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "32.1", - "includingLoc" : "None" + "pos" : "28.51", + "includingLoc" : "None", + "expandingLoc" : "None" }, "66" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "37.3", - "includingLoc" : "None" + "pos" : "28.3", + "includingLoc" : "None", + "expandingLoc" : "None" }, "67" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "38.3", - "includingLoc" : "None" + "pos" : "25.1", + "includingLoc" : "None", + "expandingLoc" : "None" }, "68" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "38.3", - "includingLoc" : "None" + "pos" : "33.3", + "includingLoc" : "None", + "expandingLoc" : "None" }, "69" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", - "pos" : "38.3", - "includingLoc" : "None" + "pos" : "33.3", + "includingLoc" : "None", + "expandingLoc" : "None" }, "70" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", + "pos" : "33.3", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "71" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", + "pos" : "32.1", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "72" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", + "pos" : "37.3", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "73" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", + "pos" : "38.3", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "74" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", + "pos" : "38.3", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "75" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", + "pos" : "38.3", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "76" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/passiveComponent.fpp", "pos" : "36.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } } } @@ -796,9 +903,9 @@ "fppVersion" : "[ fpp version ]", "analysis" : { "componentInstanceMap" : { - "60" : { + "66" : { "aNode" : { - "astNodeId" : 60 + "astNodeId" : 66 }, "qualifiedName" : { "qualifier" : [ @@ -807,7 +914,7 @@ "base" : "engineTemp" }, "component" : { - "astNodeId" : 44 + "astNodeId" : 47 }, "baseId" : 256, "maxId" : 257, @@ -822,9 +929,9 @@ } }, "componentMap" : { - "44" : { + "47" : { "aNode" : { - "astNodeId" : 44 + "astNodeId" : 47 }, "portInterface" : { "instanceType" : "component", @@ -832,7 +939,7 @@ "schedIn" : { "General" : { "aNode" : { - "astNodeId" : 33 + "astNodeId" : 36 }, "specifier" : { "kind" : { @@ -844,7 +951,7 @@ "size" : "None", "port" : { "Some" : { - "astNodeId" : 32 + "astNodeId" : 35 } }, "priority" : "None", @@ -856,7 +963,7 @@ "DefPort" : { "symbol" : { "Port" : { - "nodeId" : 64, + "nodeId" : 70, "unqualifiedName" : "Sched" } } @@ -869,7 +976,7 @@ "timeGetOut" : { "Special" : { "aNode" : { - "astNodeId" : 35 + "astNodeId" : 38 }, "specifier" : { "inputKind" : "None", @@ -884,7 +991,7 @@ }, "symbol" : { "Port" : { - "nodeId" : 69, + "nodeId" : 75, "unqualifiedName" : "Time" } }, @@ -897,7 +1004,7 @@ "tlmOut" : { "Special" : { "aNode" : { - "astNodeId" : 34 + "astNodeId" : 37 }, "specifier" : { "inputKind" : "None", @@ -912,7 +1019,7 @@ }, "symbol" : { "Port" : { - "nodeId" : 66, + "nodeId" : 72, "unqualifiedName" : "Tlm" } }, @@ -926,7 +1033,7 @@ "specialPortMap" : { "telemetry" : { "aNode" : { - "astNodeId" : 34 + "astNodeId" : 37 }, "specifier" : { "inputKind" : "None", @@ -941,7 +1048,7 @@ }, "symbol" : { "Port" : { - "nodeId" : 66, + "nodeId" : 72, "unqualifiedName" : "Tlm" } }, @@ -952,7 +1059,7 @@ }, "time get" : { "aNode" : { - "astNodeId" : 35 + "astNodeId" : 38 }, "specifier" : { "inputKind" : "None", @@ -967,7 +1074,7 @@ }, "symbol" : { "Port" : { - "nodeId" : 69, + "nodeId" : 75, "unqualifiedName" : "Time" } }, @@ -985,7 +1092,7 @@ "tlmChannelMap" : { "0" : { "aNode" : { - "astNodeId" : 37 + "astNodeId" : 40 }, "channelType" : { "Primitive" : { @@ -1013,7 +1120,7 @@ }, "1" : { "aNode" : { - "astNodeId" : 43 + "astNodeId" : 46 }, "channelType" : { "Primitive" : { @@ -1043,7 +1150,7 @@ "tlmChannelNameMap" : { "ImpulseTemp" : { "aNode" : { - "astNodeId" : 37 + "astNodeId" : 40 }, "channelType" : { "Primitive" : { @@ -1071,7 +1178,7 @@ }, "WarpTemp" : { "aNode" : { - "astNodeId" : 43 + "astNodeId" : 46 }, "channelType" : { "Primitive" : { @@ -1140,50 +1247,50 @@ "locationSpecifierMap" : [ ], "parentSymbolMap" : { - "44" : { + "47" : { "Module" : { - "nodeId" : 45, + "nodeId" : 48, "unqualifiedName" : "Sensors" } }, - "60" : { + "66" : { "Module" : { - "nodeId" : 61, + "nodeId" : 67, "unqualifiedName" : "FSW" } }, - "64" : { + "70" : { "Module" : { - "nodeId" : 65, + "nodeId" : 71, "unqualifiedName" : "Svc" } }, - "66" : { + "72" : { "Module" : { - "nodeId" : 70, + "nodeId" : 76, "unqualifiedName" : "Fw" } }, - "69" : { + "75" : { "Module" : { - "nodeId" : 70, + "nodeId" : 76, "unqualifiedName" : "Fw" } } }, "symbolScopeMap" : { - "44" : { + "47" : { "map" : { } }, - "45" : { + "48" : { "map" : { "Component" : { "map" : { "EngineTemp" : { "Component" : { - "nodeId" : 44, + "nodeId" : 47, "unqualifiedName" : "EngineTemp" } } @@ -1193,7 +1300,7 @@ "map" : { "EngineTemp" : { "Component" : { - "nodeId" : 44, + "nodeId" : 47, "unqualifiedName" : "EngineTemp" } } @@ -1203,7 +1310,7 @@ "map" : { "EngineTemp" : { "Component" : { - "nodeId" : 44, + "nodeId" : 47, "unqualifiedName" : "EngineTemp" } } @@ -1213,7 +1320,7 @@ "map" : { "EngineTemp" : { "Component" : { - "nodeId" : 44, + "nodeId" : 47, "unqualifiedName" : "EngineTemp" } } @@ -1221,13 +1328,13 @@ } } }, - "61" : { + "67" : { "map" : { "PortInterfaceInstance" : { "map" : { "engineTemp" : { "ComponentInstance" : { - "nodeId" : 60, + "nodeId" : 66, "unqualifiedName" : "engineTemp" } } @@ -1235,13 +1342,13 @@ } } }, - "65" : { + "71" : { "map" : { "Port" : { "map" : { "Sched" : { "Port" : { - "nodeId" : 64, + "nodeId" : 70, "unqualifiedName" : "Sched" } } @@ -1249,19 +1356,19 @@ } } }, - "70" : { + "76" : { "map" : { "Port" : { "map" : { "Time" : { "Port" : { - "nodeId" : 69, + "nodeId" : 75, "unqualifiedName" : "Time" } }, "Tlm" : { "Port" : { - "nodeId" : 66, + "nodeId" : 72, "unqualifiedName" : "Tlm" } } @@ -1274,7 +1381,7 @@ }, "typeMap" : { - "36" : { + "39" : { "Primitive" : { "Float" : { "kind" : { @@ -1285,7 +1392,7 @@ } } }, - "42" : { + "45" : { "Primitive" : { "Float" : { "kind" : { @@ -1296,7 +1403,7 @@ } } }, - "59" : { + "65" : { "Int" : { "Integer" : { @@ -1305,45 +1412,57 @@ } }, "useDefMap" : { - "30" : { + "34" : { "Module" : { - "nodeId" : 65, + "nodeId" : 71, "unqualifiedName" : "Svc" } }, - "32" : { + "35" : { "Port" : { - "nodeId" : 64, + "nodeId" : 70, "unqualifiedName" : "Sched" } }, - "34" : { + "37" : { "Port" : { - "nodeId" : 66, + "nodeId" : 72, "unqualifiedName" : "Tlm" } }, - "35" : { + "38" : { "Port" : { - "nodeId" : 69, + "nodeId" : 75, "unqualifiedName" : "Time" } }, - "56" : { + "63" : { "Module" : { - "nodeId" : 45, + "nodeId" : 48, "unqualifiedName" : "Sensors" } }, - "58" : { + "64" : { "Component" : { - "nodeId" : 44, + "nodeId" : 47, "unqualifiedName" : "EngineTemp" } + }, + "77" : { + "Module" : { + "nodeId" : 76, + "unqualifiedName" : "Fw" + } + }, + "78" : { + "Module" : { + "nodeId" : 76, + "unqualifiedName" : "Fw" + } } }, "valueMap" : { - "59" : { + "65" : { "Integer" : { "value" : 256 } diff --git a/compiler/tools/fpp-to-json/test/patternedConnections.ref.txt b/compiler/tools/fpp-to-json/test/patternedConnections.ref.txt index 8843a6b786..91f23b1952 100644 --- a/compiler/tools/fpp-to-json/test/patternedConnections.ref.txt +++ b/compiler/tools/fpp-to-json/test/patternedConnections.ref.txt @@ -46,18 +46,18 @@ "name" : "Fw" } }, - "id" : 8 + "id" : 12 } }, "name" : { "AstNode" : { "data" : "Time", - "id" : 9 + "id" : 11 } } } }, - "id" : 10 + "id" : 13 } } }, @@ -65,7 +65,7 @@ "queueFull" : "None" } }, - "id" : 11 + "id" : 14 } } } @@ -75,7 +75,7 @@ ] ] }, - "id" : 12 + "id" : 15 } } } @@ -126,18 +126,18 @@ "name" : "Fw" } }, - "id" : 13 + "id" : 18 } }, "name" : { "AstNode" : { "data" : "Cmd", - "id" : 14 + "id" : 17 } } } }, - "id" : 15 + "id" : 19 } } }, @@ -145,7 +145,7 @@ "queueFull" : "None" } }, - "id" : 16 + "id" : 20 } } } @@ -181,18 +181,18 @@ "name" : "Fw" } }, - "id" : 17 + "id" : 23 } }, "name" : { "AstNode" : { "data" : "CmdReg", - "id" : 18 + "id" : 22 } } } }, - "id" : 19 + "id" : 24 } } }, @@ -200,7 +200,7 @@ "queueFull" : "None" } }, - "id" : 20 + "id" : 25 } } } @@ -236,18 +236,18 @@ "name" : "Fw" } }, - "id" : 21 + "id" : 28 } }, "name" : { "AstNode" : { "data" : "CmdResponse", - "id" : 22 + "id" : 27 } } } }, - "id" : 23 + "id" : 29 } } }, @@ -255,7 +255,7 @@ "queueFull" : "None" } }, - "id" : 24 + "id" : 30 } } } @@ -291,18 +291,18 @@ "name" : "Fw" } }, - "id" : 33 + "id" : 43 } }, "name" : { "AstNode" : { "data" : "Cmd", - "id" : 34 + "id" : 42 } } } }, - "id" : 35 + "id" : 44 } } }, @@ -310,7 +310,7 @@ "queueFull" : "None" } }, - "id" : 36 + "id" : 45 } } } @@ -320,7 +320,7 @@ ] ] }, - "id" : 37 + "id" : 46 } } } @@ -371,18 +371,18 @@ "name" : "Fw" } }, - "id" : 46 + "id" : 59 } }, "name" : { "AstNode" : { "data" : "Log", - "id" : 47 + "id" : 58 } } } }, - "id" : 48 + "id" : 60 } } }, @@ -390,7 +390,7 @@ "queueFull" : "None" } }, - "id" : 49 + "id" : 61 } } } @@ -400,7 +400,7 @@ ] ] }, - "id" : 50 + "id" : 62 } } } @@ -451,18 +451,18 @@ "name" : "Svc" } }, - "id" : 51 + "id" : 65 } }, "name" : { "AstNode" : { "data" : "Ping", - "id" : 52 + "id" : 64 } } } }, - "id" : 53 + "id" : 66 } } }, @@ -470,7 +470,7 @@ "queueFull" : "None" } }, - "id" : 54 + "id" : 67 } } } @@ -506,18 +506,18 @@ "name" : "Svc" } }, - "id" : 63 + "id" : 80 } }, "name" : { "AstNode" : { "data" : "Ping", - "id" : 64 + "id" : 79 } } } }, - "id" : 65 + "id" : 81 } } }, @@ -525,7 +525,7 @@ "queueFull" : "None" } }, - "id" : 66 + "id" : 82 } } } @@ -535,7 +535,7 @@ ] ] }, - "id" : 67 + "id" : 83 } } } @@ -586,18 +586,18 @@ "name" : "Fw" } }, - "id" : 68 + "id" : 86 } }, "name" : { "AstNode" : { "data" : "PrmGet", - "id" : 69 + "id" : 85 } } } }, - "id" : 70 + "id" : 87 } } }, @@ -605,7 +605,7 @@ "queueFull" : "None" } }, - "id" : 71 + "id" : 88 } } } @@ -641,18 +641,18 @@ "name" : "Fw" } }, - "id" : 80 + "id" : 101 } }, "name" : { "AstNode" : { "data" : "PrmSet", - "id" : 81 + "id" : 100 } } } }, - "id" : 82 + "id" : 102 } } }, @@ -660,7 +660,7 @@ "queueFull" : "None" } }, - "id" : 83 + "id" : 103 } } } @@ -670,7 +670,7 @@ ] ] }, - "id" : 84 + "id" : 104 } } } @@ -721,18 +721,18 @@ "name" : "Fw" } }, - "id" : 93 + "id" : 117 } }, "name" : { "AstNode" : { "data" : "Tlm", - "id" : 94 + "id" : 116 } } } }, - "id" : 95 + "id" : 118 } } }, @@ -740,7 +740,7 @@ "queueFull" : "None" } }, - "id" : 96 + "id" : 119 } } } @@ -750,7 +750,7 @@ ] ] }, - "id" : 97 + "id" : 120 } } } @@ -801,18 +801,18 @@ "name" : "Fw" } }, - "id" : 106 + "id" : 133 } }, "name" : { "AstNode" : { "data" : "LogText", - "id" : 107 + "id" : 132 } } } }, - "id" : 108 + "id" : 134 } } }, @@ -820,7 +820,7 @@ "queueFull" : "None" } }, - "id" : 109 + "id" : 135 } } } @@ -830,7 +830,7 @@ ] ] }, - "id" : 110 + "id" : 136 } } } @@ -854,7 +854,7 @@ "name" : "Time" } }, - "id" : 112 + "id" : 138 } }, "baseId" : { @@ -864,7 +864,7 @@ "value" : "0x100" } }, - "id" : 113 + "id" : 139 } }, "implType" : "None", @@ -876,7 +876,7 @@ "initSpecs" : [ ] }, - "id" : 114 + "id" : 140 } } } @@ -900,7 +900,7 @@ "name" : "Command" } }, - "id" : 116 + "id" : 142 } }, "baseId" : { @@ -910,7 +910,7 @@ "value" : "0x200" } }, - "id" : 117 + "id" : 143 } }, "implType" : "None", @@ -922,7 +922,7 @@ "initSpecs" : [ ] }, - "id" : 118 + "id" : 144 } } } @@ -946,7 +946,7 @@ "name" : "Event" } }, - "id" : 120 + "id" : 146 } }, "baseId" : { @@ -956,7 +956,7 @@ "value" : "0x300" } }, - "id" : 121 + "id" : 147 } }, "implType" : "None", @@ -968,7 +968,7 @@ "initSpecs" : [ ] }, - "id" : 122 + "id" : 148 } } } @@ -992,7 +992,7 @@ "name" : "Health" } }, - "id" : 124 + "id" : 150 } }, "baseId" : { @@ -1002,7 +1002,7 @@ "value" : "0x400" } }, - "id" : 125 + "id" : 151 } }, "implType" : "None", @@ -1014,7 +1014,7 @@ "initSpecs" : [ ] }, - "id" : 126 + "id" : 152 } } } @@ -1038,7 +1038,7 @@ "name" : "Param" } }, - "id" : 128 + "id" : 154 } }, "baseId" : { @@ -1048,7 +1048,7 @@ "value" : "0x500" } }, - "id" : 129 + "id" : 155 } }, "implType" : "None", @@ -1060,7 +1060,7 @@ "initSpecs" : [ ] }, - "id" : 130 + "id" : 156 } } } @@ -1084,7 +1084,7 @@ "name" : "Telemetry" } }, - "id" : 132 + "id" : 158 } }, "baseId" : { @@ -1094,7 +1094,7 @@ "value" : "0x600" } }, - "id" : 133 + "id" : 159 } }, "implType" : "None", @@ -1106,7 +1106,7 @@ "initSpecs" : [ ] }, - "id" : 134 + "id" : 160 } } } @@ -1130,7 +1130,7 @@ "name" : "TextEvent" } }, - "id" : 136 + "id" : 162 } }, "baseId" : { @@ -1140,7 +1140,7 @@ "value" : "0x700" } }, - "id" : 137 + "id" : 163 } }, "implType" : "None", @@ -1152,7 +1152,7 @@ "initSpecs" : [ ] }, - "id" : 138 + "id" : 164 } } } @@ -1186,11 +1186,11 @@ "name" : "c1" } }, - "id" : 238 + "id" : 264 } } }, - "id" : 239 + "id" : 265 } } } @@ -1213,11 +1213,11 @@ "name" : "c2" } }, - "id" : 241 + "id" : 267 } } }, - "id" : 242 + "id" : 268 } } } @@ -1240,11 +1240,11 @@ "name" : "c3" } }, - "id" : 244 + "id" : 270 } } }, - "id" : 245 + "id" : 271 } } } @@ -1267,11 +1267,11 @@ "name" : "c4" } }, - "id" : 247 + "id" : 273 } } }, - "id" : 248 + "id" : 274 } } } @@ -1294,11 +1294,11 @@ "name" : "c5" } }, - "id" : 250 + "id" : 276 } } }, - "id" : 251 + "id" : 277 } } } @@ -1321,11 +1321,11 @@ "name" : "c6" } }, - "id" : 253 + "id" : 279 } } }, - "id" : 254 + "id" : 280 } } } @@ -1348,11 +1348,11 @@ "name" : "c7" } }, - "id" : 256 + "id" : 282 } } }, - "id" : 257 + "id" : 283 } } } @@ -1381,14 +1381,14 @@ "name" : "c1" } }, - "id" : 259 + "id" : 285 } }, "targets" : [ ] } }, - "id" : 260 + "id" : 286 } } } @@ -1417,14 +1417,14 @@ "name" : "c2" } }, - "id" : 262 + "id" : 288 } }, "targets" : [ ] } }, - "id" : 263 + "id" : 289 } } } @@ -1453,14 +1453,14 @@ "name" : "c3" } }, - "id" : 265 + "id" : 291 } }, "targets" : [ ] } }, - "id" : 266 + "id" : 292 } } } @@ -1489,14 +1489,14 @@ "name" : "c4" } }, - "id" : 268 + "id" : 294 } }, "targets" : [ ] } }, - "id" : 269 + "id" : 295 } } } @@ -1525,14 +1525,14 @@ "name" : "c5" } }, - "id" : 271 + "id" : 297 } }, "targets" : [ ] } }, - "id" : 272 + "id" : 298 } } } @@ -1561,14 +1561,14 @@ "name" : "c6" } }, - "id" : 274 + "id" : 300 } }, "targets" : [ ] } }, - "id" : 275 + "id" : 301 } } } @@ -1597,14 +1597,14 @@ "name" : "c7" } }, - "id" : 283 + "id" : 309 } }, "targets" : [ ] } }, - "id" : 284 + "id" : 310 } } } @@ -1616,7 +1616,7 @@ "implements" : [ ] }, - "id" : 285 + "id" : 311 } } } @@ -1651,7 +1651,7 @@ ], "returnType" : "None" }, - "id" : 286 + "id" : 312 } } } @@ -1672,7 +1672,7 @@ ], "returnType" : "None" }, - "id" : 287 + "id" : 313 } } } @@ -1693,7 +1693,7 @@ ], "returnType" : "None" }, - "id" : 288 + "id" : 314 } } } @@ -1714,7 +1714,7 @@ ], "returnType" : "None" }, - "id" : 289 + "id" : 315 } } } @@ -1735,7 +1735,7 @@ ], "returnType" : "None" }, - "id" : 290 + "id" : 316 } } } @@ -1756,7 +1756,7 @@ ], "returnType" : "None" }, - "id" : 291 + "id" : 317 } } } @@ -1777,7 +1777,7 @@ ], "returnType" : "None" }, - "id" : 292 + "id" : 318 } } } @@ -1798,7 +1798,7 @@ ], "returnType" : "None" }, - "id" : 293 + "id" : 319 } } } @@ -1819,7 +1819,7 @@ ], "returnType" : "None" }, - "id" : 294 + "id" : 320 } } } @@ -1840,7 +1840,7 @@ ], "returnType" : "None" }, - "id" : 297 + "id" : 323 } } } @@ -1850,7 +1850,7 @@ ] ] }, - "id" : 298 + "id" : 324 } } } @@ -1881,7 +1881,7 @@ ], "returnType" : "None" }, - "id" : 301 + "id" : 327 } } } @@ -1891,7 +1891,7 @@ ] ] }, - "id" : 302 + "id" : 328 } } } @@ -1909,1517 +1909,1976 @@ "0" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "2.34", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "1" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "2.37", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "2" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "2.34", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "3" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "2.5", - "includingLoc" : "None" + "pos" : "2.34", + "includingLoc" : "None", + "expandingLoc" : "None" }, "4" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "2.34", - "includingLoc" : "None" + "pos" : "2.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "5" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "2.37", - "includingLoc" : "None" + "pos" : "2.34", + "includingLoc" : "None", + "expandingLoc" : "None" }, "6" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "2.34", - "includingLoc" : "None" + "pos" : "2.37", + "includingLoc" : "None", + "expandingLoc" : "None" }, "7" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "2.5", - "includingLoc" : "None" + "pos" : "2.34", + "includingLoc" : "None", + "expandingLoc" : "None" }, "8" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "2.34", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "9" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "2.37", - "includingLoc" : "None" + "pos" : "2.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "10" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "2.34", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "11" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "2.5", - "includingLoc" : "None" + "pos" : "2.37", + "includingLoc" : "None", + "expandingLoc" : "None" }, "12" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "1.1", - "includingLoc" : "None" + "pos" : "2.34", + "includingLoc" : "None", + "expandingLoc" : "None" }, "13" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "6.28", - "includingLoc" : "None" + "pos" : "2.34", + "includingLoc" : "None", + "expandingLoc" : "None" }, "14" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "6.31", - "includingLoc" : "None" + "pos" : "2.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "15" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "6.28", - "includingLoc" : "None" + "pos" : "1.1", + "includingLoc" : "None", + "expandingLoc" : "None" }, "16" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "6.5", - "includingLoc" : "None" + "pos" : "6.28", + "includingLoc" : "None", + "expandingLoc" : "None" }, "17" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "7.32", - "includingLoc" : "None" + "pos" : "6.31", + "includingLoc" : "None", + "expandingLoc" : "None" }, "18" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "7.35", - "includingLoc" : "None" + "pos" : "6.28", + "includingLoc" : "None", + "expandingLoc" : "None" }, "19" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "7.32", - "includingLoc" : "None" + "pos" : "6.28", + "includingLoc" : "None", + "expandingLoc" : "None" }, "20" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "7.5", - "includingLoc" : "None" + "pos" : "6.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "21" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "8.37", - "includingLoc" : "None" + "pos" : "7.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "22" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "8.40", - "includingLoc" : "None" + "pos" : "7.35", + "includingLoc" : "None", + "expandingLoc" : "None" }, "23" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "8.37", - "includingLoc" : "None" + "pos" : "7.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "24" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "8.5", - "includingLoc" : "None" + "pos" : "7.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "25" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "9.26", - "includingLoc" : "None" + "pos" : "7.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "26" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "9.29", - "includingLoc" : "None" + "pos" : "8.37", + "includingLoc" : "None", + "expandingLoc" : "None" }, "27" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "9.26", - "includingLoc" : "None" + "pos" : "8.40", + "includingLoc" : "None", + "expandingLoc" : "None" }, "28" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "9.5", - "includingLoc" : "None" + "pos" : "8.37", + "includingLoc" : "None", + "expandingLoc" : "None" }, "29" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "9.26", - "includingLoc" : "None" + "pos" : "8.37", + "includingLoc" : "None", + "expandingLoc" : "None" }, "30" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "9.29", - "includingLoc" : "None" + "pos" : "8.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "31" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "9.26", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "32" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "9.5", - "includingLoc" : "None" + "pos" : "9.29", + "includingLoc" : "None", + "expandingLoc" : "None" }, "33" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "9.26", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "34" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "9.29", - "includingLoc" : "None" + "pos" : "9.26", + "includingLoc" : "None", + "expandingLoc" : "None" }, "35" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "9.26", - "includingLoc" : "None" + "pos" : "9.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "36" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "9.5", - "includingLoc" : "None" + "pos" : "9.26", + "includingLoc" : "None", + "expandingLoc" : "None" }, "37" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "5.1", - "includingLoc" : "None" + "pos" : "9.29", + "includingLoc" : "None", + "expandingLoc" : "None" }, "38" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "13.31", - "includingLoc" : "None" + "pos" : "9.26", + "includingLoc" : "None", + "expandingLoc" : "None" }, "39" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "13.34", - "includingLoc" : "None" + "pos" : "9.26", + "includingLoc" : "None", + "expandingLoc" : "None" }, "40" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "13.31", - "includingLoc" : "None" + "pos" : "9.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "41" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "13.5", - "includingLoc" : "None" + "pos" : "9.26", + "includingLoc" : "None", + "expandingLoc" : "None" }, "42" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "13.31", - "includingLoc" : "None" + "pos" : "9.29", + "includingLoc" : "None", + "expandingLoc" : "None" }, "43" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "13.34", - "includingLoc" : "None" + "pos" : "9.26", + "includingLoc" : "None", + "expandingLoc" : "None" }, "44" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "13.31", - "includingLoc" : "None" + "pos" : "9.26", + "includingLoc" : "None", + "expandingLoc" : "None" }, "45" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "13.5", - "includingLoc" : "None" + "pos" : "9.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "46" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "13.31", - "includingLoc" : "None" + "pos" : "5.1", + "includingLoc" : "None", + "expandingLoc" : "None" }, "47" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "13.34", - "includingLoc" : "None" + "pos" : "13.31", + "includingLoc" : "None", + "expandingLoc" : "None" }, "48" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "13.31", - "includingLoc" : "None" + "pos" : "13.34", + "includingLoc" : "None", + "expandingLoc" : "None" }, "49" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "13.5", - "includingLoc" : "None" + "pos" : "13.31", + "includingLoc" : "None", + "expandingLoc" : "None" }, "50" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "12.1", - "includingLoc" : "None" + "pos" : "13.31", + "includingLoc" : "None", + "expandingLoc" : "None" }, "51" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "17.27", - "includingLoc" : "None" + "pos" : "13.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "52" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "17.31", - "includingLoc" : "None" + "pos" : "13.31", + "includingLoc" : "None", + "expandingLoc" : "None" }, "53" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "17.27", - "includingLoc" : "None" + "pos" : "13.34", + "includingLoc" : "None", + "expandingLoc" : "None" }, "54" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "17.5", - "includingLoc" : "None" + "pos" : "13.31", + "includingLoc" : "None", + "expandingLoc" : "None" }, "55" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "18.33", - "includingLoc" : "None" + "pos" : "13.31", + "includingLoc" : "None", + "expandingLoc" : "None" }, "56" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "18.37", - "includingLoc" : "None" + "pos" : "13.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "57" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "18.33", - "includingLoc" : "None" + "pos" : "13.31", + "includingLoc" : "None", + "expandingLoc" : "None" }, "58" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "18.5", - "includingLoc" : "None" + "pos" : "13.34", + "includingLoc" : "None", + "expandingLoc" : "None" }, "59" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "18.33", - "includingLoc" : "None" + "pos" : "13.31", + "includingLoc" : "None", + "expandingLoc" : "None" }, "60" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "18.37", - "includingLoc" : "None" + "pos" : "13.31", + "includingLoc" : "None", + "expandingLoc" : "None" }, "61" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "18.33", - "includingLoc" : "None" + "pos" : "13.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "62" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "18.5", - "includingLoc" : "None" + "pos" : "12.1", + "includingLoc" : "None", + "expandingLoc" : "None" }, "63" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "18.33", - "includingLoc" : "None" + "pos" : "17.27", + "includingLoc" : "None", + "expandingLoc" : "None" }, "64" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "18.37", - "includingLoc" : "None" + "pos" : "17.31", + "includingLoc" : "None", + "expandingLoc" : "None" }, "65" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "18.33", - "includingLoc" : "None" + "pos" : "17.27", + "includingLoc" : "None", + "expandingLoc" : "None" }, "66" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "18.5", - "includingLoc" : "None" + "pos" : "17.27", + "includingLoc" : "None", + "expandingLoc" : "None" }, "67" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "16.1", - "includingLoc" : "None" + "pos" : "17.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "68" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "22.31", - "includingLoc" : "None" + "pos" : "18.33", + "includingLoc" : "None", + "expandingLoc" : "None" }, "69" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "22.34", - "includingLoc" : "None" + "pos" : "18.37", + "includingLoc" : "None", + "expandingLoc" : "None" }, "70" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "22.31", - "includingLoc" : "None" + "pos" : "18.33", + "includingLoc" : "None", + "expandingLoc" : "None" }, "71" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "22.5", - "includingLoc" : "None" + "pos" : "18.33", + "includingLoc" : "None", + "expandingLoc" : "None" }, "72" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "23.31", - "includingLoc" : "None" + "pos" : "18.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "73" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "23.34", - "includingLoc" : "None" + "pos" : "18.33", + "includingLoc" : "None", + "expandingLoc" : "None" }, "74" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "23.31", - "includingLoc" : "None" + "pos" : "18.37", + "includingLoc" : "None", + "expandingLoc" : "None" }, "75" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "23.5", - "includingLoc" : "None" + "pos" : "18.33", + "includingLoc" : "None", + "expandingLoc" : "None" }, "76" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "23.31", - "includingLoc" : "None" + "pos" : "18.33", + "includingLoc" : "None", + "expandingLoc" : "None" }, "77" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "23.34", - "includingLoc" : "None" + "pos" : "18.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "78" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "23.31", - "includingLoc" : "None" + "pos" : "18.33", + "includingLoc" : "None", + "expandingLoc" : "None" }, "79" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "23.5", - "includingLoc" : "None" + "pos" : "18.37", + "includingLoc" : "None", + "expandingLoc" : "None" }, "80" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "23.31", - "includingLoc" : "None" + "pos" : "18.33", + "includingLoc" : "None", + "expandingLoc" : "None" }, "81" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "23.34", - "includingLoc" : "None" + "pos" : "18.33", + "includingLoc" : "None", + "expandingLoc" : "None" }, "82" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "23.31", - "includingLoc" : "None" + "pos" : "18.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "83" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "23.5", - "includingLoc" : "None" + "pos" : "16.1", + "includingLoc" : "None", + "expandingLoc" : "None" }, "84" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "21.1", - "includingLoc" : "None" + "pos" : "22.31", + "includingLoc" : "None", + "expandingLoc" : "None" }, "85" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "27.26", - "includingLoc" : "None" + "pos" : "22.34", + "includingLoc" : "None", + "expandingLoc" : "None" }, "86" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "27.29", - "includingLoc" : "None" + "pos" : "22.31", + "includingLoc" : "None", + "expandingLoc" : "None" }, "87" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "27.26", - "includingLoc" : "None" + "pos" : "22.31", + "includingLoc" : "None", + "expandingLoc" : "None" }, "88" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "27.5", - "includingLoc" : "None" + "pos" : "22.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "89" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "27.26", - "includingLoc" : "None" + "pos" : "23.31", + "includingLoc" : "None", + "expandingLoc" : "None" }, "90" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "27.29", - "includingLoc" : "None" + "pos" : "23.34", + "includingLoc" : "None", + "expandingLoc" : "None" }, "91" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "27.26", - "includingLoc" : "None" + "pos" : "23.31", + "includingLoc" : "None", + "expandingLoc" : "None" }, "92" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "27.5", - "includingLoc" : "None" + "pos" : "23.31", + "includingLoc" : "None", + "expandingLoc" : "None" }, "93" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "27.26", - "includingLoc" : "None" + "pos" : "23.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "94" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "27.29", - "includingLoc" : "None" + "pos" : "23.31", + "includingLoc" : "None", + "expandingLoc" : "None" }, "95" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "27.26", - "includingLoc" : "None" + "pos" : "23.34", + "includingLoc" : "None", + "expandingLoc" : "None" }, "96" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "27.5", - "includingLoc" : "None" + "pos" : "23.31", + "includingLoc" : "None", + "expandingLoc" : "None" }, "97" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "26.1", - "includingLoc" : "None" + "pos" : "23.31", + "includingLoc" : "None", + "expandingLoc" : "None" }, "98" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "31.35", - "includingLoc" : "None" + "pos" : "23.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "99" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "31.38", - "includingLoc" : "None" + "pos" : "23.31", + "includingLoc" : "None", + "expandingLoc" : "None" }, "100" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "31.35", - "includingLoc" : "None" + "pos" : "23.34", + "includingLoc" : "None", + "expandingLoc" : "None" }, "101" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "31.5", - "includingLoc" : "None" + "pos" : "23.31", + "includingLoc" : "None", + "expandingLoc" : "None" }, "102" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "31.35", - "includingLoc" : "None" + "pos" : "23.31", + "includingLoc" : "None", + "expandingLoc" : "None" }, "103" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "31.38", - "includingLoc" : "None" + "pos" : "23.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "104" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "31.35", - "includingLoc" : "None" + "pos" : "21.1", + "includingLoc" : "None", + "expandingLoc" : "None" }, "105" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "31.5", - "includingLoc" : "None" + "pos" : "27.26", + "includingLoc" : "None", + "expandingLoc" : "None" }, "106" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "31.35", - "includingLoc" : "None" + "pos" : "27.29", + "includingLoc" : "None", + "expandingLoc" : "None" }, "107" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "31.38", - "includingLoc" : "None" + "pos" : "27.26", + "includingLoc" : "None", + "expandingLoc" : "None" }, "108" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "31.35", - "includingLoc" : "None" + "pos" : "27.26", + "includingLoc" : "None", + "expandingLoc" : "None" }, "109" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "31.5", - "includingLoc" : "None" + "pos" : "27.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "110" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "30.1", - "includingLoc" : "None" + "pos" : "27.26", + "includingLoc" : "None", + "expandingLoc" : "None" }, "111" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "34.14", - "includingLoc" : "None" + "pos" : "27.29", + "includingLoc" : "None", + "expandingLoc" : "None" }, "112" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "34.14", - "includingLoc" : "None" + "pos" : "27.26", + "includingLoc" : "None", + "expandingLoc" : "None" }, "113" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "34.27", - "includingLoc" : "None" + "pos" : "27.26", + "includingLoc" : "None", + "expandingLoc" : "None" }, "114" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "34.1", - "includingLoc" : "None" + "pos" : "27.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "115" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "35.14", - "includingLoc" : "None" + "pos" : "27.26", + "includingLoc" : "None", + "expandingLoc" : "None" }, "116" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "35.14", - "includingLoc" : "None" + "pos" : "27.29", + "includingLoc" : "None", + "expandingLoc" : "None" }, "117" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "35.30", - "includingLoc" : "None" + "pos" : "27.26", + "includingLoc" : "None", + "expandingLoc" : "None" }, "118" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "35.1", - "includingLoc" : "None" + "pos" : "27.26", + "includingLoc" : "None", + "expandingLoc" : "None" }, "119" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "36.14", - "includingLoc" : "None" + "pos" : "27.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "120" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "36.14", - "includingLoc" : "None" + "pos" : "26.1", + "includingLoc" : "None", + "expandingLoc" : "None" }, "121" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "36.28", - "includingLoc" : "None" + "pos" : "31.35", + "includingLoc" : "None", + "expandingLoc" : "None" }, "122" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "36.1", - "includingLoc" : "None" + "pos" : "31.38", + "includingLoc" : "None", + "expandingLoc" : "None" }, "123" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "37.14", - "includingLoc" : "None" + "pos" : "31.35", + "includingLoc" : "None", + "expandingLoc" : "None" }, "124" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "37.14", - "includingLoc" : "None" + "pos" : "31.35", + "includingLoc" : "None", + "expandingLoc" : "None" }, "125" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "37.29", - "includingLoc" : "None" + "pos" : "31.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "126" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "37.1", - "includingLoc" : "None" + "pos" : "31.35", + "includingLoc" : "None", + "expandingLoc" : "None" }, "127" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "38.14", - "includingLoc" : "None" + "pos" : "31.38", + "includingLoc" : "None", + "expandingLoc" : "None" }, "128" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "38.14", - "includingLoc" : "None" + "pos" : "31.35", + "includingLoc" : "None", + "expandingLoc" : "None" }, "129" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "38.28", - "includingLoc" : "None" + "pos" : "31.35", + "includingLoc" : "None", + "expandingLoc" : "None" }, "130" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "38.1", - "includingLoc" : "None" + "pos" : "31.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "131" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "39.14", - "includingLoc" : "None" + "pos" : "31.35", + "includingLoc" : "None", + "expandingLoc" : "None" }, "132" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "39.14", - "includingLoc" : "None" + "pos" : "31.38", + "includingLoc" : "None", + "expandingLoc" : "None" }, "133" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "39.32", - "includingLoc" : "None" + "pos" : "31.35", + "includingLoc" : "None", + "expandingLoc" : "None" }, "134" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "39.1", - "includingLoc" : "None" + "pos" : "31.35", + "includingLoc" : "None", + "expandingLoc" : "None" }, "135" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "40.14", - "includingLoc" : "None" + "pos" : "31.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "136" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "40.14", - "includingLoc" : "None" + "pos" : "30.1", + "includingLoc" : "None", + "expandingLoc" : "None" }, "137" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "40.32", - "includingLoc" : "None" + "pos" : "34.14", + "includingLoc" : "None", + "expandingLoc" : "None" }, "138" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "40.1", - "includingLoc" : "None" + "pos" : "34.14", + "includingLoc" : "None", + "expandingLoc" : "None" }, "139" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "43.14", - "includingLoc" : "None" + "pos" : "34.27", + "includingLoc" : "None", + "expandingLoc" : "None" }, "140" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "43.14", - "includingLoc" : "None" + "pos" : "34.1", + "includingLoc" : "None", + "expandingLoc" : "None" }, "141" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "43.5", - "includingLoc" : "None" + "pos" : "35.14", + "includingLoc" : "None", + "expandingLoc" : "None" }, "142" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "44.14", - "includingLoc" : "None" + "pos" : "35.14", + "includingLoc" : "None", + "expandingLoc" : "None" }, "143" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "44.14", - "includingLoc" : "None" + "pos" : "35.30", + "includingLoc" : "None", + "expandingLoc" : "None" }, "144" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "44.5", - "includingLoc" : "None" + "pos" : "35.1", + "includingLoc" : "None", + "expandingLoc" : "None" }, "145" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "45.14", - "includingLoc" : "None" + "pos" : "36.14", + "includingLoc" : "None", + "expandingLoc" : "None" }, "146" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "45.14", - "includingLoc" : "None" + "pos" : "36.14", + "includingLoc" : "None", + "expandingLoc" : "None" }, "147" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "45.5", - "includingLoc" : "None" + "pos" : "36.28", + "includingLoc" : "None", + "expandingLoc" : "None" }, "148" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "46.14", - "includingLoc" : "None" + "pos" : "36.1", + "includingLoc" : "None", + "expandingLoc" : "None" }, "149" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "46.14", - "includingLoc" : "None" + "pos" : "37.14", + "includingLoc" : "None", + "expandingLoc" : "None" }, "150" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "46.5", - "includingLoc" : "None" + "pos" : "37.14", + "includingLoc" : "None", + "expandingLoc" : "None" }, "151" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "47.14", - "includingLoc" : "None" + "pos" : "37.29", + "includingLoc" : "None", + "expandingLoc" : "None" }, "152" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "47.14", - "includingLoc" : "None" + "pos" : "37.1", + "includingLoc" : "None", + "expandingLoc" : "None" }, "153" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "47.5", - "includingLoc" : "None" + "pos" : "38.14", + "includingLoc" : "None", + "expandingLoc" : "None" }, "154" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "48.14", - "includingLoc" : "None" + "pos" : "38.14", + "includingLoc" : "None", + "expandingLoc" : "None" }, "155" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "48.14", - "includingLoc" : "None" + "pos" : "38.28", + "includingLoc" : "None", + "expandingLoc" : "None" }, "156" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "48.5", - "includingLoc" : "None" + "pos" : "38.1", + "includingLoc" : "None", + "expandingLoc" : "None" }, "157" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "49.14", - "includingLoc" : "None" + "pos" : "39.14", + "includingLoc" : "None", + "expandingLoc" : "None" }, "158" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "49.14", - "includingLoc" : "None" + "pos" : "39.14", + "includingLoc" : "None", + "expandingLoc" : "None" }, "159" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "49.5", - "includingLoc" : "None" + "pos" : "39.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "160" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "51.31", - "includingLoc" : "None" + "pos" : "39.1", + "includingLoc" : "None", + "expandingLoc" : "None" }, "161" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "51.31", - "includingLoc" : "None" + "pos" : "40.14", + "includingLoc" : "None", + "expandingLoc" : "None" }, "162" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "51.5", - "includingLoc" : "None" + "pos" : "40.14", + "includingLoc" : "None", + "expandingLoc" : "None" }, "163" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "52.34", - "includingLoc" : "None" + "pos" : "40.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "164" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "52.34", - "includingLoc" : "None" + "pos" : "40.1", + "includingLoc" : "None", + "expandingLoc" : "None" }, "165" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "52.5", - "includingLoc" : "None" + "pos" : "43.14", + "includingLoc" : "None", + "expandingLoc" : "None" }, "166" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "53.32", - "includingLoc" : "None" + "pos" : "43.14", + "includingLoc" : "None", + "expandingLoc" : "None" }, "167" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "53.32", - "includingLoc" : "None" + "pos" : "43.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "168" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "53.5", - "includingLoc" : "None" + "pos" : "44.14", + "includingLoc" : "None", + "expandingLoc" : "None" }, "169" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "54.33", - "includingLoc" : "None" + "pos" : "44.14", + "includingLoc" : "None", + "expandingLoc" : "None" }, "170" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "54.33", - "includingLoc" : "None" + "pos" : "44.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "171" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "54.5", - "includingLoc" : "None" + "pos" : "45.14", + "includingLoc" : "None", + "expandingLoc" : "None" }, "172" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "55.32", - "includingLoc" : "None" + "pos" : "45.14", + "includingLoc" : "None", + "expandingLoc" : "None" }, "173" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "55.32", - "includingLoc" : "None" + "pos" : "45.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "174" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "55.5", - "includingLoc" : "None" + "pos" : "46.14", + "includingLoc" : "None", + "expandingLoc" : "None" }, "175" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "56.36", - "includingLoc" : "None" + "pos" : "46.14", + "includingLoc" : "None", + "expandingLoc" : "None" }, "176" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "56.36", - "includingLoc" : "None" + "pos" : "46.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "177" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "56.5", - "includingLoc" : "None" + "pos" : "47.14", + "includingLoc" : "None", + "expandingLoc" : "None" }, "178" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "57.37", - "includingLoc" : "None" + "pos" : "47.14", + "includingLoc" : "None", + "expandingLoc" : "None" }, "179" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "57.37", - "includingLoc" : "None" + "pos" : "47.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "180" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "57.5", - "includingLoc" : "None" + "pos" : "48.14", + "includingLoc" : "None", + "expandingLoc" : "None" }, "181" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "57.37", - "includingLoc" : "None" + "pos" : "48.14", + "includingLoc" : "None", + "expandingLoc" : "None" }, "182" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "57.37", - "includingLoc" : "None" + "pos" : "48.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "183" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "57.5", - "includingLoc" : "None" + "pos" : "49.14", + "includingLoc" : "None", + "expandingLoc" : "None" }, "184" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "57.37", - "includingLoc" : "None" + "pos" : "49.14", + "includingLoc" : "None", + "expandingLoc" : "None" }, "185" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "57.37", - "includingLoc" : "None" + "pos" : "49.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "186" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "57.5", - "includingLoc" : "None" + "pos" : "51.31", + "includingLoc" : "None", + "expandingLoc" : "None" }, "187" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "42.1", - "includingLoc" : "None" + "pos" : "51.31", + "includingLoc" : "None", + "expandingLoc" : "None" }, "188" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "43.14", - "includingLoc" : "None" + "pos" : "51.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "189" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "43.14", - "includingLoc" : "None" + "pos" : "52.34", + "includingLoc" : "None", + "expandingLoc" : "None" }, "190" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "43.5", - "includingLoc" : "None" + "pos" : "52.34", + "includingLoc" : "None", + "expandingLoc" : "None" }, "191" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "44.14", - "includingLoc" : "None" + "pos" : "52.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "192" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "44.14", - "includingLoc" : "None" + "pos" : "53.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "193" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "44.5", - "includingLoc" : "None" + "pos" : "53.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "194" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "45.14", - "includingLoc" : "None" + "pos" : "53.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "195" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "45.14", - "includingLoc" : "None" + "pos" : "54.33", + "includingLoc" : "None", + "expandingLoc" : "None" }, "196" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "45.5", - "includingLoc" : "None" + "pos" : "54.33", + "includingLoc" : "None", + "expandingLoc" : "None" }, "197" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "46.14", - "includingLoc" : "None" + "pos" : "54.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "198" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "46.14", - "includingLoc" : "None" + "pos" : "55.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "199" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "46.5", - "includingLoc" : "None" + "pos" : "55.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "200" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "47.14", - "includingLoc" : "None" + "pos" : "55.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "201" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", - "pos" : "47.14", - "includingLoc" : "None" + "pos" : "56.36", + "includingLoc" : "None", + "expandingLoc" : "None" }, "202" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", + "pos" : "56.36", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "203" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", + "pos" : "56.5", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "204" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", + "pos" : "57.37", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "205" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", + "pos" : "57.37", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "206" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", + "pos" : "57.5", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "207" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", + "pos" : "57.37", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "208" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", + "pos" : "57.37", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "209" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", + "pos" : "57.5", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "210" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", + "pos" : "57.37", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "211" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", + "pos" : "57.37", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "212" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", + "pos" : "57.5", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "213" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", + "pos" : "42.1", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "214" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", + "pos" : "43.14", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "215" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", + "pos" : "43.14", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "216" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", + "pos" : "43.5", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "217" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", + "pos" : "44.14", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "218" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", + "pos" : "44.14", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "219" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", + "pos" : "44.5", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "220" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", + "pos" : "45.14", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "221" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", + "pos" : "45.14", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "222" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", + "pos" : "45.5", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "223" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", + "pos" : "46.14", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "224" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", + "pos" : "46.14", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "225" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", + "pos" : "46.5", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "226" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", + "pos" : "47.14", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "227" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", + "pos" : "47.14", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "228" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "47.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "203" : { + "229" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "48.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "204" : { + "230" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "48.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "205" : { + "231" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "48.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "206" : { + "232" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "49.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "207" : { + "233" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "49.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "208" : { + "234" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "49.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "209" : { + "235" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "51.31", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "210" : { + "236" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "51.31", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "211" : { + "237" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "51.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "212" : { + "238" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "52.34", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "213" : { + "239" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "52.34", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "214" : { + "240" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "52.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "215" : { + "241" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "53.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "216" : { + "242" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "53.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "217" : { + "243" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "53.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "218" : { + "244" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "54.33", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "219" : { + "245" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "54.33", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "220" : { + "246" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "54.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "221" : { + "247" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "55.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "222" : { + "248" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "55.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "223" : { + "249" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "55.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "224" : { + "250" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "56.36", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "225" : { + "251" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "56.36", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "226" : { + "252" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "56.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "227" : { + "253" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "57.37", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "228" : { + "254" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "57.37", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "229" : { + "255" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "57.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "230" : { + "256" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "57.37", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "231" : { + "257" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "57.37", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "232" : { + "258" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "57.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "233" : { + "259" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "57.37", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "234" : { + "260" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "57.37", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "235" : { + "261" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "57.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "236" : { + "262" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "42.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "237" : { + "263" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "43.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "238" : { + "264" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "43.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "239" : { + "265" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "43.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "240" : { + "266" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "44.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "241" : { + "267" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "44.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "242" : { + "268" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "44.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "243" : { + "269" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "45.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "244" : { + "270" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "45.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "245" : { + "271" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "45.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "246" : { + "272" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "46.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "247" : { + "273" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "46.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "248" : { + "274" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "46.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "249" : { + "275" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "47.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "250" : { + "276" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "47.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "251" : { + "277" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "47.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "252" : { + "278" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "48.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "253" : { + "279" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "48.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "254" : { + "280" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "48.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "255" : { + "281" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "49.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "256" : { + "282" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "49.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "257" : { + "283" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "49.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "258" : { + "284" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "51.31", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "259" : { + "285" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "51.31", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "260" : { + "286" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "51.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "261" : { + "287" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "52.34", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "262" : { + "288" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "52.34", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "263" : { + "289" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "52.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "264" : { + "290" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "53.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "265" : { + "291" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "53.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "266" : { + "292" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "53.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "267" : { + "293" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "54.33", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "268" : { + "294" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "54.33", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "269" : { + "295" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "54.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "270" : { + "296" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "55.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "271" : { + "297" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "55.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "272" : { + "298" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "55.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "273" : { + "299" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "56.36", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "274" : { + "300" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "56.36", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "275" : { + "301" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "56.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "276" : { + "302" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "57.37", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "277" : { + "303" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "57.37", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "278" : { + "304" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "57.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "279" : { + "305" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "57.37", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "280" : { + "306" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "57.37", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "281" : { + "307" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "57.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "282" : { + "308" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "57.37", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "283" : { + "309" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "57.37", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "284" : { + "310" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "57.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "285" : { + "311" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "42.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "286" : { + "312" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/fprime/defs.fpp", "pos" : "4.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "287" : { + "313" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/fprime/defs.fpp", "pos" : "5.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "288" : { + "314" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/fprime/defs.fpp", "pos" : "6.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "289" : { + "315" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/fprime/defs.fpp", "pos" : "7.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "290" : { + "316" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/fprime/defs.fpp", "pos" : "8.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "291" : { + "317" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/fprime/defs.fpp", "pos" : "9.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "292" : { + "318" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/fprime/defs.fpp", "pos" : "10.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "293" : { + "319" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/fprime/defs.fpp", "pos" : "11.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "294" : { + "320" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/fprime/defs.fpp", "pos" : "12.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "295" : { + "321" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/fprime/defs.fpp", "pos" : "13.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "296" : { + "322" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/fprime/defs.fpp", "pos" : "13.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "297" : { + "323" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/fprime/defs.fpp", "pos" : "13.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "298" : { + "324" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/fprime/defs.fpp", "pos" : "3.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "299" : { + "325" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/fprime/defs.fpp", "pos" : "17.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "300" : { + "326" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/fprime/defs.fpp", "pos" : "17.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "301" : { + "327" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/fprime/defs.fpp", "pos" : "17.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "302" : { + "328" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/fprime/defs.fpp", "pos" : "16.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } } } @@ -3427,9 +3886,9 @@ "fppVersion" : "[ fpp version ]", "analysis" : { "componentInstanceMap" : { - "114" : { + "140" : { "aNode" : { - "astNodeId" : 114 + "astNodeId" : 140 }, "qualifiedName" : { "qualifier" : [ @@ -3437,7 +3896,7 @@ "base" : "c1" }, "component" : { - "astNodeId" : 12 + "astNodeId" : 15 }, "baseId" : 256, "maxId" : 255, @@ -3450,9 +3909,9 @@ } }, - "118" : { + "144" : { "aNode" : { - "astNodeId" : 118 + "astNodeId" : 144 }, "qualifiedName" : { "qualifier" : [ @@ -3460,7 +3919,7 @@ "base" : "c2" }, "component" : { - "astNodeId" : 37 + "astNodeId" : 46 }, "baseId" : 512, "maxId" : 511, @@ -3473,9 +3932,9 @@ } }, - "122" : { + "148" : { "aNode" : { - "astNodeId" : 122 + "astNodeId" : 148 }, "qualifiedName" : { "qualifier" : [ @@ -3483,7 +3942,7 @@ "base" : "c3" }, "component" : { - "astNodeId" : 50 + "astNodeId" : 62 }, "baseId" : 768, "maxId" : 767, @@ -3496,9 +3955,9 @@ } }, - "126" : { + "152" : { "aNode" : { - "astNodeId" : 126 + "astNodeId" : 152 }, "qualifiedName" : { "qualifier" : [ @@ -3506,7 +3965,7 @@ "base" : "c4" }, "component" : { - "astNodeId" : 67 + "astNodeId" : 83 }, "baseId" : 1024, "maxId" : 1023, @@ -3519,9 +3978,9 @@ } }, - "130" : { + "156" : { "aNode" : { - "astNodeId" : 130 + "astNodeId" : 156 }, "qualifiedName" : { "qualifier" : [ @@ -3529,7 +3988,7 @@ "base" : "c5" }, "component" : { - "astNodeId" : 84 + "astNodeId" : 104 }, "baseId" : 1280, "maxId" : 1279, @@ -3542,9 +4001,9 @@ } }, - "134" : { + "160" : { "aNode" : { - "astNodeId" : 134 + "astNodeId" : 160 }, "qualifiedName" : { "qualifier" : [ @@ -3552,7 +4011,7 @@ "base" : "c6" }, "component" : { - "astNodeId" : 97 + "astNodeId" : 120 }, "baseId" : 1536, "maxId" : 1535, @@ -3565,9 +4024,9 @@ } }, - "138" : { + "164" : { "aNode" : { - "astNodeId" : 138 + "astNodeId" : 164 }, "qualifiedName" : { "qualifier" : [ @@ -3575,7 +4034,7 @@ "base" : "c7" }, "component" : { - "astNodeId" : 110 + "astNodeId" : 136 }, "baseId" : 1792, "maxId" : 1791, @@ -3590,9 +4049,9 @@ } }, "componentMap" : { - "12" : { + "15" : { "aNode" : { - "astNodeId" : 12 + "astNodeId" : 15 }, "portInterface" : { "instanceType" : "component", @@ -3600,7 +4059,7 @@ "timeGetPort" : { "General" : { "aNode" : { - "astNodeId" : 11 + "astNodeId" : 14 }, "specifier" : { "kind" : { @@ -3612,7 +4071,7 @@ "size" : "None", "port" : { "Some" : { - "astNodeId" : 10 + "astNodeId" : 13 } }, "priority" : "None", @@ -3624,7 +4083,7 @@ "DefPort" : { "symbol" : { "Port" : { - "nodeId" : 293, + "nodeId" : 319, "unqualifiedName" : "Time" } } @@ -3674,9 +4133,9 @@ }, "defaultRecordId" : 0 }, - "37" : { + "46" : { "aNode" : { - "astNodeId" : 37 + "astNodeId" : 46 }, "portInterface" : { "instanceType" : "component", @@ -3684,7 +4143,7 @@ "cmdIn" : { "General" : { "aNode" : { - "astNodeId" : 16 + "astNodeId" : 20 }, "specifier" : { "kind" : { @@ -3696,7 +4155,7 @@ "size" : "None", "port" : { "Some" : { - "astNodeId" : 15 + "astNodeId" : 19 } }, "priority" : "None", @@ -3708,7 +4167,7 @@ "DefPort" : { "symbol" : { "Port" : { - "nodeId" : 286, + "nodeId" : 312, "unqualifiedName" : "Cmd" } } @@ -3721,7 +4180,7 @@ "cmdRegOut" : { "General" : { "aNode" : { - "astNodeId" : 20 + "astNodeId" : 25 }, "specifier" : { "kind" : { @@ -3733,7 +4192,7 @@ "size" : "None", "port" : { "Some" : { - "astNodeId" : 19 + "astNodeId" : 24 } }, "priority" : "None", @@ -3745,7 +4204,7 @@ "DefPort" : { "symbol" : { "Port" : { - "nodeId" : 287, + "nodeId" : 313, "unqualifiedName" : "CmdReg" } } @@ -3758,7 +4217,7 @@ "cmdResponseOut" : { "General" : { "aNode" : { - "astNodeId" : 24 + "astNodeId" : 30 }, "specifier" : { "kind" : { @@ -3770,7 +4229,7 @@ "size" : "None", "port" : { "Some" : { - "astNodeId" : 23 + "astNodeId" : 29 } }, "priority" : "None", @@ -3782,7 +4241,7 @@ "DefPort" : { "symbol" : { "Port" : { - "nodeId" : 288, + "nodeId" : 314, "unqualifiedName" : "CmdResponse" } } @@ -3795,7 +4254,7 @@ "cmdSend" : { "General" : { "aNode" : { - "astNodeId" : 36 + "astNodeId" : 45 }, "specifier" : { "kind" : { @@ -3807,7 +4266,7 @@ "size" : "None", "port" : { "Some" : { - "astNodeId" : 35 + "astNodeId" : 44 } }, "priority" : "None", @@ -3819,7 +4278,7 @@ "DefPort" : { "symbol" : { "Port" : { - "nodeId" : 286, + "nodeId" : 312, "unqualifiedName" : "Cmd" } } @@ -3869,9 +4328,9 @@ }, "defaultRecordId" : 0 }, - "50" : { + "62" : { "aNode" : { - "astNodeId" : 50 + "astNodeId" : 62 }, "portInterface" : { "instanceType" : "component", @@ -3879,7 +4338,7 @@ "eventLog" : { "General" : { "aNode" : { - "astNodeId" : 49 + "astNodeId" : 61 }, "specifier" : { "kind" : { @@ -3891,7 +4350,7 @@ "size" : "None", "port" : { "Some" : { - "astNodeId" : 48 + "astNodeId" : 60 } }, "priority" : "None", @@ -3903,7 +4362,7 @@ "DefPort" : { "symbol" : { "Port" : { - "nodeId" : 289, + "nodeId" : 315, "unqualifiedName" : "Log" } } @@ -3953,9 +4412,9 @@ }, "defaultRecordId" : 0 }, - "67" : { + "83" : { "aNode" : { - "astNodeId" : 67 + "astNodeId" : 83 }, "portInterface" : { "instanceType" : "component", @@ -3963,7 +4422,7 @@ "PingReturn" : { "General" : { "aNode" : { - "astNodeId" : 66 + "astNodeId" : 82 }, "specifier" : { "kind" : { @@ -3975,7 +4434,7 @@ "size" : "None", "port" : { "Some" : { - "astNodeId" : 65 + "astNodeId" : 81 } }, "priority" : "None", @@ -3987,7 +4446,7 @@ "DefPort" : { "symbol" : { "Port" : { - "nodeId" : 301, + "nodeId" : 327, "unqualifiedName" : "Ping" } } @@ -4000,7 +4459,7 @@ "PingSend" : { "General" : { "aNode" : { - "astNodeId" : 54 + "astNodeId" : 67 }, "specifier" : { "kind" : { @@ -4012,7 +4471,7 @@ "size" : "None", "port" : { "Some" : { - "astNodeId" : 53 + "astNodeId" : 66 } }, "priority" : "None", @@ -4024,7 +4483,7 @@ "DefPort" : { "symbol" : { "Port" : { - "nodeId" : 301, + "nodeId" : 327, "unqualifiedName" : "Ping" } } @@ -4074,9 +4533,9 @@ }, "defaultRecordId" : 0 }, - "84" : { + "104" : { "aNode" : { - "astNodeId" : 84 + "astNodeId" : 104 }, "portInterface" : { "instanceType" : "component", @@ -4084,7 +4543,7 @@ "paramGet" : { "General" : { "aNode" : { - "astNodeId" : 71 + "astNodeId" : 88 }, "specifier" : { "kind" : { @@ -4096,7 +4555,7 @@ "size" : "None", "port" : { "Some" : { - "astNodeId" : 70 + "astNodeId" : 87 } }, "priority" : "None", @@ -4108,7 +4567,7 @@ "DefPort" : { "symbol" : { "Port" : { - "nodeId" : 291, + "nodeId" : 317, "unqualifiedName" : "PrmGet" } } @@ -4121,7 +4580,7 @@ "paramSet" : { "General" : { "aNode" : { - "astNodeId" : 83 + "astNodeId" : 103 }, "specifier" : { "kind" : { @@ -4133,7 +4592,7 @@ "size" : "None", "port" : { "Some" : { - "astNodeId" : 82 + "astNodeId" : 102 } }, "priority" : "None", @@ -4145,7 +4604,7 @@ "DefPort" : { "symbol" : { "Port" : { - "nodeId" : 292, + "nodeId" : 318, "unqualifiedName" : "PrmSet" } } @@ -4195,9 +4654,9 @@ }, "defaultRecordId" : 0 }, - "97" : { + "120" : { "aNode" : { - "astNodeId" : 97 + "astNodeId" : 120 }, "portInterface" : { "instanceType" : "component", @@ -4205,7 +4664,7 @@ "tlm" : { "General" : { "aNode" : { - "astNodeId" : 96 + "astNodeId" : 119 }, "specifier" : { "kind" : { @@ -4217,7 +4676,7 @@ "size" : "None", "port" : { "Some" : { - "astNodeId" : 95 + "astNodeId" : 118 } }, "priority" : "None", @@ -4229,7 +4688,7 @@ "DefPort" : { "symbol" : { "Port" : { - "nodeId" : 294, + "nodeId" : 320, "unqualifiedName" : "Tlm" } } @@ -4279,9 +4738,9 @@ }, "defaultRecordId" : 0 }, - "110" : { + "136" : { "aNode" : { - "astNodeId" : 110 + "astNodeId" : 136 }, "portInterface" : { "instanceType" : "component", @@ -4289,7 +4748,7 @@ "textEventLog" : { "General" : { "aNode" : { - "astNodeId" : 109 + "astNodeId" : 135 }, "specifier" : { "kind" : { @@ -4301,7 +4760,7 @@ "size" : "None", "port" : { "Some" : { - "astNodeId" : 108 + "astNodeId" : 134 } }, "priority" : "None", @@ -4313,7 +4772,7 @@ "DefPort" : { "symbol" : { "Port" : { - "nodeId" : 290, + "nodeId" : 316, "unqualifiedName" : "LogText" } } @@ -4381,170 +4840,170 @@ "locationSpecifierMap" : [ ], "parentSymbolMap" : { - "286" : { + "312" : { "Module" : { - "nodeId" : 298, + "nodeId" : 324, "unqualifiedName" : "Fw" } }, - "287" : { + "313" : { "Module" : { - "nodeId" : 298, + "nodeId" : 324, "unqualifiedName" : "Fw" } }, - "288" : { + "314" : { "Module" : { - "nodeId" : 298, + "nodeId" : 324, "unqualifiedName" : "Fw" } }, - "289" : { + "315" : { "Module" : { - "nodeId" : 298, + "nodeId" : 324, "unqualifiedName" : "Fw" } }, - "290" : { + "316" : { "Module" : { - "nodeId" : 298, + "nodeId" : 324, "unqualifiedName" : "Fw" } }, - "291" : { + "317" : { "Module" : { - "nodeId" : 298, + "nodeId" : 324, "unqualifiedName" : "Fw" } }, - "292" : { + "318" : { "Module" : { - "nodeId" : 298, + "nodeId" : 324, "unqualifiedName" : "Fw" } }, - "293" : { + "319" : { "Module" : { - "nodeId" : 298, + "nodeId" : 324, "unqualifiedName" : "Fw" } }, - "294" : { + "320" : { "Module" : { - "nodeId" : 298, + "nodeId" : 324, "unqualifiedName" : "Fw" } }, - "297" : { + "323" : { "Module" : { - "nodeId" : 298, + "nodeId" : 324, "unqualifiedName" : "Fw" } }, - "301" : { + "327" : { "Module" : { - "nodeId" : 302, + "nodeId" : 328, "unqualifiedName" : "Svc" } } }, "symbolScopeMap" : { - "12" : { + "15" : { "map" : { } }, - "37" : { + "46" : { "map" : { } }, - "50" : { + "62" : { "map" : { } }, - "67" : { + "83" : { "map" : { } }, - "84" : { + "104" : { "map" : { } }, - "97" : { + "120" : { "map" : { } }, - "110" : { + "136" : { "map" : { } }, - "298" : { + "324" : { "map" : { "Port" : { "map" : { "Cmd" : { "Port" : { - "nodeId" : 286, + "nodeId" : 312, "unqualifiedName" : "Cmd" } }, "CmdReg" : { "Port" : { - "nodeId" : 287, + "nodeId" : 313, "unqualifiedName" : "CmdReg" } }, "CmdResponse" : { "Port" : { - "nodeId" : 288, + "nodeId" : 314, "unqualifiedName" : "CmdResponse" } }, "Log" : { "Port" : { - "nodeId" : 289, + "nodeId" : 315, "unqualifiedName" : "Log" } }, "LogText" : { "Port" : { - "nodeId" : 290, + "nodeId" : 316, "unqualifiedName" : "LogText" } }, "PrmGet" : { "Port" : { - "nodeId" : 291, + "nodeId" : 317, "unqualifiedName" : "PrmGet" } }, "PrmSet" : { "Port" : { - "nodeId" : 292, + "nodeId" : 318, "unqualifiedName" : "PrmSet" } }, "Time" : { "Port" : { - "nodeId" : 293, + "nodeId" : 319, "unqualifiedName" : "Time" } }, "Tlm" : { "Port" : { - "nodeId" : 294, + "nodeId" : 320, "unqualifiedName" : "Tlm" } }, "TlmGet" : { "Port" : { - "nodeId" : 297, + "nodeId" : 323, "unqualifiedName" : "TlmGet" } } @@ -4552,13 +5011,13 @@ } } }, - "302" : { + "328" : { "map" : { "Port" : { "map" : { "Ping" : { "Port" : { - "nodeId" : 301, + "nodeId" : 327, "unqualifiedName" : "Ping" } } @@ -4568,9 +5027,9 @@ } }, "topologyMap" : { - "285" : { + "311" : { "aNode" : { - "astNodeId" : 285 + "astNodeId" : 311 }, "qualifiedName" : { "qualifier" : [ @@ -4581,127 +5040,130 @@ }, "directComponentInstances" : { - "114" : { + "140" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "43.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "118" : { + "144" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "44.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "122" : { + "148" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "45.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "126" : { + "152" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "46.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "130" : { + "156" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "47.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "134" : { + "160" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "48.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, - "138" : { + "164" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "49.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } + }, + "directTemplateArgs" : { + }, "transitiveImportSet" : [ ], "instanceMap" : [ [ { - "InterfaceComponentInstance" : { - "astNodeId" : 114 - } + "InterfaceComponentInstance" : 140 }, { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "43.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } ], [ { - "InterfaceComponentInstance" : { - "astNodeId" : 118 - } + "InterfaceComponentInstance" : 144 }, { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "44.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } ], [ { - "InterfaceComponentInstance" : { - "astNodeId" : 122 - } + "InterfaceComponentInstance" : 148 }, { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "45.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } ], [ { - "InterfaceComponentInstance" : { - "astNodeId" : 126 - } + "InterfaceComponentInstance" : 152 }, { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "46.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } ], [ { - "InterfaceComponentInstance" : { - "astNodeId" : 130 - } + "InterfaceComponentInstance" : 156 }, { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "47.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } ], [ { - "InterfaceComponentInstance" : { - "astNodeId" : 134 - } + "InterfaceComponentInstance" : 160 }, { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "48.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } ], [ { - "InterfaceComponentInstance" : { - "astNodeId" : 138 - } + "InterfaceComponentInstance" : 164 }, { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "49.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } ] ], @@ -4722,7 +5184,7 @@ "patternMap" : { "Command" : { "aNode" : { - "astNodeId" : 263 + "astNodeId" : 289 }, "ast" : { "kind" : { @@ -4731,7 +5193,7 @@ } }, "source" : { - "astNodeId" : 262 + "astNodeId" : 288 }, "targets" : [ ] @@ -4739,7 +5201,7 @@ "source" : [ { "aNode" : { - "astNodeId" : 118 + "astNodeId" : 144 }, "qualifiedName" : { "qualifier" : [ @@ -4747,7 +5209,7 @@ "base" : "c2" }, "component" : { - "astNodeId" : 37 + "astNodeId" : 46 }, "baseId" : 512, "maxId" : 511, @@ -4763,7 +5225,8 @@ { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "52.34", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } ], "targets" : [ @@ -4771,7 +5234,7 @@ }, "Event" : { "aNode" : { - "astNodeId" : 266 + "astNodeId" : 292 }, "ast" : { "kind" : { @@ -4780,7 +5243,7 @@ } }, "source" : { - "astNodeId" : 265 + "astNodeId" : 291 }, "targets" : [ ] @@ -4788,7 +5251,7 @@ "source" : [ { "aNode" : { - "astNodeId" : 122 + "astNodeId" : 148 }, "qualifiedName" : { "qualifier" : [ @@ -4796,7 +5259,7 @@ "base" : "c3" }, "component" : { - "astNodeId" : 50 + "astNodeId" : 62 }, "baseId" : 768, "maxId" : 767, @@ -4812,7 +5275,8 @@ { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "53.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } ], "targets" : [ @@ -4820,7 +5284,7 @@ }, "Health" : { "aNode" : { - "astNodeId" : 269 + "astNodeId" : 295 }, "ast" : { "kind" : { @@ -4829,7 +5293,7 @@ } }, "source" : { - "astNodeId" : 268 + "astNodeId" : 294 }, "targets" : [ ] @@ -4837,7 +5301,7 @@ "source" : [ { "aNode" : { - "astNodeId" : 126 + "astNodeId" : 152 }, "qualifiedName" : { "qualifier" : [ @@ -4845,7 +5309,7 @@ "base" : "c4" }, "component" : { - "astNodeId" : 67 + "astNodeId" : 83 }, "baseId" : 1024, "maxId" : 1023, @@ -4861,7 +5325,8 @@ { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "54.33", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } ], "targets" : [ @@ -4869,7 +5334,7 @@ }, "Param" : { "aNode" : { - "astNodeId" : 272 + "astNodeId" : 298 }, "ast" : { "kind" : { @@ -4878,7 +5343,7 @@ } }, "source" : { - "astNodeId" : 271 + "astNodeId" : 297 }, "targets" : [ ] @@ -4886,7 +5351,7 @@ "source" : [ { "aNode" : { - "astNodeId" : 130 + "astNodeId" : 156 }, "qualifiedName" : { "qualifier" : [ @@ -4894,7 +5359,7 @@ "base" : "c5" }, "component" : { - "astNodeId" : 84 + "astNodeId" : 104 }, "baseId" : 1280, "maxId" : 1279, @@ -4910,7 +5375,8 @@ { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "55.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } ], "targets" : [ @@ -4918,7 +5384,7 @@ }, "Telemetry" : { "aNode" : { - "astNodeId" : 275 + "astNodeId" : 301 }, "ast" : { "kind" : { @@ -4927,7 +5393,7 @@ } }, "source" : { - "astNodeId" : 274 + "astNodeId" : 300 }, "targets" : [ ] @@ -4935,7 +5401,7 @@ "source" : [ { "aNode" : { - "astNodeId" : 134 + "astNodeId" : 160 }, "qualifiedName" : { "qualifier" : [ @@ -4943,7 +5409,7 @@ "base" : "c6" }, "component" : { - "astNodeId" : 97 + "astNodeId" : 120 }, "baseId" : 1536, "maxId" : 1535, @@ -4959,7 +5425,8 @@ { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "56.36", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } ], "targets" : [ @@ -4967,7 +5434,7 @@ }, "TextEvent" : { "aNode" : { - "astNodeId" : 284 + "astNodeId" : 310 }, "ast" : { "kind" : { @@ -4976,7 +5443,7 @@ } }, "source" : { - "astNodeId" : 283 + "astNodeId" : 309 }, "targets" : [ ] @@ -4984,7 +5451,7 @@ "source" : [ { "aNode" : { - "astNodeId" : 138 + "astNodeId" : 164 }, "qualifiedName" : { "qualifier" : [ @@ -4992,7 +5459,7 @@ "base" : "c7" }, "component" : { - "astNodeId" : 110 + "astNodeId" : 136 }, "baseId" : 1792, "maxId" : 1791, @@ -5008,7 +5475,8 @@ { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "57.37", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } ], "targets" : [ @@ -5016,7 +5484,7 @@ }, "Time" : { "aNode" : { - "astNodeId" : 260 + "astNodeId" : 286 }, "ast" : { "kind" : { @@ -5025,7 +5493,7 @@ } }, "source" : { - "astNodeId" : 259 + "astNodeId" : 285 }, "targets" : [ ] @@ -5033,7 +5501,7 @@ "source" : [ { "aNode" : { - "astNodeId" : 114 + "astNodeId" : 140 }, "qualifiedName" : { "qualifier" : [ @@ -5041,7 +5509,7 @@ "base" : "c1" }, "component" : { - "astNodeId" : 12 + "astNodeId" : 15 }, "baseId" : 256, "maxId" : 255, @@ -5057,7 +5525,8 @@ { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/patternedConnections.fpp", "pos" : "51.31", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } ], "targets" : [ @@ -5081,14 +5550,12 @@ "unconnectedPortSet" : [ { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 114 - } + "InterfaceComponentInstance" : 140 }, "portInstance" : { "General" : { "aNode" : { - "astNodeId" : 11 + "astNodeId" : 14 }, "specifier" : { "kind" : { @@ -5100,7 +5567,7 @@ "size" : "None", "port" : { "Some" : { - "astNodeId" : 10 + "astNodeId" : 13 } }, "priority" : "None", @@ -5112,7 +5579,7 @@ "DefPort" : { "symbol" : { "Port" : { - "nodeId" : 293, + "nodeId" : 319, "unqualifiedName" : "Time" } } @@ -5125,14 +5592,12 @@ }, { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 118 - } + "InterfaceComponentInstance" : 144 }, "portInstance" : { "General" : { "aNode" : { - "astNodeId" : 16 + "astNodeId" : 20 }, "specifier" : { "kind" : { @@ -5144,7 +5609,7 @@ "size" : "None", "port" : { "Some" : { - "astNodeId" : 15 + "astNodeId" : 19 } }, "priority" : "None", @@ -5156,7 +5621,7 @@ "DefPort" : { "symbol" : { "Port" : { - "nodeId" : 286, + "nodeId" : 312, "unqualifiedName" : "Cmd" } } @@ -5169,14 +5634,12 @@ }, { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 118 - } + "InterfaceComponentInstance" : 144 }, "portInstance" : { "General" : { "aNode" : { - "astNodeId" : 20 + "astNodeId" : 25 }, "specifier" : { "kind" : { @@ -5188,7 +5651,7 @@ "size" : "None", "port" : { "Some" : { - "astNodeId" : 19 + "astNodeId" : 24 } }, "priority" : "None", @@ -5200,7 +5663,7 @@ "DefPort" : { "symbol" : { "Port" : { - "nodeId" : 287, + "nodeId" : 313, "unqualifiedName" : "CmdReg" } } @@ -5213,14 +5676,12 @@ }, { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 118 - } + "InterfaceComponentInstance" : 144 }, "portInstance" : { "General" : { "aNode" : { - "astNodeId" : 24 + "astNodeId" : 30 }, "specifier" : { "kind" : { @@ -5232,7 +5693,7 @@ "size" : "None", "port" : { "Some" : { - "astNodeId" : 23 + "astNodeId" : 29 } }, "priority" : "None", @@ -5244,7 +5705,7 @@ "DefPort" : { "symbol" : { "Port" : { - "nodeId" : 288, + "nodeId" : 314, "unqualifiedName" : "CmdResponse" } } @@ -5257,14 +5718,12 @@ }, { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 118 - } + "InterfaceComponentInstance" : 144 }, "portInstance" : { "General" : { "aNode" : { - "astNodeId" : 36 + "astNodeId" : 45 }, "specifier" : { "kind" : { @@ -5276,7 +5735,7 @@ "size" : "None", "port" : { "Some" : { - "astNodeId" : 35 + "astNodeId" : 44 } }, "priority" : "None", @@ -5288,7 +5747,7 @@ "DefPort" : { "symbol" : { "Port" : { - "nodeId" : 286, + "nodeId" : 312, "unqualifiedName" : "Cmd" } } @@ -5301,14 +5760,12 @@ }, { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 122 - } + "InterfaceComponentInstance" : 148 }, "portInstance" : { "General" : { "aNode" : { - "astNodeId" : 49 + "astNodeId" : 61 }, "specifier" : { "kind" : { @@ -5320,7 +5777,7 @@ "size" : "None", "port" : { "Some" : { - "astNodeId" : 48 + "astNodeId" : 60 } }, "priority" : "None", @@ -5332,7 +5789,7 @@ "DefPort" : { "symbol" : { "Port" : { - "nodeId" : 289, + "nodeId" : 315, "unqualifiedName" : "Log" } } @@ -5345,14 +5802,12 @@ }, { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 126 - } + "InterfaceComponentInstance" : 152 }, "portInstance" : { "General" : { "aNode" : { - "astNodeId" : 66 + "astNodeId" : 82 }, "specifier" : { "kind" : { @@ -5364,7 +5819,7 @@ "size" : "None", "port" : { "Some" : { - "astNodeId" : 65 + "astNodeId" : 81 } }, "priority" : "None", @@ -5376,7 +5831,7 @@ "DefPort" : { "symbol" : { "Port" : { - "nodeId" : 301, + "nodeId" : 327, "unqualifiedName" : "Ping" } } @@ -5389,14 +5844,12 @@ }, { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 126 - } + "InterfaceComponentInstance" : 152 }, "portInstance" : { "General" : { "aNode" : { - "astNodeId" : 54 + "astNodeId" : 67 }, "specifier" : { "kind" : { @@ -5408,7 +5861,7 @@ "size" : "None", "port" : { "Some" : { - "astNodeId" : 53 + "astNodeId" : 66 } }, "priority" : "None", @@ -5420,7 +5873,7 @@ "DefPort" : { "symbol" : { "Port" : { - "nodeId" : 301, + "nodeId" : 327, "unqualifiedName" : "Ping" } } @@ -5433,14 +5886,12 @@ }, { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 130 - } + "InterfaceComponentInstance" : 156 }, "portInstance" : { "General" : { "aNode" : { - "astNodeId" : 71 + "astNodeId" : 88 }, "specifier" : { "kind" : { @@ -5452,7 +5903,7 @@ "size" : "None", "port" : { "Some" : { - "astNodeId" : 70 + "astNodeId" : 87 } }, "priority" : "None", @@ -5464,7 +5915,7 @@ "DefPort" : { "symbol" : { "Port" : { - "nodeId" : 291, + "nodeId" : 317, "unqualifiedName" : "PrmGet" } } @@ -5477,14 +5928,12 @@ }, { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 130 - } + "InterfaceComponentInstance" : 156 }, "portInstance" : { "General" : { "aNode" : { - "astNodeId" : 83 + "astNodeId" : 103 }, "specifier" : { "kind" : { @@ -5496,7 +5945,7 @@ "size" : "None", "port" : { "Some" : { - "astNodeId" : 82 + "astNodeId" : 102 } }, "priority" : "None", @@ -5508,7 +5957,7 @@ "DefPort" : { "symbol" : { "Port" : { - "nodeId" : 292, + "nodeId" : 318, "unqualifiedName" : "PrmSet" } } @@ -5521,14 +5970,12 @@ }, { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 134 - } + "InterfaceComponentInstance" : 160 }, "portInstance" : { "General" : { "aNode" : { - "astNodeId" : 96 + "astNodeId" : 119 }, "specifier" : { "kind" : { @@ -5540,7 +5987,7 @@ "size" : "None", "port" : { "Some" : { - "astNodeId" : 95 + "astNodeId" : 118 } }, "priority" : "None", @@ -5552,7 +5999,7 @@ "DefPort" : { "symbol" : { "Port" : { - "nodeId" : 294, + "nodeId" : 320, "unqualifiedName" : "Tlm" } } @@ -5565,14 +6012,12 @@ }, { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 138 - } + "InterfaceComponentInstance" : 164 }, "portInstance" : { "General" : { "aNode" : { - "astNodeId" : 109 + "astNodeId" : 135 }, "specifier" : { "kind" : { @@ -5584,7 +6029,7 @@ "size" : "None", "port" : { "Some" : { - "astNodeId" : 108 + "astNodeId" : 134 } }, "priority" : "None", @@ -5596,7 +6041,7 @@ "DefPort" : { "symbol" : { "Port" : { - "nodeId" : 290, + "nodeId" : 316, "unqualifiedName" : "LogText" } } @@ -5611,49 +6056,49 @@ } }, "typeMap" : { - "113" : { + "139" : { "Int" : { "Integer" : { } } }, - "117" : { + "143" : { "Int" : { "Integer" : { } } }, - "121" : { + "147" : { "Int" : { "Integer" : { } } }, - "125" : { + "151" : { "Int" : { "Integer" : { } } }, - "129" : { + "155" : { "Int" : { "Integer" : { } } }, - "133" : { + "159" : { "Int" : { "Integer" : { } } }, - "137" : { + "163" : { "Int" : { "Integer" : { @@ -5662,309 +6107,309 @@ } }, "useDefMap" : { - "8" : { + "12" : { "Module" : { - "nodeId" : 298, + "nodeId" : 324, "unqualifiedName" : "Fw" } }, - "10" : { + "13" : { "Port" : { - "nodeId" : 293, + "nodeId" : 319, "unqualifiedName" : "Time" } }, - "13" : { + "18" : { "Module" : { - "nodeId" : 298, + "nodeId" : 324, "unqualifiedName" : "Fw" } }, - "15" : { + "19" : { "Port" : { - "nodeId" : 286, + "nodeId" : 312, "unqualifiedName" : "Cmd" } }, - "17" : { + "23" : { "Module" : { - "nodeId" : 298, + "nodeId" : 324, "unqualifiedName" : "Fw" } }, - "19" : { + "24" : { "Port" : { - "nodeId" : 287, + "nodeId" : 313, "unqualifiedName" : "CmdReg" } }, - "21" : { + "28" : { "Module" : { - "nodeId" : 298, + "nodeId" : 324, "unqualifiedName" : "Fw" } }, - "23" : { + "29" : { "Port" : { - "nodeId" : 288, + "nodeId" : 314, "unqualifiedName" : "CmdResponse" } }, - "33" : { + "43" : { "Module" : { - "nodeId" : 298, + "nodeId" : 324, "unqualifiedName" : "Fw" } }, - "35" : { + "44" : { "Port" : { - "nodeId" : 286, + "nodeId" : 312, "unqualifiedName" : "Cmd" } }, - "46" : { + "59" : { "Module" : { - "nodeId" : 298, + "nodeId" : 324, "unqualifiedName" : "Fw" } }, - "48" : { + "60" : { "Port" : { - "nodeId" : 289, + "nodeId" : 315, "unqualifiedName" : "Log" } }, - "51" : { + "65" : { "Module" : { - "nodeId" : 302, + "nodeId" : 328, "unqualifiedName" : "Svc" } }, - "53" : { + "66" : { "Port" : { - "nodeId" : 301, + "nodeId" : 327, "unqualifiedName" : "Ping" } }, - "63" : { + "80" : { "Module" : { - "nodeId" : 302, + "nodeId" : 328, "unqualifiedName" : "Svc" } }, - "65" : { + "81" : { "Port" : { - "nodeId" : 301, + "nodeId" : 327, "unqualifiedName" : "Ping" } }, - "68" : { + "86" : { "Module" : { - "nodeId" : 298, + "nodeId" : 324, "unqualifiedName" : "Fw" } }, - "70" : { + "87" : { "Port" : { - "nodeId" : 291, + "nodeId" : 317, "unqualifiedName" : "PrmGet" } }, - "80" : { + "101" : { "Module" : { - "nodeId" : 298, + "nodeId" : 324, "unqualifiedName" : "Fw" } }, - "82" : { + "102" : { "Port" : { - "nodeId" : 292, + "nodeId" : 318, "unqualifiedName" : "PrmSet" } }, - "93" : { + "117" : { "Module" : { - "nodeId" : 298, + "nodeId" : 324, "unqualifiedName" : "Fw" } }, - "95" : { + "118" : { "Port" : { - "nodeId" : 294, + "nodeId" : 320, "unqualifiedName" : "Tlm" } }, - "106" : { + "133" : { "Module" : { - "nodeId" : 298, + "nodeId" : 324, "unqualifiedName" : "Fw" } }, - "108" : { + "134" : { "Port" : { - "nodeId" : 290, + "nodeId" : 316, "unqualifiedName" : "LogText" } }, - "112" : { + "138" : { "Component" : { - "nodeId" : 12, + "nodeId" : 15, "unqualifiedName" : "Time" } }, - "116" : { + "142" : { "Component" : { - "nodeId" : 37, + "nodeId" : 46, "unqualifiedName" : "Command" } }, - "120" : { + "146" : { "Component" : { - "nodeId" : 50, + "nodeId" : 62, "unqualifiedName" : "Event" } }, - "124" : { + "150" : { "Component" : { - "nodeId" : 67, + "nodeId" : 83, "unqualifiedName" : "Health" } }, - "128" : { + "154" : { "Component" : { - "nodeId" : 84, + "nodeId" : 104, "unqualifiedName" : "Param" } }, - "132" : { + "158" : { "Component" : { - "nodeId" : 97, + "nodeId" : 120, "unqualifiedName" : "Telemetry" } }, - "136" : { + "162" : { "Component" : { - "nodeId" : 110, + "nodeId" : 136, "unqualifiedName" : "TextEvent" } }, - "238" : { + "264" : { "ComponentInstance" : { - "nodeId" : 114, + "nodeId" : 140, "unqualifiedName" : "c1" } }, - "241" : { + "267" : { "ComponentInstance" : { - "nodeId" : 118, + "nodeId" : 144, "unqualifiedName" : "c2" } }, - "244" : { + "270" : { "ComponentInstance" : { - "nodeId" : 122, + "nodeId" : 148, "unqualifiedName" : "c3" } }, - "247" : { + "273" : { "ComponentInstance" : { - "nodeId" : 126, + "nodeId" : 152, "unqualifiedName" : "c4" } }, - "250" : { + "276" : { "ComponentInstance" : { - "nodeId" : 130, + "nodeId" : 156, "unqualifiedName" : "c5" } }, - "253" : { + "279" : { "ComponentInstance" : { - "nodeId" : 134, + "nodeId" : 160, "unqualifiedName" : "c6" } }, - "256" : { + "282" : { "ComponentInstance" : { - "nodeId" : 138, + "nodeId" : 164, "unqualifiedName" : "c7" } }, - "259" : { + "285" : { "ComponentInstance" : { - "nodeId" : 114, + "nodeId" : 140, "unqualifiedName" : "c1" } }, - "262" : { + "288" : { "ComponentInstance" : { - "nodeId" : 118, + "nodeId" : 144, "unqualifiedName" : "c2" } }, - "265" : { + "291" : { "ComponentInstance" : { - "nodeId" : 122, + "nodeId" : 148, "unqualifiedName" : "c3" } }, - "268" : { + "294" : { "ComponentInstance" : { - "nodeId" : 126, + "nodeId" : 152, "unqualifiedName" : "c4" } }, - "271" : { + "297" : { "ComponentInstance" : { - "nodeId" : 130, + "nodeId" : 156, "unqualifiedName" : "c5" } }, - "274" : { + "300" : { "ComponentInstance" : { - "nodeId" : 134, + "nodeId" : 160, "unqualifiedName" : "c6" } }, - "283" : { + "309" : { "ComponentInstance" : { - "nodeId" : 138, + "nodeId" : 164, "unqualifiedName" : "c7" } } }, "valueMap" : { - "113" : { + "139" : { "Integer" : { "value" : 256 } }, - "117" : { + "143" : { "Integer" : { "value" : 512 } }, - "121" : { + "147" : { "Integer" : { "value" : 768 } }, - "125" : { + "151" : { "Integer" : { "value" : 1024 } }, - "129" : { + "155" : { "Integer" : { "value" : 1280 } }, - "133" : { + "159" : { "Integer" : { "value" : 1536 } }, - "137" : { + "163" : { "Integer" : { "value" : 1792 } diff --git a/compiler/tools/fpp-to-json/test/ports.ref.txt b/compiler/tools/fpp-to-json/test/ports.ref.txt index 166ecc73a3..c7c0d65364 100644 --- a/compiler/tools/fpp-to-json/test/ports.ref.txt +++ b/compiler/tools/fpp-to-json/test/ports.ref.txt @@ -794,7 +794,7 @@ "name" : "M" } }, - "id" : 87 + "id" : 89 } }, "name" : { @@ -805,7 +805,7 @@ } } }, - "id" : 89 + "id" : 90 } }, "baseId" : { @@ -815,7 +815,7 @@ "value" : "0x2100" } }, - "id" : 90 + "id" : 91 } }, "implType" : "None", @@ -828,7 +828,7 @@ "value" : "10" } }, - "id" : 91 + "id" : 92 } } }, @@ -838,7 +838,7 @@ "initSpecs" : [ ] }, - "id" : 92 + "id" : 93 } } } @@ -882,11 +882,11 @@ "name" : "i" } }, - "id" : 120 + "id" : 121 } } }, - "id" : 121 + "id" : 122 } } } @@ -898,7 +898,7 @@ "implements" : [ ] }, - "id" : 122 + "id" : 123 } } } @@ -908,7 +908,7 @@ ] ] }, - "id" : 123 + "id" : 124 } } } @@ -926,622 +926,752 @@ "0" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "1.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "1" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "1.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "2" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "2.40", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "3" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "2.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "4" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "4.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "5" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "6.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "6" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "7.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "7" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "7.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "8" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "7.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "9" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "7.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "10" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "7.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "11" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "7.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "12" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "7.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "13" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "8.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "14" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "8.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "15" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "8.20", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "16" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "8.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "17" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "8.28", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "18" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "8.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "19" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "8.28", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "20" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "8.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "21" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "8.28", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "22" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "8.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "23" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "8.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "24" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "10.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "25" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "10.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "26" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "10.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "27" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "10.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "28" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "10.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "29" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "11.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "30" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "12.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "31" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "12.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "32" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "12.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "33" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "12.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "34" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "12.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "35" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "12.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "36" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "12.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "37" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "12.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "38" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "12.28", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "39" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "12.28", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "40" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "12.28", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "41" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "12.21", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "42" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "12.28", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "43" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "12.28", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "44" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "12.28", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "45" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "12.21", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "46" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "12.28", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "47" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "12.28", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "48" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "12.28", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "49" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "12.21", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "50" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "12.34", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "51" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "12.34", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "52" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "12.34", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "53" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "12.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "54" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "14.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "55" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "14.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "56" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "14.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "57" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "14.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "58" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "14.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "59" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "16.21", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "60" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "16.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "61" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "16.21", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "62" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "16.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "63" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "16.21", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "64" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "16.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "65" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "16.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "66" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "16.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "67" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "16.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "68" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "16.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "69" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "20.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "70" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "20.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "71" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "20.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "72" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "19.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "73" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "24.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "74" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "30.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "75" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "30.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "76" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "30.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "77" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "27.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "78" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "30.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "79" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "30.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "80" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "30.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "81" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "27.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "82" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "30.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "83" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "30.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "84" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "30.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "85" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "27.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "86" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "23.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "87" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "36.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "88" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "36.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "89" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "36.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "90" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", - "pos" : "36.25", - "includingLoc" : "None" + "pos" : "36.13", + "includingLoc" : "None", + "expandingLoc" : "None" }, "91" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", - "pos" : "37.16", - "includingLoc" : "None" + "pos" : "36.25", + "includingLoc" : "None", + "expandingLoc" : "None" }, "92" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", - "pos" : "36.1", - "includingLoc" : "None" + "pos" : "37.16", + "includingLoc" : "None", + "expandingLoc" : "None" }, "93" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", - "pos" : "42.18", - "includingLoc" : "None" + "pos" : "36.1", + "includingLoc" : "None", + "expandingLoc" : "None" }, "94" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "42.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "95" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", - "pos" : "42.9", - "includingLoc" : "None" + "pos" : "42.18", + "includingLoc" : "None", + "expandingLoc" : "None" }, "96" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", - "pos" : "42.18", - "includingLoc" : "None" + "pos" : "42.9", + "includingLoc" : "None", + "expandingLoc" : "None" }, "97" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "42.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "98" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", - "pos" : "42.9", - "includingLoc" : "None" + "pos" : "42.18", + "includingLoc" : "None", + "expandingLoc" : "None" }, "99" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", - "pos" : "42.18", - "includingLoc" : "None" + "pos" : "42.9", + "includingLoc" : "None", + "expandingLoc" : "None" }, "100" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "42.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "101" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", - "pos" : "42.9", - "includingLoc" : "None" + "pos" : "42.18", + "includingLoc" : "None", + "expandingLoc" : "None" }, "102" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", - "pos" : "41.5", - "includingLoc" : "None" + "pos" : "42.9", + "includingLoc" : "None", + "expandingLoc" : "None" }, "103" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", - "pos" : "42.18", - "includingLoc" : "None" + "pos" : "41.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "104" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "42.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "105" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", - "pos" : "42.9", - "includingLoc" : "None" + "pos" : "42.18", + "includingLoc" : "None", + "expandingLoc" : "None" }, "106" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", - "pos" : "42.18", - "includingLoc" : "None" + "pos" : "42.9", + "includingLoc" : "None", + "expandingLoc" : "None" }, "107" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "42.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "108" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", - "pos" : "42.9", - "includingLoc" : "None" + "pos" : "42.18", + "includingLoc" : "None", + "expandingLoc" : "None" }, "109" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", - "pos" : "42.18", - "includingLoc" : "None" + "pos" : "42.9", + "includingLoc" : "None", + "expandingLoc" : "None" }, "110" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "42.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "111" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", - "pos" : "42.9", - "includingLoc" : "None" + "pos" : "42.18", + "includingLoc" : "None", + "expandingLoc" : "None" }, "112" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", - "pos" : "41.5", - "includingLoc" : "None" + "pos" : "42.9", + "includingLoc" : "None", + "expandingLoc" : "None" }, "113" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", - "pos" : "42.18", - "includingLoc" : "None" + "pos" : "41.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "114" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "42.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "115" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", - "pos" : "42.9", - "includingLoc" : "None" + "pos" : "42.18", + "includingLoc" : "None", + "expandingLoc" : "None" }, "116" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", - "pos" : "42.18", - "includingLoc" : "None" + "pos" : "42.9", + "includingLoc" : "None", + "expandingLoc" : "None" }, "117" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "42.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "118" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", - "pos" : "42.9", - "includingLoc" : "None" + "pos" : "42.18", + "includingLoc" : "None", + "expandingLoc" : "None" }, "119" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", - "pos" : "42.18", - "includingLoc" : "None" + "pos" : "42.9", + "includingLoc" : "None", + "expandingLoc" : "None" }, "120" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "42.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "121" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", - "pos" : "42.9", - "includingLoc" : "None" + "pos" : "42.18", + "includingLoc" : "None", + "expandingLoc" : "None" }, "122" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", - "pos" : "41.5", - "includingLoc" : "None" + "pos" : "42.9", + "includingLoc" : "None", + "expandingLoc" : "None" }, "123" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", + "pos" : "41.5", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "124" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "40.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } } } @@ -1549,9 +1679,9 @@ "fppVersion" : "[ fpp version ]", "analysis" : { "componentInstanceMap" : { - "92" : { + "93" : { "aNode" : { - "astNodeId" : 92 + "astNodeId" : 93 }, "qualifiedName" : { "qualifier" : [ @@ -1769,7 +1899,7 @@ "unqualifiedName" : "M" } }, - "122" : { + "123" : { "Module" : { "nodeId" : 86, "unqualifiedName" : "M" @@ -1862,7 +1992,7 @@ "map" : { "T" : { "Topology" : { - "nodeId" : 122, + "nodeId" : 123, "unqualifiedName" : "T" } } @@ -1902,9 +2032,9 @@ } }, "topologyMap" : { - "122" : { + "123" : { "aNode" : { - "astNodeId" : 122 + "astNodeId" : 123 }, "qualifiedName" : { "qualifier" : [ @@ -1916,25 +2046,28 @@ }, "directComponentInstances" : { - "92" : { + "93" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "42.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } + }, + "directTemplateArgs" : { + }, "transitiveImportSet" : [ ], "instanceMap" : [ [ { - "InterfaceComponentInstance" : { - "astNodeId" : 92 - } + "InterfaceComponentInstance" : 93 }, { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/ports.fpp", "pos" : "42.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } ] ], @@ -1972,9 +2105,7 @@ "unconnectedPortSet" : [ { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 92 - } + "InterfaceComponentInstance" : 93 }, "portInstance" : { "Special" : { @@ -2341,21 +2472,21 @@ } } }, - "90" : { + "91" : { "Int" : { "Integer" : { } } }, - "91" : { + "92" : { "Int" : { "Integer" : { } } }, - "124" : { + "125" : { "AliasType" : { "node" : { "astNodeId" : 1 @@ -2373,7 +2504,7 @@ } } }, - "125" : { + "126" : { "Int" : { "Integer" : { @@ -2448,35 +2579,41 @@ "unqualifiedName" : "DpResponse" } }, - "87" : { + "89" : { "Module" : { "nodeId" : 86, "unqualifiedName" : "M" } }, - "89" : { + "90" : { "Component" : { "nodeId" : 85, "unqualifiedName" : "Q" } }, - "120" : { + "121" : { "ComponentInstance" : { - "nodeId" : 92, + "nodeId" : 93, "unqualifiedName" : "i" } }, - "124" : { + "125" : { "AliasType" : { "nodeId" : 1, "unqualifiedName" : "FwSizeStoreType" } }, - "125" : { + "126" : { "Constant" : { "nodeId" : 3, "unqualifiedName" : "FW_FIXED_LENGTH_STRING_SIZE" } + }, + "127" : { + "Module" : { + "nodeId" : 72, + "unqualifiedName" : "Fw" + } } }, "valueMap" : { @@ -2574,17 +2711,17 @@ } } }, - "90" : { + "91" : { "Integer" : { "value" : 8448 } }, - "91" : { + "92" : { "Integer" : { "value" : 10 } }, - "125" : { + "126" : { "Integer" : { "value" : 256 } diff --git a/compiler/tools/fpp-to-json/test/queuedComponents.ref.txt b/compiler/tools/fpp-to-json/test/queuedComponents.ref.txt index 54fb54f25c..16dd69207a 100644 --- a/compiler/tools/fpp-to-json/test/queuedComponents.ref.txt +++ b/compiler/tools/fpp-to-json/test/queuedComponents.ref.txt @@ -113,18 +113,18 @@ "name" : "Svc" } }, - "id" : 43 + "id" : 47 } }, "name" : { "AstNode" : { "data" : "Sched", - "id" : 44 + "id" : 46 } } } }, - "id" : 45 + "id" : 48 } } }, @@ -132,7 +132,7 @@ "queueFull" : "None" } }, - "id" : 46 + "id" : 49 } } } @@ -165,7 +165,7 @@ "name" : "Calibration" } }, - "id" : 48 + "id" : 51 } } }, @@ -173,7 +173,7 @@ "queueFull" : "None" } }, - "id" : 49 + "id" : 52 } } } @@ -202,7 +202,7 @@ "queueFull" : "None" } }, - "id" : 50 + "id" : 53 } } } @@ -231,7 +231,7 @@ "queueFull" : "None" } }, - "id" : 51 + "id" : 54 } } } @@ -260,7 +260,7 @@ } } }, - "id" : 52 + "id" : 55 } }, "id" : "None", @@ -271,7 +271,7 @@ "high" : [ ] }, - "id" : 53 + "id" : 56 } } } @@ -300,7 +300,7 @@ } } }, - "id" : 58 + "id" : 61 } }, "id" : "None", @@ -311,7 +311,7 @@ "high" : [ ] }, - "id" : 59 + "id" : 62 } } } @@ -321,7 +321,7 @@ ] ] }, - "id" : 60 + "id" : 63 } } } @@ -331,7 +331,7 @@ ] ] }, - "id" : 61 + "id" : 64 } } } @@ -370,18 +370,18 @@ "name" : "Sensors" } }, - "id" : 74 + "id" : 81 } }, "name" : { "AstNode" : { "data" : "EngineTemp", - "id" : 75 + "id" : 80 } } } }, - "id" : 76 + "id" : 82 } }, "baseId" : { @@ -391,7 +391,7 @@ "value" : "0x100" } }, - "id" : 77 + "id" : 83 } }, "implType" : "None", @@ -404,7 +404,7 @@ "value" : "10" } }, - "id" : 78 + "id" : 84 } } }, @@ -414,7 +414,7 @@ "initSpecs" : [ ] }, - "id" : 79 + "id" : 85 } } } @@ -424,7 +424,7 @@ ] ] }, - "id" : 80 + "id" : 86 } } } @@ -455,7 +455,7 @@ ], "returnType" : "None" }, - "id" : 83 + "id" : 89 } } } @@ -465,7 +465,7 @@ ] ] }, - "id" : 84 + "id" : 90 } } } @@ -496,7 +496,7 @@ ], "returnType" : "None" }, - "id" : 85 + "id" : 91 } } } @@ -517,7 +517,7 @@ ], "returnType" : "None" }, - "id" : 88 + "id" : 94 } } } @@ -527,7 +527,7 @@ ] ] }, - "id" : 89 + "id" : 95 } } } @@ -545,452 +545,578 @@ "0" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", "pos" : "4.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "1" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", "pos" : "4.20", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "2" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", "pos" : "4.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "3" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", "pos" : "4.20", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "4" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", "pos" : "4.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "5" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", "pos" : "4.20", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "6" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", "pos" : "4.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "7" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", "pos" : "10.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "8" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", "pos" : "10.34", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "9" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", "pos" : "10.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "10" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "10.5", - "includingLoc" : "None" + "pos" : "10.30", + "includingLoc" : "None", + "expandingLoc" : "None" }, "11" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "13.37", - "includingLoc" : "None" + "pos" : "10.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "12" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", "pos" : "13.37", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "13" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "13.5", - "includingLoc" : "None" + "pos" : "13.37", + "includingLoc" : "None", + "expandingLoc" : "None" }, "14" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "16.5", - "includingLoc" : "None" + "pos" : "13.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "15" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "19.5", - "includingLoc" : "None" + "pos" : "16.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "16" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "22.28", - "includingLoc" : "None" + "pos" : "19.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "17" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "22.5", - "includingLoc" : "None" + "pos" : "22.28", + "includingLoc" : "None", + "expandingLoc" : "None" }, "18" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "25.25", - "includingLoc" : "None" + "pos" : "22.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "19" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "25.5", - "includingLoc" : "None" + "pos" : "25.25", + "includingLoc" : "None", + "expandingLoc" : "None" }, "20" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "25.25", - "includingLoc" : "None" + "pos" : "25.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "21" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "25.5", - "includingLoc" : "None" + "pos" : "25.25", + "includingLoc" : "None", + "expandingLoc" : "None" }, "22" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "25.25", - "includingLoc" : "None" + "pos" : "25.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "23" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "25.5", - "includingLoc" : "None" + "pos" : "25.25", + "includingLoc" : "None", + "expandingLoc" : "None" }, "24" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "7.3", - "includingLoc" : "None" + "pos" : "25.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "25" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "10.30", - "includingLoc" : "None" + "pos" : "7.3", + "includingLoc" : "None", + "expandingLoc" : "None" }, "26" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "10.34", - "includingLoc" : "None" + "pos" : "10.30", + "includingLoc" : "None", + "expandingLoc" : "None" }, "27" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "10.30", - "includingLoc" : "None" + "pos" : "10.34", + "includingLoc" : "None", + "expandingLoc" : "None" }, "28" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "10.5", - "includingLoc" : "None" + "pos" : "10.30", + "includingLoc" : "None", + "expandingLoc" : "None" }, "29" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "13.37", - "includingLoc" : "None" + "pos" : "10.30", + "includingLoc" : "None", + "expandingLoc" : "None" }, "30" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "13.37", - "includingLoc" : "None" + "pos" : "10.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "31" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "13.5", - "includingLoc" : "None" + "pos" : "13.37", + "includingLoc" : "None", + "expandingLoc" : "None" }, "32" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "16.5", - "includingLoc" : "None" + "pos" : "13.37", + "includingLoc" : "None", + "expandingLoc" : "None" }, "33" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "19.5", - "includingLoc" : "None" + "pos" : "13.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "34" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "22.28", - "includingLoc" : "None" + "pos" : "16.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "35" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "22.5", - "includingLoc" : "None" + "pos" : "19.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "36" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "25.25", - "includingLoc" : "None" + "pos" : "22.28", + "includingLoc" : "None", + "expandingLoc" : "None" }, "37" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "25.5", - "includingLoc" : "None" + "pos" : "22.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "38" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", "pos" : "25.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "39" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", "pos" : "25.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "40" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", "pos" : "25.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "41" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", "pos" : "25.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "42" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "7.3", - "includingLoc" : "None" + "pos" : "25.25", + "includingLoc" : "None", + "expandingLoc" : "None" }, "43" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "10.30", - "includingLoc" : "None" + "pos" : "25.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "44" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "10.34", - "includingLoc" : "None" + "pos" : "7.3", + "includingLoc" : "None", + "expandingLoc" : "None" }, "45" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", "pos" : "10.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "46" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "10.5", - "includingLoc" : "None" + "pos" : "10.34", + "includingLoc" : "None", + "expandingLoc" : "None" }, "47" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "13.37", - "includingLoc" : "None" + "pos" : "10.30", + "includingLoc" : "None", + "expandingLoc" : "None" }, "48" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "13.37", - "includingLoc" : "None" + "pos" : "10.30", + "includingLoc" : "None", + "expandingLoc" : "None" }, "49" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "13.5", - "includingLoc" : "None" + "pos" : "10.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "50" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "16.5", - "includingLoc" : "None" + "pos" : "13.37", + "includingLoc" : "None", + "expandingLoc" : "None" }, "51" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "19.5", - "includingLoc" : "None" + "pos" : "13.37", + "includingLoc" : "None", + "expandingLoc" : "None" }, "52" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "22.28", - "includingLoc" : "None" + "pos" : "13.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "53" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "22.5", - "includingLoc" : "None" + "pos" : "16.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "54" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "25.25", - "includingLoc" : "None" + "pos" : "19.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "55" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "25.5", - "includingLoc" : "None" + "pos" : "22.28", + "includingLoc" : "None", + "expandingLoc" : "None" }, "56" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "25.25", - "includingLoc" : "None" + "pos" : "22.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "57" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "25.5", - "includingLoc" : "None" + "pos" : "25.25", + "includingLoc" : "None", + "expandingLoc" : "None" }, "58" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "25.25", - "includingLoc" : "None" + "pos" : "25.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "59" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "25.5", - "includingLoc" : "None" + "pos" : "25.25", + "includingLoc" : "None", + "expandingLoc" : "None" }, "60" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "7.3", - "includingLoc" : "None" + "pos" : "25.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "61" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "1.1", - "includingLoc" : "None" + "pos" : "25.25", + "includingLoc" : "None", + "expandingLoc" : "None" }, "62" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "34.24", - "includingLoc" : "None" + "pos" : "25.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "63" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "34.32", - "includingLoc" : "None" + "pos" : "7.3", + "includingLoc" : "None", + "expandingLoc" : "None" }, "64" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "34.24", - "includingLoc" : "None" + "pos" : "1.1", + "includingLoc" : "None", + "expandingLoc" : "None" }, "65" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "34.51", - "includingLoc" : "None" + "pos" : "34.24", + "includingLoc" : "None", + "expandingLoc" : "None" }, "66" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "35.16", - "includingLoc" : "None" + "pos" : "34.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "67" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "34.3", - "includingLoc" : "None" + "pos" : "34.24", + "includingLoc" : "None", + "expandingLoc" : "None" }, "68" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", "pos" : "34.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "69" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "34.32", - "includingLoc" : "None" + "pos" : "34.51", + "includingLoc" : "None", + "expandingLoc" : "None" }, "70" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "34.24", - "includingLoc" : "None" + "pos" : "35.16", + "includingLoc" : "None", + "expandingLoc" : "None" }, "71" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "34.51", - "includingLoc" : "None" + "pos" : "34.3", + "includingLoc" : "None", + "expandingLoc" : "None" }, "72" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "35.16", - "includingLoc" : "None" + "pos" : "34.24", + "includingLoc" : "None", + "expandingLoc" : "None" }, "73" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "34.3", - "includingLoc" : "None" + "pos" : "34.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "74" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", "pos" : "34.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "75" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "34.32", - "includingLoc" : "None" + "pos" : "34.24", + "includingLoc" : "None", + "expandingLoc" : "None" }, "76" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "34.24", - "includingLoc" : "None" + "pos" : "34.51", + "includingLoc" : "None", + "expandingLoc" : "None" }, "77" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "34.51", - "includingLoc" : "None" + "pos" : "35.16", + "includingLoc" : "None", + "expandingLoc" : "None" }, "78" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "35.16", - "includingLoc" : "None" + "pos" : "34.3", + "includingLoc" : "None", + "expandingLoc" : "None" }, "79" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "34.3", - "includingLoc" : "None" + "pos" : "34.24", + "includingLoc" : "None", + "expandingLoc" : "None" }, "80" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "31.1", - "includingLoc" : "None" + "pos" : "34.32", + "includingLoc" : "None", + "expandingLoc" : "None" }, "81" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "40.3", - "includingLoc" : "None" + "pos" : "34.24", + "includingLoc" : "None", + "expandingLoc" : "None" }, "82" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "40.3", - "includingLoc" : "None" + "pos" : "34.24", + "includingLoc" : "None", + "expandingLoc" : "None" }, "83" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "40.3", - "includingLoc" : "None" + "pos" : "34.51", + "includingLoc" : "None", + "expandingLoc" : "None" }, "84" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "39.1", - "includingLoc" : "None" + "pos" : "35.16", + "includingLoc" : "None", + "expandingLoc" : "None" }, "85" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "44.3", - "includingLoc" : "None" + "pos" : "34.3", + "includingLoc" : "None", + "expandingLoc" : "None" }, "86" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "45.3", - "includingLoc" : "None" + "pos" : "31.1", + "includingLoc" : "None", + "expandingLoc" : "None" }, "87" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "45.3", - "includingLoc" : "None" + "pos" : "40.3", + "includingLoc" : "None", + "expandingLoc" : "None" }, "88" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", - "pos" : "45.3", - "includingLoc" : "None" + "pos" : "40.3", + "includingLoc" : "None", + "expandingLoc" : "None" }, "89" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", + "pos" : "40.3", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "90" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", + "pos" : "39.1", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "91" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", + "pos" : "44.3", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "92" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", + "pos" : "45.3", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "93" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", + "pos" : "45.3", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "94" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", + "pos" : "45.3", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "95" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/queuedComponents.fpp", "pos" : "43.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } } } @@ -998,9 +1124,9 @@ "fppVersion" : "[ fpp version ]", "analysis" : { "componentInstanceMap" : { - "79" : { + "85" : { "aNode" : { - "astNodeId" : 79 + "astNodeId" : 85 }, "qualifiedName" : { "qualifier" : [ @@ -1009,7 +1135,7 @@ "base" : "engineTemp" }, "component" : { - "astNodeId" : 60 + "astNodeId" : 63 }, "baseId" : 256, "maxId" : 257, @@ -1026,9 +1152,9 @@ } }, "componentMap" : { - "60" : { + "63" : { "aNode" : { - "astNodeId" : 60 + "astNodeId" : 63 }, "portInterface" : { "instanceType" : "component", @@ -1036,7 +1162,7 @@ "calibrationIn" : { "General" : { "aNode" : { - "astNodeId" : 49 + "astNodeId" : 52 }, "specifier" : { "kind" : { @@ -1048,7 +1174,7 @@ "size" : "None", "port" : { "Some" : { - "astNodeId" : 48 + "astNodeId" : 51 } }, "priority" : "None", @@ -1073,7 +1199,7 @@ "schedIn" : { "General" : { "aNode" : { - "astNodeId" : 46 + "astNodeId" : 49 }, "specifier" : { "kind" : { @@ -1085,7 +1211,7 @@ "size" : "None", "port" : { "Some" : { - "astNodeId" : 45 + "astNodeId" : 48 } }, "priority" : "None", @@ -1097,7 +1223,7 @@ "DefPort" : { "symbol" : { "Port" : { - "nodeId" : 83, + "nodeId" : 89, "unqualifiedName" : "Sched" } } @@ -1110,7 +1236,7 @@ "timeGetOut" : { "Special" : { "aNode" : { - "astNodeId" : 51 + "astNodeId" : 54 }, "specifier" : { "inputKind" : "None", @@ -1125,7 +1251,7 @@ }, "symbol" : { "Port" : { - "nodeId" : 88, + "nodeId" : 94, "unqualifiedName" : "Time" } }, @@ -1138,7 +1264,7 @@ "tlmOut" : { "Special" : { "aNode" : { - "astNodeId" : 50 + "astNodeId" : 53 }, "specifier" : { "inputKind" : "None", @@ -1153,7 +1279,7 @@ }, "symbol" : { "Port" : { - "nodeId" : 85, + "nodeId" : 91, "unqualifiedName" : "Tlm" } }, @@ -1167,7 +1293,7 @@ "specialPortMap" : { "telemetry" : { "aNode" : { - "astNodeId" : 50 + "astNodeId" : 53 }, "specifier" : { "inputKind" : "None", @@ -1182,7 +1308,7 @@ }, "symbol" : { "Port" : { - "nodeId" : 85, + "nodeId" : 91, "unqualifiedName" : "Tlm" } }, @@ -1193,7 +1319,7 @@ }, "time get" : { "aNode" : { - "astNodeId" : 51 + "astNodeId" : 54 }, "specifier" : { "inputKind" : "None", @@ -1208,7 +1334,7 @@ }, "symbol" : { "Port" : { - "nodeId" : 88, + "nodeId" : 94, "unqualifiedName" : "Time" } }, @@ -1226,7 +1352,7 @@ "tlmChannelMap" : { "0" : { "aNode" : { - "astNodeId" : 53 + "astNodeId" : 56 }, "channelType" : { "Primitive" : { @@ -1254,7 +1380,7 @@ }, "1" : { "aNode" : { - "astNodeId" : 59 + "astNodeId" : 62 }, "channelType" : { "Primitive" : { @@ -1284,7 +1410,7 @@ "tlmChannelNameMap" : { "ImpulseTemp" : { "aNode" : { - "astNodeId" : 53 + "astNodeId" : 56 }, "channelType" : { "Primitive" : { @@ -1312,7 +1438,7 @@ }, "WarpTemp" : { "aNode" : { - "astNodeId" : 59 + "astNodeId" : 62 }, "channelType" : { "Primitive" : { @@ -1383,54 +1509,54 @@ "parentSymbolMap" : { "6" : { "Module" : { - "nodeId" : 61, + "nodeId" : 64, "unqualifiedName" : "Sensors" } }, - "60" : { + "63" : { "Module" : { - "nodeId" : 61, + "nodeId" : 64, "unqualifiedName" : "Sensors" } }, - "79" : { + "85" : { "Module" : { - "nodeId" : 80, + "nodeId" : 86, "unqualifiedName" : "FSW" } }, - "83" : { + "89" : { "Module" : { - "nodeId" : 84, + "nodeId" : 90, "unqualifiedName" : "Svc" } }, - "85" : { + "91" : { "Module" : { - "nodeId" : 89, + "nodeId" : 95, "unqualifiedName" : "Fw" } }, - "88" : { + "94" : { "Module" : { - "nodeId" : 89, + "nodeId" : 95, "unqualifiedName" : "Fw" } } }, "symbolScopeMap" : { - "60" : { + "63" : { "map" : { } }, - "61" : { + "64" : { "map" : { "Component" : { "map" : { "EngineTemp" : { "Component" : { - "nodeId" : 60, + "nodeId" : 63, "unqualifiedName" : "EngineTemp" } } @@ -1450,7 +1576,7 @@ "map" : { "EngineTemp" : { "Component" : { - "nodeId" : 60, + "nodeId" : 63, "unqualifiedName" : "EngineTemp" } } @@ -1460,7 +1586,7 @@ "map" : { "EngineTemp" : { "Component" : { - "nodeId" : 60, + "nodeId" : 63, "unqualifiedName" : "EngineTemp" } } @@ -1470,7 +1596,7 @@ "map" : { "EngineTemp" : { "Component" : { - "nodeId" : 60, + "nodeId" : 63, "unqualifiedName" : "EngineTemp" } } @@ -1478,13 +1604,13 @@ } } }, - "80" : { + "86" : { "map" : { "PortInterfaceInstance" : { "map" : { "engineTemp" : { "ComponentInstance" : { - "nodeId" : 79, + "nodeId" : 85, "unqualifiedName" : "engineTemp" } } @@ -1492,13 +1618,13 @@ } } }, - "84" : { + "90" : { "map" : { "Port" : { "map" : { "Sched" : { "Port" : { - "nodeId" : 83, + "nodeId" : 89, "unqualifiedName" : "Sched" } } @@ -1506,19 +1632,19 @@ } } }, - "89" : { + "95" : { "map" : { "Port" : { "map" : { "Time" : { "Port" : { - "nodeId" : 88, + "nodeId" : 94, "unqualifiedName" : "Time" } }, "Tlm" : { "Port" : { - "nodeId" : 85, + "nodeId" : 91, "unqualifiedName" : "Tlm" } } @@ -1542,7 +1668,7 @@ } } }, - "52" : { + "55" : { "Primitive" : { "Float" : { "kind" : { @@ -1553,7 +1679,7 @@ } } }, - "58" : { + "61" : { "Primitive" : { "Float" : { "kind" : { @@ -1564,14 +1690,14 @@ } } }, - "77" : { + "83" : { "Int" : { "Integer" : { } } }, - "78" : { + "84" : { "Int" : { "Integer" : { @@ -1580,56 +1706,68 @@ } }, "useDefMap" : { - "43" : { + "47" : { "Module" : { - "nodeId" : 84, + "nodeId" : 90, "unqualifiedName" : "Svc" } }, - "45" : { + "48" : { "Port" : { - "nodeId" : 83, + "nodeId" : 89, "unqualifiedName" : "Sched" } }, - "48" : { + "51" : { "Port" : { "nodeId" : 6, "unqualifiedName" : "Calibration" } }, - "50" : { + "53" : { "Port" : { - "nodeId" : 85, + "nodeId" : 91, "unqualifiedName" : "Tlm" } }, - "51" : { + "54" : { "Port" : { - "nodeId" : 88, + "nodeId" : 94, "unqualifiedName" : "Time" } }, - "74" : { + "81" : { "Module" : { - "nodeId" : 61, + "nodeId" : 64, "unqualifiedName" : "Sensors" } }, - "76" : { + "82" : { "Component" : { - "nodeId" : 60, + "nodeId" : 63, "unqualifiedName" : "EngineTemp" } + }, + "96" : { + "Module" : { + "nodeId" : 95, + "unqualifiedName" : "Fw" + } + }, + "97" : { + "Module" : { + "nodeId" : 95, + "unqualifiedName" : "Fw" + } } }, "valueMap" : { - "77" : { + "83" : { "Integer" : { "value" : 256 } }, - "78" : { + "84" : { "Integer" : { "value" : 10 } diff --git a/compiler/tools/fpp-to-json/test/simpleComponents.ref.txt b/compiler/tools/fpp-to-json/test/simpleComponents.ref.txt index d447177541..85edf05676 100644 --- a/compiler/tools/fpp-to-json/test/simpleComponents.ref.txt +++ b/compiler/tools/fpp-to-json/test/simpleComponents.ref.txt @@ -687,347 +687,416 @@ "0" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "2.22", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "1" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "2.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "2" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "2.22", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "3" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "2.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "4" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "2.22", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "5" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "2.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "6" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "2.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "7" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "8.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "8" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "8.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "9" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "8.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "10" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "11.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "11" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "11.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "12" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "11.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "13" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "14.28", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "14" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "14.28", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "15" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "14.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "16" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "14.28", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "17" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "14.28", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "18" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "14.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "19" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "14.28", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "20" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "14.28", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "21" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "14.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "22" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "5.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "23" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "22.33", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "24" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "22.33", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "25" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "22.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "26" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "25.33", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "27" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "25.33", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "28" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "25.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "29" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "28.28", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "30" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "28.28", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "31" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "28.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "32" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "28.28", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "33" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "28.28", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "34" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "28.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "35" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "28.28", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "36" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "28.28", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "37" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "28.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "38" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "19.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "39" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "38.33", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "40" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "38.33", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "41" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "38.51", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "42" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "38.54", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "43" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "38.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "44" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "41.33", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "45" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "41.33", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "46" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "41.51", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "47" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "41.54", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "48" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "41.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "49" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "44.28", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "50" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "44.28", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "51" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "44.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "52" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "44.28", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "53" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "44.28", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "54" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "44.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "55" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "44.28", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "56" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "44.28", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "57" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "44.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "58" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "35.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "59" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "50.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "60" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "50.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "61" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "56.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "62" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "59.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "63" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "59.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "64" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "59.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "65" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "59.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "66" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "59.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "67" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "59.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "68" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleComponents.fpp", "pos" : "53.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } } } diff --git a/compiler/tools/fpp-to-json/test/simpleTopology.ref.txt b/compiler/tools/fpp-to-json/test/simpleTopology.ref.txt index 7bab07c4f4..bff1f246ff 100644 --- a/compiler/tools/fpp-to-json/test/simpleTopology.ref.txt +++ b/compiler/tools/fpp-to-json/test/simpleTopology.ref.txt @@ -479,332 +479,398 @@ "0" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "1.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "1" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "3.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "2" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "6.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "3" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "6.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "4" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "6.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "5" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "7.21", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "6" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "7.21", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "7" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "7.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "8" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "7.21", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "9" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "7.21", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "10" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "7.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "11" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "7.21", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "12" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "7.21", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "13" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "7.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "14" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "5.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "15" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "10.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "16" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "10.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "17" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "10.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "18" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "10.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "19" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "11.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "20" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "11.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "21" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "11.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "22" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "11.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "23" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "17.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "24" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "17.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "25" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "17.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "26" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "19.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "27" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "19.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "28" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "19.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "29" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "23.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "30" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "23.8", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "31" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "23.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "32" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "23.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "33" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "23.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "34" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "23.19", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "35" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "23.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "36" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "23.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "37" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "22.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "38" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "28.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "39" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "28.8", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "40" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "28.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "41" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "28.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "42" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "28.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "43" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "28.19", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "44" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "28.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "45" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "28.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "46" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "27.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "47" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "28.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "48" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "28.8", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "49" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "28.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "50" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "28.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "51" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "28.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "52" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "28.19", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "53" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "28.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "54" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "28.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "55" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "27.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "56" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "28.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "57" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "28.8", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "58" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "28.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "59" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "28.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "60" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "28.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "61" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "28.19", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "62" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "28.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "63" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "28.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "64" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "27.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "65" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "14.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } } } @@ -1024,39 +1090,42 @@ "18" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "17.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "22" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "19.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } + }, + "directTemplateArgs" : { + }, "transitiveImportSet" : [ ], "instanceMap" : [ [ { - "InterfaceComponentInstance" : { - "astNodeId" : 18 - } + "InterfaceComponentInstance" : 18 }, { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "17.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } ], [ { - "InterfaceComponentInstance" : { - "astNodeId" : 22 - } + "InterfaceComponentInstance" : 22 }, { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "19.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } ] ], @@ -1084,13 +1153,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "23.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 18 - } + "InterfaceComponentInstance" : 18 }, "portInstance" : { "General" : { @@ -1137,13 +1205,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "23.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 22 - } + "InterfaceComponentInstance" : 22 }, "portInstance" : { "General" : { @@ -1195,13 +1262,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "28.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 22 - } + "InterfaceComponentInstance" : 22 }, "portInstance" : { "General" : { @@ -1248,13 +1314,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "28.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 18 - } + "InterfaceComponentInstance" : 18 }, "portInstance" : { "General" : { @@ -1308,13 +1373,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "23.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 18 - } + "InterfaceComponentInstance" : 18 }, "portInstance" : { "General" : { @@ -1361,13 +1425,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "23.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 22 - } + "InterfaceComponentInstance" : 22 }, "portInstance" : { "General" : { @@ -1419,13 +1482,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "28.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 22 - } + "InterfaceComponentInstance" : 22 }, "portInstance" : { "General" : { @@ -1472,13 +1534,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "28.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 18 - } + "InterfaceComponentInstance" : 18 }, "portInstance" : { "General" : { @@ -1529,9 +1590,7 @@ [ { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 18 - } + "InterfaceComponentInstance" : 18 }, "portInstance" : { "General" : { @@ -1577,13 +1636,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "23.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 18 - } + "InterfaceComponentInstance" : 18 }, "portInstance" : { "General" : { @@ -1630,13 +1688,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "23.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 22 - } + "InterfaceComponentInstance" : 22 }, "portInstance" : { "General" : { @@ -1686,9 +1743,7 @@ [ { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 22 - } + "InterfaceComponentInstance" : 22 }, "portInstance" : { "General" : { @@ -1734,13 +1789,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "28.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 22 - } + "InterfaceComponentInstance" : 22 }, "portInstance" : { "General" : { @@ -1787,13 +1841,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "28.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 18 - } + "InterfaceComponentInstance" : 18 }, "portInstance" : { "General" : { @@ -1845,9 +1898,7 @@ [ { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 18 - } + "InterfaceComponentInstance" : 18 }, "portInstance" : { "General" : { @@ -1893,13 +1944,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "28.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 22 - } + "InterfaceComponentInstance" : 22 }, "portInstance" : { "General" : { @@ -1946,13 +1996,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "28.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 18 - } + "InterfaceComponentInstance" : 18 }, "portInstance" : { "General" : { @@ -2002,9 +2051,7 @@ [ { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 22 - } + "InterfaceComponentInstance" : 22 }, "portInstance" : { "General" : { @@ -2050,13 +2097,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "23.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 18 - } + "InterfaceComponentInstance" : 18 }, "portInstance" : { "General" : { @@ -2103,13 +2149,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "23.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 22 - } + "InterfaceComponentInstance" : 22 }, "portInstance" : { "General" : { @@ -2164,13 +2209,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "23.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 18 - } + "InterfaceComponentInstance" : 18 }, "portInstance" : { "General" : { @@ -2217,13 +2261,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "23.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 22 - } + "InterfaceComponentInstance" : 22 }, "portInstance" : { "General" : { @@ -2276,13 +2319,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "28.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 22 - } + "InterfaceComponentInstance" : 22 }, "portInstance" : { "General" : { @@ -2329,13 +2371,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "28.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 18 - } + "InterfaceComponentInstance" : 18 }, "portInstance" : { "General" : { @@ -2390,13 +2431,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "23.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 18 - } + "InterfaceComponentInstance" : 18 }, "portInstance" : { "General" : { @@ -2443,13 +2483,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "23.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 22 - } + "InterfaceComponentInstance" : 22 }, "portInstance" : { "General" : { @@ -2502,13 +2541,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "28.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 22 - } + "InterfaceComponentInstance" : 22 }, "portInstance" : { "General" : { @@ -2555,13 +2593,12 @@ "loc" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/simpleTopology.fpp", "pos" : "28.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "port" : { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 18 - } + "InterfaceComponentInstance" : 18 }, "portInstance" : { "General" : { diff --git a/compiler/tools/fpp-to-json/test/specialPorts.ref.txt b/compiler/tools/fpp-to-json/test/specialPorts.ref.txt index c4af05d51d..ba3b6ef9d1 100644 --- a/compiler/tools/fpp-to-json/test/specialPorts.ref.txt +++ b/compiler/tools/fpp-to-json/test/specialPorts.ref.txt @@ -613,182 +613,218 @@ "0" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/specialPorts.fpp", "pos" : "5.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "1" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/specialPorts.fpp", "pos" : "8.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "2" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/specialPorts.fpp", "pos" : "11.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "3" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/specialPorts.fpp", "pos" : "11.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "4" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/specialPorts.fpp", "pos" : "11.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "5" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/specialPorts.fpp", "pos" : "2.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "6" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/specialPorts.fpp", "pos" : "19.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "7" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/specialPorts.fpp", "pos" : "22.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "8" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/specialPorts.fpp", "pos" : "22.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "9" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/specialPorts.fpp", "pos" : "22.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "10" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/specialPorts.fpp", "pos" : "16.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "11" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/specialPorts.fpp", "pos" : "30.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "12" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/specialPorts.fpp", "pos" : "30.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "13" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/specialPorts.fpp", "pos" : "30.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "14" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/specialPorts.fpp", "pos" : "27.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "15" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/specialPorts.fpp", "pos" : "38.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "16" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/specialPorts.fpp", "pos" : "41.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "17" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/specialPorts.fpp", "pos" : "41.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "18" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/specialPorts.fpp", "pos" : "41.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "19" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/specialPorts.fpp", "pos" : "35.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "20" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/specialPorts.fpp", "pos" : "49.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "21" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/specialPorts.fpp", "pos" : "49.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "22" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/specialPorts.fpp", "pos" : "49.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "23" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/specialPorts.fpp", "pos" : "46.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "24" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/specialPorts.fpp", "pos" : "54.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "25" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/specialPorts.fpp", "pos" : "55.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "26" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/specialPorts.fpp", "pos" : "56.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "27" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/specialPorts.fpp", "pos" : "57.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "28" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/specialPorts.fpp", "pos" : "58.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "29" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/specialPorts.fpp", "pos" : "59.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "30" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/specialPorts.fpp", "pos" : "60.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "31" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/specialPorts.fpp", "pos" : "61.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "32" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/specialPorts.fpp", "pos" : "62.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "33" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/specialPorts.fpp", "pos" : "62.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "34" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/specialPorts.fpp", "pos" : "62.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "35" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/specialPorts.fpp", "pos" : "53.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } } } @@ -1736,6 +1772,60 @@ "nodeId" : 34, "unqualifiedName" : "Time" } + }, + "36" : { + "Module" : { + "nodeId" : 35, + "unqualifiedName" : "Fw" + } + }, + "37" : { + "Module" : { + "nodeId" : 35, + "unqualifiedName" : "Fw" + } + }, + "38" : { + "Module" : { + "nodeId" : 35, + "unqualifiedName" : "Fw" + } + }, + "39" : { + "Module" : { + "nodeId" : 35, + "unqualifiedName" : "Fw" + } + }, + "40" : { + "Module" : { + "nodeId" : 35, + "unqualifiedName" : "Fw" + } + }, + "41" : { + "Module" : { + "nodeId" : 35, + "unqualifiedName" : "Fw" + } + }, + "42" : { + "Module" : { + "nodeId" : 35, + "unqualifiedName" : "Fw" + } + }, + "43" : { + "Module" : { + "nodeId" : 35, + "unqualifiedName" : "Fw" + } + }, + "44" : { + "Module" : { + "nodeId" : 35, + "unqualifiedName" : "Fw" + } } }, "valueMap" : { diff --git a/compiler/tools/fpp-to-json/test/stateMachine.ref.txt b/compiler/tools/fpp-to-json/test/stateMachine.ref.txt index 357e4def7f..7d49d2267a 100644 --- a/compiler/tools/fpp-to-json/test/stateMachine.ref.txt +++ b/compiler/tools/fpp-to-json/test/stateMachine.ref.txt @@ -98,7 +98,7 @@ } } }, - "id" : 268 + "id" : 271 } } }, @@ -113,7 +113,7 @@ "name" : "__FPRIME_UNINITIALIZED", "value" : "None" }, - "id" : 265 + "id" : 268 } }, [ @@ -129,7 +129,7 @@ "name" : "S1", "value" : "None" }, - "id" : 266 + "id" : 269 } }, [ @@ -145,7 +145,7 @@ "name" : "S2_S3", "value" : "None" }, - "id" : 267 + "id" : 270 } }, [ @@ -155,7 +155,7 @@ "default" : "None", "isDictionaryDef" : false }, - "id" : 269 + "id" : 272 } } } @@ -921,18 +921,18 @@ { "AstNode" : { "data" : "a1", - "id" : 196 + "id" : 198 } }, { "AstNode" : { "data" : "a2", - "id" : 197 + "id" : 199 } } ] }, - "id" : 198 + "id" : 200 } } } @@ -952,18 +952,18 @@ { "AstNode" : { "data" : "a1", - "id" : 199 + "id" : 201 } }, { "AstNode" : { "data" : "a2", - "id" : 200 + "id" : 202 } } ] }, - "id" : 201 + "id" : 203 } } } @@ -987,13 +987,13 @@ { "AstNode" : { "data" : "a1", - "id" : 202 + "id" : 204 } }, { "AstNode" : { "data" : "a2", - "id" : 203 + "id" : 205 } } ], @@ -1004,15 +1004,15 @@ "name" : "S3" } }, - "id" : 205 + "id" : 207 } } }, - "id" : 206 + "id" : 208 } } }, - "id" : 207 + "id" : 209 } } } @@ -1033,7 +1033,7 @@ "guard" : { "AstNode" : { "data" : "g1", - "id" : 208 + "id" : 210 } }, "ifTransition" : { @@ -1043,13 +1043,13 @@ { "AstNode" : { "data" : "a1", - "id" : 209 + "id" : 211 } }, { "AstNode" : { "data" : "a2", - "id" : 210 + "id" : 212 } } ], @@ -1060,11 +1060,11 @@ "name" : "S1" } }, - "id" : 212 + "id" : 214 } } }, - "id" : 213 + "id" : 215 } }, "elseTransition" : { @@ -1074,13 +1074,13 @@ { "AstNode" : { "data" : "a2", - "id" : 214 + "id" : 216 } }, { "AstNode" : { "data" : "a3", - "id" : 215 + "id" : 217 } } ], @@ -1095,26 +1095,26 @@ "name" : "S2" } }, - "id" : 216 + "id" : 220 } }, "name" : { "AstNode" : { "data" : "S3", - "id" : 217 + "id" : 219 } } } }, - "id" : 218 + "id" : 221 } } }, - "id" : 219 + "id" : 222 } } }, - "id" : 220 + "id" : 223 } } } @@ -1135,7 +1135,7 @@ "members" : [ ] }, - "id" : 221 + "id" : 224 } } } @@ -1155,14 +1155,14 @@ "signal" : { "AstNode" : { "data" : "s1", - "id" : 222 + "id" : 225 } }, "guard" : { "Some" : { "AstNode" : { "data" : "g1", - "id" : 223 + "id" : 226 } } }, @@ -1175,7 +1175,7 @@ { "AstNode" : { "data" : "a1", - "id" : 224 + "id" : 227 } } ], @@ -1186,17 +1186,17 @@ "name" : "C" } }, - "id" : 226 + "id" : 229 } } }, - "id" : 227 + "id" : 230 } } } } }, - "id" : 228 + "id" : 231 } } } @@ -1215,14 +1215,14 @@ "signal" : { "AstNode" : { "data" : "s2", - "id" : 229 + "id" : 232 } }, "guard" : { "Some" : { "AstNode" : { "data" : "g1", - "id" : 230 + "id" : 233 } } }, @@ -1240,17 +1240,17 @@ "name" : "S1" } }, - "id" : 232 + "id" : 235 } } }, - "id" : 233 + "id" : 236 } } } } }, - "id" : 234 + "id" : 237 } } } @@ -1270,14 +1270,14 @@ "signal" : { "AstNode" : { "data" : "s3", - "id" : 235 + "id" : 238 } }, "guard" : { "Some" : { "AstNode" : { "data" : "g1", - "id" : 236 + "id" : 239 } } }, @@ -1295,17 +1295,17 @@ "name" : "S1" } }, - "id" : 238 + "id" : 241 } } }, - "id" : 239 + "id" : 242 } } } } }, - "id" : 240 + "id" : 243 } } } @@ -1325,7 +1325,7 @@ "signal" : { "AstNode" : { "data" : "s4", - "id" : 241 + "id" : 244 } }, "guard" : "None", @@ -1343,17 +1343,17 @@ "name" : "S1" } }, - "id" : 243 + "id" : 246 } } }, - "id" : 244 + "id" : 247 } } } } }, - "id" : 245 + "id" : 248 } } } @@ -1373,14 +1373,14 @@ "signal" : { "AstNode" : { "data" : "s5", - "id" : 246 + "id" : 249 } }, "guard" : { "Some" : { "AstNode" : { "data" : "g1", - "id" : 247 + "id" : 250 } } }, @@ -1390,14 +1390,14 @@ { "AstNode" : { "data" : "a1", - "id" : 249 + "id" : 252 } } ] } } }, - "id" : 250 + "id" : 253 } } } @@ -1417,7 +1417,7 @@ "signal" : { "AstNode" : { "data" : "s6", - "id" : 259 + "id" : 262 } }, "guard" : "None", @@ -1427,14 +1427,14 @@ { "AstNode" : { "data" : "a1", - "id" : 261 + "id" : 264 } } ] } } }, - "id" : 262 + "id" : 265 } } } @@ -1444,7 +1444,7 @@ ] ] }, - "id" : 263 + "id" : 266 } } } @@ -1455,7 +1455,7 @@ ] } }, - "id" : 264 + "id" : 267 } } } @@ -1473,1352 +1473,1640 @@ "0" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "1.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "1" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "1.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "2" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "2.40", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "3" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "2.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "4" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "7.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "5" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "7.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "6" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "7.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "7" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "8.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "8" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "8.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "9" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "9.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "10" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "9.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "11" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "9.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "12" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "9.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "13" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "9.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "14" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "9.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "15" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "9.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "16" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "10.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "17" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "10.21", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "18" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "10.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "19" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "10.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "20" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "10.26", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "21" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "10.37", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "22" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "10.34", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "23" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "10.37", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "24" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "10.34", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "25" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "10.37", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "26" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "10.34", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "27" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "10.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "28" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "11.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "29" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "12.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "30" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "12.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "31" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "15.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "32" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "18.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "33" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "21.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "34" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "24.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "35" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "24.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "36" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "27.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "37" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "30.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "38" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "30.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "39" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "33.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "40" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "33.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "41" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "36.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "42" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "39.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "43" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "42.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "44" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "45.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "45" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "48.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "46" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "51.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "47" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "51.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "48" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "51.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "49" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "51.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "50" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "51.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "51" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "54.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "52" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "54.26", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "53" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "54.26", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "54" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "54.20", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "55" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "54.40", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "56" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "54.40", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "57" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "54.34", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "58" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "54.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "59" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "57.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "60" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "62.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "61" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "62.20", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "62" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "62.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "63" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "63.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "64" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "63.19", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "65" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "63.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "66" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "66.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "67" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "66.22", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "68" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "66.33", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "69" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "66.33", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "70" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "66.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "71" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "66.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "72" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "69.19", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "73" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "69.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "74" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "69.31", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "75" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "69.42", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "76" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "69.42", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "77" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "69.22", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "78" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "69.55", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "79" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "69.59", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "80" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "69.70", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "81" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "69.73", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "82" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "69.70", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "83" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "69.50", - "includingLoc" : "None" + "pos" : "69.70", + "includingLoc" : "None", + "expandingLoc" : "None" }, "84" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "69.5", - "includingLoc" : "None" + "pos" : "69.50", + "includingLoc" : "None", + "expandingLoc" : "None" }, "85" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "72.5", - "includingLoc" : "None" + "pos" : "69.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "86" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "75.8", - "includingLoc" : "None" + "pos" : "72.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "87" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "75.14", - "includingLoc" : "None" + "pos" : "75.8", + "includingLoc" : "None", + "expandingLoc" : "None" }, "88" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "75.22", - "includingLoc" : "None" + "pos" : "75.14", + "includingLoc" : "None", + "expandingLoc" : "None" }, "89" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "75.33", - "includingLoc" : "None" + "pos" : "75.22", + "includingLoc" : "None", + "expandingLoc" : "None" }, "90" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "75.33", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "91" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "75.17", - "includingLoc" : "None" + "pos" : "75.33", + "includingLoc" : "None", + "expandingLoc" : "None" }, "92" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "75.5", - "includingLoc" : "None" + "pos" : "75.17", + "includingLoc" : "None", + "expandingLoc" : "None" }, "93" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "76.8", - "includingLoc" : "None" + "pos" : "75.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "94" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "76.14", - "includingLoc" : "None" + "pos" : "76.8", + "includingLoc" : "None", + "expandingLoc" : "None" }, "95" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "76.23", - "includingLoc" : "None" + "pos" : "76.14", + "includingLoc" : "None", + "expandingLoc" : "None" }, "96" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "76.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "97" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "76.17", - "includingLoc" : "None" + "pos" : "76.23", + "includingLoc" : "None", + "expandingLoc" : "None" }, "98" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "76.5", - "includingLoc" : "None" + "pos" : "76.17", + "includingLoc" : "None", + "expandingLoc" : "None" }, "99" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "79.8", - "includingLoc" : "None" + "pos" : "76.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "100" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "79.14", - "includingLoc" : "None" + "pos" : "79.8", + "includingLoc" : "None", + "expandingLoc" : "None" }, "101" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "79.23", - "includingLoc" : "None" + "pos" : "79.14", + "includingLoc" : "None", + "expandingLoc" : "None" }, "102" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "79.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "103" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "79.17", - "includingLoc" : "None" + "pos" : "79.23", + "includingLoc" : "None", + "expandingLoc" : "None" }, "104" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "79.5", - "includingLoc" : "None" + "pos" : "79.17", + "includingLoc" : "None", + "expandingLoc" : "None" }, "105" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "82.8", - "includingLoc" : "None" + "pos" : "79.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "106" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "82.17", - "includingLoc" : "None" + "pos" : "82.8", + "includingLoc" : "None", + "expandingLoc" : "None" }, "107" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "82.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "108" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "82.11", - "includingLoc" : "None" + "pos" : "82.17", + "includingLoc" : "None", + "expandingLoc" : "None" }, "109" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "82.5", - "includingLoc" : "None" + "pos" : "82.11", + "includingLoc" : "None", + "expandingLoc" : "None" }, "110" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "85.8", - "includingLoc" : "None" + "pos" : "82.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "111" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "85.14", - "includingLoc" : "None" + "pos" : "85.8", + "includingLoc" : "None", + "expandingLoc" : "None" }, "112" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "85.22", - "includingLoc" : "None" + "pos" : "85.14", + "includingLoc" : "None", + "expandingLoc" : "None" }, "113" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "85.22", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "114" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "85.5", - "includingLoc" : "None" + "pos" : "85.22", + "includingLoc" : "None", + "expandingLoc" : "None" }, "115" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "88.8", - "includingLoc" : "None" + "pos" : "85.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "116" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "88.16", - "includingLoc" : "None" + "pos" : "88.8", + "includingLoc" : "None", + "expandingLoc" : "None" }, "117" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "88.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "118" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "88.5", - "includingLoc" : "None" + "pos" : "88.16", + "includingLoc" : "None", + "expandingLoc" : "None" }, "119" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "88.8", - "includingLoc" : "None" + "pos" : "88.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "120" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "88.16", - "includingLoc" : "None" + "pos" : "88.8", + "includingLoc" : "None", + "expandingLoc" : "None" }, "121" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "88.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "122" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "88.5", - "includingLoc" : "None" + "pos" : "88.16", + "includingLoc" : "None", + "expandingLoc" : "None" }, "123" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "88.8", - "includingLoc" : "None" + "pos" : "88.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "124" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "88.16", - "includingLoc" : "None" + "pos" : "88.8", + "includingLoc" : "None", + "expandingLoc" : "None" }, "125" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "88.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "126" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "88.5", - "includingLoc" : "None" + "pos" : "88.16", + "includingLoc" : "None", + "expandingLoc" : "None" }, "127" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "60.3", - "includingLoc" : "None" + "pos" : "88.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "128" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "62.16", - "includingLoc" : "None" + "pos" : "60.3", + "includingLoc" : "None", + "expandingLoc" : "None" }, "129" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "62.20", - "includingLoc" : "None" + "pos" : "62.16", + "includingLoc" : "None", + "expandingLoc" : "None" }, "130" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "62.5", - "includingLoc" : "None" + "pos" : "62.20", + "includingLoc" : "None", + "expandingLoc" : "None" }, "131" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "63.15", - "includingLoc" : "None" + "pos" : "62.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "132" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "63.19", - "includingLoc" : "None" + "pos" : "63.15", + "includingLoc" : "None", + "expandingLoc" : "None" }, "133" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "63.5", - "includingLoc" : "None" + "pos" : "63.19", + "includingLoc" : "None", + "expandingLoc" : "None" }, "134" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "66.18", - "includingLoc" : "None" + "pos" : "63.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "135" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "66.22", - "includingLoc" : "None" + "pos" : "66.18", + "includingLoc" : "None", + "expandingLoc" : "None" }, "136" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "66.33", - "includingLoc" : "None" + "pos" : "66.22", + "includingLoc" : "None", + "expandingLoc" : "None" }, "137" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "66.33", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "138" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "66.13", - "includingLoc" : "None" + "pos" : "66.33", + "includingLoc" : "None", + "expandingLoc" : "None" }, "139" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "66.5", - "includingLoc" : "None" + "pos" : "66.13", + "includingLoc" : "None", + "expandingLoc" : "None" }, "140" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "69.19", - "includingLoc" : "None" + "pos" : "66.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "141" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "69.27", - "includingLoc" : "None" + "pos" : "69.19", + "includingLoc" : "None", + "expandingLoc" : "None" }, "142" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "69.31", - "includingLoc" : "None" + "pos" : "69.27", + "includingLoc" : "None", + "expandingLoc" : "None" }, "143" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "69.42", - "includingLoc" : "None" + "pos" : "69.31", + "includingLoc" : "None", + "expandingLoc" : "None" }, "144" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "69.42", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "145" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "69.22", - "includingLoc" : "None" + "pos" : "69.42", + "includingLoc" : "None", + "expandingLoc" : "None" }, "146" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "69.55", - "includingLoc" : "None" + "pos" : "69.22", + "includingLoc" : "None", + "expandingLoc" : "None" }, "147" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "69.59", - "includingLoc" : "None" + "pos" : "69.55", + "includingLoc" : "None", + "expandingLoc" : "None" }, "148" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "69.70", - "includingLoc" : "None" + "pos" : "69.59", + "includingLoc" : "None", + "expandingLoc" : "None" }, "149" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "69.73", - "includingLoc" : "None" + "pos" : "69.70", + "includingLoc" : "None", + "expandingLoc" : "None" }, "150" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "69.70", - "includingLoc" : "None" + "pos" : "69.73", + "includingLoc" : "None", + "expandingLoc" : "None" }, "151" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "69.50", - "includingLoc" : "None" + "pos" : "69.70", + "includingLoc" : "None", + "expandingLoc" : "None" }, "152" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "69.5", - "includingLoc" : "None" + "pos" : "69.70", + "includingLoc" : "None", + "expandingLoc" : "None" }, "153" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "72.5", - "includingLoc" : "None" + "pos" : "69.50", + "includingLoc" : "None", + "expandingLoc" : "None" }, "154" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "75.8", - "includingLoc" : "None" + "pos" : "69.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "155" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "75.14", - "includingLoc" : "None" + "pos" : "72.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "156" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "75.22", - "includingLoc" : "None" + "pos" : "75.8", + "includingLoc" : "None", + "expandingLoc" : "None" }, "157" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "75.33", - "includingLoc" : "None" + "pos" : "75.14", + "includingLoc" : "None", + "expandingLoc" : "None" }, "158" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "75.33", - "includingLoc" : "None" + "pos" : "75.22", + "includingLoc" : "None", + "expandingLoc" : "None" }, "159" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "75.17", - "includingLoc" : "None" + "pos" : "75.33", + "includingLoc" : "None", + "expandingLoc" : "None" }, "160" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "75.5", - "includingLoc" : "None" + "pos" : "75.33", + "includingLoc" : "None", + "expandingLoc" : "None" }, "161" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "76.8", - "includingLoc" : "None" + "pos" : "75.17", + "includingLoc" : "None", + "expandingLoc" : "None" }, "162" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "76.14", - "includingLoc" : "None" + "pos" : "75.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "163" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "76.23", - "includingLoc" : "None" + "pos" : "76.8", + "includingLoc" : "None", + "expandingLoc" : "None" }, "164" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "76.23", - "includingLoc" : "None" + "pos" : "76.14", + "includingLoc" : "None", + "expandingLoc" : "None" }, "165" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "76.17", - "includingLoc" : "None" + "pos" : "76.23", + "includingLoc" : "None", + "expandingLoc" : "None" }, "166" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "76.5", - "includingLoc" : "None" + "pos" : "76.23", + "includingLoc" : "None", + "expandingLoc" : "None" }, "167" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "79.8", - "includingLoc" : "None" + "pos" : "76.17", + "includingLoc" : "None", + "expandingLoc" : "None" }, "168" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "79.14", - "includingLoc" : "None" + "pos" : "76.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "169" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "79.23", - "includingLoc" : "None" + "pos" : "79.8", + "includingLoc" : "None", + "expandingLoc" : "None" }, "170" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "79.23", - "includingLoc" : "None" + "pos" : "79.14", + "includingLoc" : "None", + "expandingLoc" : "None" }, "171" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "79.17", - "includingLoc" : "None" + "pos" : "79.23", + "includingLoc" : "None", + "expandingLoc" : "None" }, "172" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "79.5", - "includingLoc" : "None" + "pos" : "79.23", + "includingLoc" : "None", + "expandingLoc" : "None" }, "173" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "82.8", - "includingLoc" : "None" + "pos" : "79.17", + "includingLoc" : "None", + "expandingLoc" : "None" }, "174" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "82.17", - "includingLoc" : "None" + "pos" : "79.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "175" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "82.17", - "includingLoc" : "None" + "pos" : "82.8", + "includingLoc" : "None", + "expandingLoc" : "None" }, "176" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "82.11", - "includingLoc" : "None" + "pos" : "82.17", + "includingLoc" : "None", + "expandingLoc" : "None" }, "177" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "82.5", - "includingLoc" : "None" + "pos" : "82.17", + "includingLoc" : "None", + "expandingLoc" : "None" }, "178" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "85.8", - "includingLoc" : "None" + "pos" : "82.11", + "includingLoc" : "None", + "expandingLoc" : "None" }, "179" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "85.14", - "includingLoc" : "None" + "pos" : "82.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "180" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "85.22", - "includingLoc" : "None" + "pos" : "85.8", + "includingLoc" : "None", + "expandingLoc" : "None" }, "181" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "85.22", - "includingLoc" : "None" + "pos" : "85.14", + "includingLoc" : "None", + "expandingLoc" : "None" }, "182" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "85.5", - "includingLoc" : "None" + "pos" : "85.22", + "includingLoc" : "None", + "expandingLoc" : "None" }, "183" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "88.8", - "includingLoc" : "None" + "pos" : "85.22", + "includingLoc" : "None", + "expandingLoc" : "None" }, "184" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "88.16", - "includingLoc" : "None" + "pos" : "85.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "185" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "88.16", - "includingLoc" : "None" + "pos" : "88.8", + "includingLoc" : "None", + "expandingLoc" : "None" }, "186" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "88.5", - "includingLoc" : "None" + "pos" : "88.16", + "includingLoc" : "None", + "expandingLoc" : "None" }, "187" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "88.8", - "includingLoc" : "None" + "pos" : "88.16", + "includingLoc" : "None", + "expandingLoc" : "None" }, "188" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "88.16", - "includingLoc" : "None" + "pos" : "88.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "189" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "88.16", - "includingLoc" : "None" + "pos" : "88.8", + "includingLoc" : "None", + "expandingLoc" : "None" }, "190" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "88.5", - "includingLoc" : "None" + "pos" : "88.16", + "includingLoc" : "None", + "expandingLoc" : "None" }, "191" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "88.8", - "includingLoc" : "None" + "pos" : "88.16", + "includingLoc" : "None", + "expandingLoc" : "None" }, "192" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "88.16", - "includingLoc" : "None" + "pos" : "88.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "193" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "88.16", - "includingLoc" : "None" + "pos" : "88.8", + "includingLoc" : "None", + "expandingLoc" : "None" }, "194" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "88.5", - "includingLoc" : "None" + "pos" : "88.16", + "includingLoc" : "None", + "expandingLoc" : "None" }, "195" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "60.3", - "includingLoc" : "None" + "pos" : "88.16", + "includingLoc" : "None", + "expandingLoc" : "None" }, "196" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "62.16", - "includingLoc" : "None" + "pos" : "88.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "197" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "62.20", - "includingLoc" : "None" + "pos" : "60.3", + "includingLoc" : "None", + "expandingLoc" : "None" }, "198" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "62.5", - "includingLoc" : "None" + "pos" : "62.16", + "includingLoc" : "None", + "expandingLoc" : "None" }, "199" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "63.15", - "includingLoc" : "None" + "pos" : "62.20", + "includingLoc" : "None", + "expandingLoc" : "None" }, "200" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "63.19", - "includingLoc" : "None" + "pos" : "62.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "201" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "63.5", - "includingLoc" : "None" + "pos" : "63.15", + "includingLoc" : "None", + "expandingLoc" : "None" }, "202" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "66.18", - "includingLoc" : "None" + "pos" : "63.19", + "includingLoc" : "None", + "expandingLoc" : "None" }, "203" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "66.22", - "includingLoc" : "None" + "pos" : "63.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "204" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "66.33", - "includingLoc" : "None" + "pos" : "66.18", + "includingLoc" : "None", + "expandingLoc" : "None" }, "205" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "66.33", - "includingLoc" : "None" + "pos" : "66.22", + "includingLoc" : "None", + "expandingLoc" : "None" }, "206" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "66.13", - "includingLoc" : "None" + "pos" : "66.33", + "includingLoc" : "None", + "expandingLoc" : "None" }, "207" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "66.5", - "includingLoc" : "None" + "pos" : "66.33", + "includingLoc" : "None", + "expandingLoc" : "None" }, "208" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "69.19", - "includingLoc" : "None" + "pos" : "66.13", + "includingLoc" : "None", + "expandingLoc" : "None" }, "209" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "69.27", - "includingLoc" : "None" + "pos" : "66.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "210" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "69.31", - "includingLoc" : "None" + "pos" : "69.19", + "includingLoc" : "None", + "expandingLoc" : "None" }, "211" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "69.42", - "includingLoc" : "None" + "pos" : "69.27", + "includingLoc" : "None", + "expandingLoc" : "None" }, "212" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "69.42", - "includingLoc" : "None" + "pos" : "69.31", + "includingLoc" : "None", + "expandingLoc" : "None" }, "213" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "69.22", - "includingLoc" : "None" + "pos" : "69.42", + "includingLoc" : "None", + "expandingLoc" : "None" }, "214" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "69.55", - "includingLoc" : "None" + "pos" : "69.42", + "includingLoc" : "None", + "expandingLoc" : "None" }, "215" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "69.59", - "includingLoc" : "None" + "pos" : "69.22", + "includingLoc" : "None", + "expandingLoc" : "None" }, "216" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "69.70", - "includingLoc" : "None" + "pos" : "69.55", + "includingLoc" : "None", + "expandingLoc" : "None" }, "217" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "69.73", - "includingLoc" : "None" + "pos" : "69.59", + "includingLoc" : "None", + "expandingLoc" : "None" }, "218" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "69.70", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "219" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "69.50", - "includingLoc" : "None" + "pos" : "69.73", + "includingLoc" : "None", + "expandingLoc" : "None" }, "220" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "69.5", - "includingLoc" : "None" + "pos" : "69.70", + "includingLoc" : "None", + "expandingLoc" : "None" }, "221" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "72.5", - "includingLoc" : "None" + "pos" : "69.70", + "includingLoc" : "None", + "expandingLoc" : "None" }, "222" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "75.8", - "includingLoc" : "None" + "pos" : "69.50", + "includingLoc" : "None", + "expandingLoc" : "None" }, "223" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "75.14", - "includingLoc" : "None" + "pos" : "69.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "224" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "75.22", - "includingLoc" : "None" + "pos" : "72.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "225" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "75.33", - "includingLoc" : "None" + "pos" : "75.8", + "includingLoc" : "None", + "expandingLoc" : "None" }, "226" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "75.33", - "includingLoc" : "None" + "pos" : "75.14", + "includingLoc" : "None", + "expandingLoc" : "None" }, "227" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "75.17", - "includingLoc" : "None" + "pos" : "75.22", + "includingLoc" : "None", + "expandingLoc" : "None" }, "228" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "75.5", - "includingLoc" : "None" + "pos" : "75.33", + "includingLoc" : "None", + "expandingLoc" : "None" }, "229" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "76.8", - "includingLoc" : "None" + "pos" : "75.33", + "includingLoc" : "None", + "expandingLoc" : "None" }, "230" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "76.14", - "includingLoc" : "None" + "pos" : "75.17", + "includingLoc" : "None", + "expandingLoc" : "None" }, "231" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "76.23", - "includingLoc" : "None" + "pos" : "75.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "232" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "76.23", - "includingLoc" : "None" + "pos" : "76.8", + "includingLoc" : "None", + "expandingLoc" : "None" }, "233" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "76.17", - "includingLoc" : "None" + "pos" : "76.14", + "includingLoc" : "None", + "expandingLoc" : "None" }, "234" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "76.5", - "includingLoc" : "None" + "pos" : "76.23", + "includingLoc" : "None", + "expandingLoc" : "None" }, "235" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "79.8", - "includingLoc" : "None" + "pos" : "76.23", + "includingLoc" : "None", + "expandingLoc" : "None" }, "236" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "79.14", - "includingLoc" : "None" + "pos" : "76.17", + "includingLoc" : "None", + "expandingLoc" : "None" }, "237" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "79.23", - "includingLoc" : "None" + "pos" : "76.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "238" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "79.23", - "includingLoc" : "None" + "pos" : "79.8", + "includingLoc" : "None", + "expandingLoc" : "None" }, "239" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "79.17", - "includingLoc" : "None" + "pos" : "79.14", + "includingLoc" : "None", + "expandingLoc" : "None" }, "240" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "79.5", - "includingLoc" : "None" + "pos" : "79.23", + "includingLoc" : "None", + "expandingLoc" : "None" }, "241" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "82.8", - "includingLoc" : "None" + "pos" : "79.23", + "includingLoc" : "None", + "expandingLoc" : "None" }, "242" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "82.17", - "includingLoc" : "None" + "pos" : "79.17", + "includingLoc" : "None", + "expandingLoc" : "None" }, "243" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "82.17", - "includingLoc" : "None" + "pos" : "79.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "244" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "82.11", - "includingLoc" : "None" + "pos" : "82.8", + "includingLoc" : "None", + "expandingLoc" : "None" }, "245" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "82.5", - "includingLoc" : "None" + "pos" : "82.17", + "includingLoc" : "None", + "expandingLoc" : "None" }, "246" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "85.8", - "includingLoc" : "None" + "pos" : "82.17", + "includingLoc" : "None", + "expandingLoc" : "None" }, "247" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "85.14", - "includingLoc" : "None" + "pos" : "82.11", + "includingLoc" : "None", + "expandingLoc" : "None" }, "248" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "85.22", - "includingLoc" : "None" + "pos" : "82.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "249" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "85.22", - "includingLoc" : "None" + "pos" : "85.8", + "includingLoc" : "None", + "expandingLoc" : "None" }, "250" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "85.5", - "includingLoc" : "None" + "pos" : "85.14", + "includingLoc" : "None", + "expandingLoc" : "None" }, "251" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "88.8", - "includingLoc" : "None" + "pos" : "85.22", + "includingLoc" : "None", + "expandingLoc" : "None" }, "252" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "88.16", - "includingLoc" : "None" + "pos" : "85.22", + "includingLoc" : "None", + "expandingLoc" : "None" }, "253" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "88.16", - "includingLoc" : "None" + "pos" : "85.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "254" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "88.5", - "includingLoc" : "None" + "pos" : "88.8", + "includingLoc" : "None", + "expandingLoc" : "None" }, "255" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "88.8", - "includingLoc" : "None" + "pos" : "88.16", + "includingLoc" : "None", + "expandingLoc" : "None" }, "256" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "88.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "257" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "88.16", - "includingLoc" : "None" + "pos" : "88.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "258" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "88.5", - "includingLoc" : "None" + "pos" : "88.8", + "includingLoc" : "None", + "expandingLoc" : "None" }, "259" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "88.8", - "includingLoc" : "None" + "pos" : "88.16", + "includingLoc" : "None", + "expandingLoc" : "None" }, "260" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "88.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "261" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "88.16", - "includingLoc" : "None" + "pos" : "88.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "262" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "88.5", - "includingLoc" : "None" + "pos" : "88.8", + "includingLoc" : "None", + "expandingLoc" : "None" }, "263" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "60.3", - "includingLoc" : "None" + "pos" : "88.16", + "includingLoc" : "None", + "expandingLoc" : "None" }, "264" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "5.1", - "includingLoc" : "None" + "pos" : "88.16", + "includingLoc" : "None", + "expandingLoc" : "None" }, "265" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "5.1", - "includingLoc" : "None" + "pos" : "88.5", + "includingLoc" : "None", + "expandingLoc" : "None" }, "266" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", - "pos" : "5.1", - "includingLoc" : "None" + "pos" : "60.3", + "includingLoc" : "None", + "expandingLoc" : "None" }, "267" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "5.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "268" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "5.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "269" : { "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", "pos" : "5.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "270" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", + "pos" : "5.1", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "271" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", + "pos" : "5.1", + "includingLoc" : "None", + "expandingLoc" : "None" + }, + "272" : { + "file" : "[ local path prefix ]/compiler/tools/fpp-syntax/test/state-machine.fpp", + "pos" : "5.1", + "includingLoc" : "None", + "expandingLoc" : "None" } } } @@ -2859,13 +3147,13 @@ "parentSymbolMap" : { "6" : { "StateMachine" : { - "nodeId" : 264, + "nodeId" : 267, "unqualifiedName" : "M" } }, "8" : { "StateMachine" : { - "nodeId" : 264, + "nodeId" : 267, "unqualifiedName" : "M" } }, @@ -2889,49 +3177,49 @@ }, "15" : { "StateMachine" : { - "nodeId" : 264, + "nodeId" : 267, "unqualifiedName" : "M" } }, "27" : { "StateMachine" : { - "nodeId" : 264, + "nodeId" : 267, "unqualifiedName" : "M" } }, "28" : { "StateMachine" : { - "nodeId" : 264, + "nodeId" : 267, "unqualifiedName" : "M" } }, "30" : { "StateMachine" : { - "nodeId" : 264, + "nodeId" : 267, "unqualifiedName" : "M" } }, - "265" : { + "268" : { "Enum" : { - "nodeId" : 269, + "nodeId" : 272, "unqualifiedName" : "State" } }, - "266" : { + "269" : { "Enum" : { - "nodeId" : 269, + "nodeId" : 272, "unqualifiedName" : "State" } }, - "267" : { + "270" : { "Enum" : { - "nodeId" : 269, + "nodeId" : 272, "unqualifiedName" : "State" } }, - "269" : { + "272" : { "StateMachine" : { - "nodeId" : 264, + "nodeId" : 267, "unqualifiedName" : "M" } } @@ -2963,7 +3251,7 @@ } } }, - "264" : { + "267" : { "map" : { "Type" : { "map" : { @@ -2987,7 +3275,7 @@ }, "State" : { "Enum" : { - "nodeId" : 269, + "nodeId" : 272, "unqualifiedName" : "State" } }, @@ -3015,7 +3303,7 @@ }, "State" : { "Enum" : { - "nodeId" : 269, + "nodeId" : 272, "unqualifiedName" : "State" } }, @@ -3029,25 +3317,25 @@ } } }, - "269" : { + "272" : { "map" : { "Value" : { "map" : { "S1" : { "EnumConstant" : { - "nodeId" : 266, + "nodeId" : 269, "unqualifiedName" : "S1" } }, "S2_S3" : { "EnumConstant" : { - "nodeId" : 267, + "nodeId" : 270, "unqualifiedName" : "S2_S3" } }, "__FPRIME_UNINITIALIZED" : { "EnumConstant" : { - "nodeId" : 265, + "nodeId" : 268, "unqualifiedName" : "__FPRIME_UNINITIALIZED" } } @@ -3176,7 +3464,8 @@ } } } - ] + ], + "scalar" : "None" }, "t" : { "node" : { @@ -3538,10 +3827,10 @@ } } }, - "264" : { + "267" : { "Enum" : { "node" : { - "astNodeId" : 269 + "astNodeId" : 272 }, "repType" : { "kind" : { @@ -3553,10 +3842,10 @@ "default" : "None" } }, - "265" : { + "268" : { "Enum" : { "node" : { - "astNodeId" : 269 + "astNodeId" : 272 }, "repType" : { "kind" : { @@ -3568,10 +3857,10 @@ "default" : "None" } }, - "266" : { + "269" : { "Enum" : { "node" : { - "astNodeId" : 269 + "astNodeId" : 272 }, "repType" : { "kind" : { @@ -3583,10 +3872,10 @@ "default" : "None" } }, - "267" : { + "270" : { "Enum" : { "node" : { - "astNodeId" : 269 + "astNodeId" : 272 }, "repType" : { "kind" : { @@ -3598,7 +3887,7 @@ "default" : "None" } }, - "268" : { + "271" : { "Int" : { "PrimitiveInt" : { "kind" : { @@ -3609,10 +3898,10 @@ } } }, - "269" : { + "272" : { "Enum" : { "node" : { - "astNodeId" : 269 + "astNodeId" : 272 }, "repType" : { "kind" : { @@ -3629,7 +3918,7 @@ ], "t" : { "node" : { - "astNodeId" : 269 + "astNodeId" : 272 }, "repType" : { "kind" : { @@ -3644,7 +3933,7 @@ } } }, - "270" : { + "273" : { "AliasType" : { "node" : { "astNodeId" : 1 @@ -3662,7 +3951,7 @@ } } }, - "271" : { + "274" : { "Int" : { "Integer" : { @@ -3677,23 +3966,29 @@ "unqualifiedName" : "X" } }, - "264" : { + "267" : { "Enum" : { - "nodeId" : 269, + "nodeId" : 272, "unqualifiedName" : "State" } }, - "270" : { + "273" : { "AliasType" : { "nodeId" : 1, "unqualifiedName" : "FwSizeStoreType" } }, - "271" : { + "274" : { "Constant" : { "nodeId" : 3, "unqualifiedName" : "FW_FIXED_LENGTH_STRING_SIZE" } + }, + "275" : { + "StateMachine" : { + "nodeId" : 267, + "unqualifiedName" : "M" + } } }, "valueMap" : { @@ -3811,7 +4106,7 @@ "value" : 3 } }, - "265" : { + "268" : { "EnumConstant" : { "value" : [ "__FPRIME_UNINITIALIZED", @@ -3819,7 +4114,7 @@ ], "t" : { "node" : { - "astNodeId" : 269 + "astNodeId" : 272 }, "repType" : { "kind" : { @@ -3832,7 +4127,7 @@ } } }, - "266" : { + "269" : { "EnumConstant" : { "value" : [ "S1", @@ -3840,7 +4135,7 @@ ], "t" : { "node" : { - "astNodeId" : 269 + "astNodeId" : 272 }, "repType" : { "kind" : { @@ -3853,7 +4148,7 @@ } } }, - "267" : { + "270" : { "EnumConstant" : { "value" : [ "S2_S3", @@ -3861,7 +4156,7 @@ ], "t" : { "node" : { - "astNodeId" : 269 + "astNodeId" : 272 }, "repType" : { "kind" : { @@ -3874,42 +4169,42 @@ } } }, - "271" : { + "274" : { "Integer" : { "value" : 256 } } }, "stateMachineMap" : { - "264" : { + "267" : { "aNode" : { - "astNodeId" : 264 + "astNodeId" : 267 }, "sma" : { "symbol" : { "node" : { - "astNodeId" : 264 + "astNodeId" : 267 } }, "symbolScopeMap" : { - "221" : { + "224" : { "map" : { } }, - "263" : { + "266" : { "map" : { "State" : { "map" : { "C" : { "Choice" : { - "nodeId" : 220, + "nodeId" : 223, "unqualifiedName" : "C" } }, "S3" : { "State" : { - "nodeId" : 221, + "nodeId" : 224, "unqualifiedName" : "S3" } } @@ -3950,197 +4245,197 @@ }, "56" : { "State" : { - "nodeId" : 263, + "nodeId" : 266, "unqualifiedName" : "S2" } }, - "196" : { + "198" : { "Action" : { "nodeId" : 31, "unqualifiedName" : "a1" } }, - "197" : { + "199" : { "Action" : { "nodeId" : 32, "unqualifiedName" : "a2" } }, - "199" : { + "201" : { "Action" : { "nodeId" : 31, "unqualifiedName" : "a1" } }, - "200" : { + "202" : { "Action" : { "nodeId" : 32, "unqualifiedName" : "a2" } }, - "202" : { + "204" : { "Action" : { "nodeId" : 31, "unqualifiedName" : "a1" } }, - "203" : { + "205" : { "Action" : { "nodeId" : 32, "unqualifiedName" : "a2" } }, - "205" : { + "207" : { "State" : { - "nodeId" : 221, + "nodeId" : 224, "unqualifiedName" : "S3" } }, - "208" : { + "210" : { "Guard" : { "nodeId" : 36, "unqualifiedName" : "g1" } }, - "209" : { + "211" : { "Action" : { "nodeId" : 31, "unqualifiedName" : "a1" } }, - "210" : { + "212" : { "Action" : { "nodeId" : 32, "unqualifiedName" : "a2" } }, - "212" : { + "214" : { "State" : { "nodeId" : 59, "unqualifiedName" : "S1" } }, - "214" : { + "216" : { "Action" : { "nodeId" : 32, "unqualifiedName" : "a2" } }, - "215" : { + "217" : { "Action" : { "nodeId" : 33, "unqualifiedName" : "a3" } }, - "216" : { + "220" : { "State" : { - "nodeId" : 263, + "nodeId" : 266, "unqualifiedName" : "S2" } }, - "218" : { + "221" : { "State" : { - "nodeId" : 221, + "nodeId" : 224, "unqualifiedName" : "S3" } }, - "222" : { + "225" : { "Signal" : { "nodeId" : 40, "unqualifiedName" : "s1" } }, - "223" : { + "226" : { "Guard" : { "nodeId" : 36, "unqualifiedName" : "g1" } }, - "224" : { + "227" : { "Action" : { "nodeId" : 31, "unqualifiedName" : "a1" } }, - "226" : { + "229" : { "Choice" : { - "nodeId" : 220, + "nodeId" : 223, "unqualifiedName" : "C" } }, - "229" : { + "232" : { "Signal" : { "nodeId" : 41, "unqualifiedName" : "s2" } }, - "230" : { + "233" : { "Guard" : { "nodeId" : 36, "unqualifiedName" : "g1" } }, - "232" : { + "235" : { "State" : { "nodeId" : 59, "unqualifiedName" : "S1" } }, - "235" : { + "238" : { "Signal" : { "nodeId" : 42, "unqualifiedName" : "s3" } }, - "236" : { + "239" : { "Guard" : { "nodeId" : 36, "unqualifiedName" : "g1" } }, - "238" : { + "241" : { "State" : { "nodeId" : 59, "unqualifiedName" : "S1" } }, - "241" : { + "244" : { "Signal" : { "nodeId" : 43, "unqualifiedName" : "s4" } }, - "243" : { + "246" : { "State" : { "nodeId" : 59, "unqualifiedName" : "S1" } }, - "246" : { + "249" : { "Signal" : { "nodeId" : 44, "unqualifiedName" : "s5" } }, - "247" : { + "250" : { "Guard" : { "nodeId" : 36, "unqualifiedName" : "g1" } }, - "249" : { + "252" : { "Action" : { "nodeId" : 31, "unqualifiedName" : "a1" } }, - "259" : { + "262" : { "Signal" : { "nodeId" : 45, "unqualifiedName" : "s6" } }, - "261" : { + "264" : { "Action" : { "nodeId" : 31, "unqualifiedName" : "a1" @@ -4162,16 +4457,16 @@ } }, "arcMap" : { - "220" : [ + "223" : [ { "Choice" : { "startChoice" : { "node" : { - "astNodeId" : 220 + "astNodeId" : 223 } }, "aNode" : { - "astNodeId" : 213 + "astNodeId" : 215 }, "endNode" : { "soc" : { @@ -4190,18 +4485,18 @@ "Choice" : { "startChoice" : { "node" : { - "astNodeId" : 220 + "astNodeId" : 223 } }, "aNode" : { - "astNodeId" : 219 + "astNodeId" : 222 }, "endNode" : { "soc" : { "State" : { "symbol" : { "node" : { - "astNodeId" : 221 + "astNodeId" : 224 } } } @@ -4210,25 +4505,25 @@ } } ], - "221" : [ + "224" : [ ], - "263" : [ + "266" : [ { - "State" : { + "Initial" : { "startState" : { "node" : { - "astNodeId" : 263 + "astNodeId" : 266 } }, "aNode" : { - "astNodeId" : 228 + "astNodeId" : 209 }, "endNode" : { "soc" : { - "Choice" : { + "State" : { "symbol" : { "node" : { - "astNodeId" : 220 + "astNodeId" : 224 } } } @@ -4237,21 +4532,21 @@ } }, { - "Initial" : { + "State" : { "startState" : { "node" : { - "astNodeId" : 263 + "astNodeId" : 266 } }, "aNode" : { - "astNodeId" : 207 + "astNodeId" : 231 }, "endNode" : { "soc" : { - "State" : { + "Choice" : { "symbol" : { "node" : { - "astNodeId" : 221 + "astNodeId" : 223 } } } @@ -4263,11 +4558,11 @@ "State" : { "startState" : { "node" : { - "astNodeId" : 263 + "astNodeId" : 266 } }, "aNode" : { - "astNodeId" : 245 + "astNodeId" : 237 }, "endNode" : { "soc" : { @@ -4286,11 +4581,11 @@ "State" : { "startState" : { "node" : { - "astNodeId" : 263 + "astNodeId" : 266 } }, "aNode" : { - "astNodeId" : 234 + "astNodeId" : 248 }, "endNode" : { "soc" : { @@ -4309,11 +4604,11 @@ "State" : { "startState" : { "node" : { - "astNodeId" : 263 + "astNodeId" : 266 } }, "aNode" : { - "astNodeId" : 240 + "astNodeId" : 243 }, "endNode" : { "soc" : { @@ -4368,7 +4663,7 @@ "State" : { "symbol" : { "node" : { - "astNodeId" : 263 + "astNodeId" : 266 } } } @@ -4396,23 +4691,23 @@ } }, "arcMap" : { - "220" : [ + "223" : [ { "State" : { "startState" : { "node" : { - "astNodeId" : 263 + "astNodeId" : 266 } }, "aNode" : { - "astNodeId" : 228 + "astNodeId" : 231 }, "endNode" : { "soc" : { "Choice" : { "symbol" : { "node" : { - "astNodeId" : 220 + "astNodeId" : 223 } } } @@ -4421,23 +4716,23 @@ } } ], - "221" : [ + "224" : [ { "Choice" : { "startChoice" : { "node" : { - "astNodeId" : 220 + "astNodeId" : 223 } }, "aNode" : { - "astNodeId" : 219 + "astNodeId" : 222 }, "endNode" : { "soc" : { "State" : { "symbol" : { "node" : { - "astNodeId" : 221 + "astNodeId" : 224 } } } @@ -4449,18 +4744,18 @@ "Initial" : { "startState" : { "node" : { - "astNodeId" : 263 + "astNodeId" : 266 } }, "aNode" : { - "astNodeId" : 207 + "astNodeId" : 209 }, "endNode" : { "soc" : { "State" : { "symbol" : { "node" : { - "astNodeId" : 221 + "astNodeId" : 224 } } } @@ -4469,7 +4764,7 @@ } } ], - "263" : [ + "266" : [ { "Choice" : { "startChoice" : { @@ -4485,7 +4780,7 @@ "State" : { "symbol" : { "node" : { - "astNodeId" : 263 + "astNodeId" : 266 } } } @@ -4498,14 +4793,14 @@ ], "59" : [ { - "Choice" : { - "startChoice" : { + "State" : { + "startState" : { "node" : { - "astNodeId" : 220 + "astNodeId" : 266 } }, "aNode" : { - "astNodeId" : 213 + "astNodeId" : 237 }, "endNode" : { "soc" : { @@ -4521,14 +4816,14 @@ } }, { - "State" : { - "startState" : { + "Choice" : { + "startChoice" : { "node" : { - "astNodeId" : 263 + "astNodeId" : 58 } }, "aNode" : { - "astNodeId" : 245 + "astNodeId" : 54 }, "endNode" : { "soc" : { @@ -4547,11 +4842,11 @@ "State" : { "startState" : { "node" : { - "astNodeId" : 263 + "astNodeId" : 266 } }, "aNode" : { - "astNodeId" : 234 + "astNodeId" : 243 }, "endNode" : { "soc" : { @@ -4570,11 +4865,11 @@ "Choice" : { "startChoice" : { "node" : { - "astNodeId" : 58 + "astNodeId" : 223 } }, "aNode" : { - "astNodeId" : 54 + "astNodeId" : 215 }, "endNode" : { "soc" : { @@ -4593,11 +4888,11 @@ "State" : { "startState" : { "node" : { - "astNodeId" : 263 + "astNodeId" : 266 } }, "aNode" : { - "astNodeId" : 240 + "astNodeId" : 248 }, "endNode" : { "soc" : { @@ -4616,10 +4911,10 @@ } }, "typeOptionMap" : { - "198" : "None", - "201" : "None", - "207" : "None", - "220" : { + "200" : "None", + "203" : "None", + "209" : "None", + "223" : { "Some" : { "Int" : { "PrimitiveInt" : { @@ -4632,7 +4927,7 @@ } } }, - "228" : { + "231" : { "Some" : { "Int" : { "PrimitiveInt" : { @@ -4645,17 +4940,17 @@ } } }, - "234" : "None", - "240" : "None", - "245" : "None", - "250" : "None", - "262" : "None", + "237" : "None", + "243" : "None", + "248" : "None", + "253" : "None", + "265" : "None", "50" : "None", "58" : "None" }, "flattenedStateTransitionMap" : { "40" : { - "221" : { + "224" : { "guardOpt" : { "Some" : { "node" : { @@ -4676,7 +4971,7 @@ "Choice" : { "symbol" : { "node" : { - "astNodeId" : 220 + "astNodeId" : 223 } } } @@ -4686,7 +4981,7 @@ } }, "41" : { - "221" : { + "224" : { "guardOpt" : { "Some" : { "node" : { @@ -4722,7 +5017,7 @@ } }, "42" : { - "221" : { + "224" : { "guardOpt" : { "Some" : { "node" : { @@ -4758,7 +5053,7 @@ } }, "43" : { - "221" : { + "224" : { "guardOpt" : "None", "transition" : { "External" : { @@ -4788,7 +5083,7 @@ } }, "44" : { - "221" : { + "224" : { "guardOpt" : { "Some" : { "node" : { @@ -4810,7 +5105,7 @@ } }, "45" : { - "221" : { + "224" : { "guardOpt" : "None", "transition" : { "Internal" : { @@ -4827,7 +5122,7 @@ } }, "flattenedChoiceTransitionMap" : { - "213" : { + "215" : { "External" : { "actions" : [ { @@ -4862,7 +5157,7 @@ } } }, - "219" : { + "222" : { "External" : { "actions" : [ { @@ -4880,7 +5175,7 @@ "State" : { "symbol" : { "node" : { - "astNodeId" : 221 + "astNodeId" : 224 } } } @@ -4910,7 +5205,7 @@ "State" : { "symbol" : { "node" : { - "astNodeId" : 263 + "astNodeId" : 266 } } } diff --git a/compiler/tools/fpp-to-json/test/syntaxOnly.ref.txt b/compiler/tools/fpp-to-json/test/syntaxOnly.ref.txt index 351bb751bf..ba2cf32715 100644 --- a/compiler/tools/fpp-to-json/test/syntaxOnly.ref.txt +++ b/compiler/tools/fpp-to-json/test/syntaxOnly.ref.txt @@ -2074,4657 +2074,5588 @@ "0" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "9.35", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "1" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "9.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "2" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "9.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "3" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "9.35", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "4" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "9.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "5" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "9.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "6" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "8.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "7" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "14.35", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "8" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "14.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "9" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "14.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "10" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "14.35", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "11" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "14.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "12" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "14.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "13" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "15.41", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "14" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "13.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "15" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "18.34", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "16" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "18.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "17" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "43.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "18" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "46.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "19" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "49.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "20" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "52.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "21" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "55.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "22" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "58.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "23" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "61.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "24" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "64.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "25" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "67.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "26" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "67.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "27" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "67.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "28" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "3.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "29" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "9.35", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "30" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "9.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "31" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "9.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "32" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "9.35", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "33" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "9.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "34" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "9.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "35" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "8.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "36" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "14.35", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "37" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "14.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "38" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "14.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "39" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "14.35", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "40" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "14.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "41" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "14.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "42" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "15.41", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "43" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "13.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "44" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "18.34", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "45" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "18.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "46" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "43.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "47" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "46.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "48" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "49.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "49" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "52.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "50" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "55.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "51" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "58.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "52" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "61.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "53" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "64.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "54" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "67.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "55" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "67.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "56" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "67.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "57" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "3.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "58" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "9.35", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "59" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "9.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "60" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "9.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "61" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "9.35", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "62" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "9.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "63" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "9.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "64" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "8.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "65" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "14.35", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "66" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "14.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "67" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "14.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "68" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "14.35", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "69" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "14.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "70" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "14.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "71" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "15.41", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "72" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "13.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "73" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "18.34", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "74" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "18.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "75" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "43.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "76" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "46.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "77" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "49.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "78" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "52.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "79" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "55.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "80" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "58.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "81" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "61.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "82" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "64.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "83" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "67.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "84" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "67.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "85" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "67.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "86" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "3.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "87" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "1.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "88" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "73.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "89" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "76.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "90" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "76.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "91" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "76.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "92" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "77.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "93" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "77.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "94" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "77.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "95" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "78.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "96" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "79.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "97" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "80.22", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "98" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "80.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "99" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "80.22", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "100" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "80.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "101" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "80.22", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "102" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "80.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "103" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "75.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "104" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "83.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "105" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "83.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "106" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "83.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "107" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "83.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "108" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "84.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "109" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "84.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "110" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "84.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "111" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "84.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "112" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "85.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "113" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "85.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "114" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "85.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "115" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "85.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "116" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "86.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "117" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "86.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "118" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "86.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "119" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "86.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "120" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "87.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "121" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "87.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "122" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "87.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "123" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "87.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "124" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "88.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "125" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "88.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "126" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "88.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "127" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "88.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "128" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "89.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "129" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "89.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "130" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "89.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "131" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "89.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "132" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "92.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "133" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "92.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "134" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "92.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "135" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "93.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "136" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "93.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "137" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "93.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "138" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "94.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "139" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "94.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "140" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "94.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "141" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "95.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "142" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "95.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "143" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "95.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "144" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "96.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "145" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "96.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "146" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "96.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "147" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "97.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "148" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "97.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "149" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "97.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "150" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "98.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "151" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "98.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "152" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "98.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "153" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "101.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "154" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "101.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "155" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "101.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "156" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "101.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "157" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "101.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "158" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "101.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "159" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "101.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "160" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "101.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "161" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "102.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "162" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "102.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "163" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "102.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "164" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "102.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "165" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "102.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "166" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "102.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "167" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "102.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "168" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "102.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "169" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "103.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "170" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "103.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "171" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "103.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "172" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "103.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "173" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "103.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "174" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "103.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "175" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "103.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "176" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "103.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "177" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "104.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "178" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "104.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "179" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "104.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "180" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "104.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "181" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "104.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "182" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "104.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "183" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "104.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "184" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "104.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "185" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "105.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "186" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "105.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "187" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "105.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "188" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "105.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "189" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "105.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "190" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "105.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "191" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "105.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "192" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "105.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "193" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "106.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "194" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "106.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "195" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "106.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "196" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "106.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "197" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "106.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "198" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "106.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "199" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "106.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "200" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "106.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "201" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "100.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "202" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "109.38", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "203" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "109.38", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "204" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "109.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "205" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "111.36", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "206" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "111.36", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "207" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "111.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "208" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "113.36", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "209" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "113.36", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "210" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "113.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "211" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "115.40", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "212" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "115.40", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "213" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "115.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "214" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "117.41", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "215" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "117.41", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "216" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "117.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "217" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "119.35", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "218" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "119.35", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "219" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "119.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "220" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "121.37", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "221" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "121.37", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "222" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "121.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "223" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "224" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "225" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "226" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "227" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "228" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "229" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "230" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "231" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "232" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "233" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "234" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "235" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "236" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "237" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "238" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "239" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "240" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "241" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "242" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "243" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "244" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "245" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "246" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "247" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "248" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "249" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "250" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "251" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "252" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "253" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "254" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "255" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "256" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "257" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "258" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "259" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "260" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "261" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "262" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "263" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "264" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "265" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "266" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "267" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "268" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "132.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "269" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "132.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "270" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "132.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "271" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "132.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "272" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "133.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "273" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "133.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "274" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "133.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "275" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "133.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "276" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "134.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "277" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "134.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "278" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "134.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "279" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "134.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "280" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "123.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "281" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "282" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "283" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "284" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "285" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "286" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "287" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "288" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "289" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "290" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "291" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "292" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "293" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "294" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "295" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "296" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "297" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "298" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "299" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "300" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "301" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "302" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "303" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "304" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "305" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "306" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "307" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "308" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "309" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "310" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "311" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "312" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "313" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "314" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "315" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "316" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "317" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "318" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "319" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "320" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "321" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "322" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "323" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "324" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "325" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "326" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "132.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "327" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "132.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "328" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "132.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "329" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "132.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "330" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "133.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "331" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "133.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "332" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "133.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "333" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "133.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "334" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "134.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "335" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "134.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "336" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "134.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "337" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "134.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "338" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "123.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "339" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "340" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "341" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "342" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "343" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "344" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "345" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "346" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "347" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "348" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "349" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "350" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "351" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "352" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "353" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "354" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "355" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "356" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "357" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "358" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "359" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "360" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "361" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "362" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "363" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "364" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "365" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "366" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "367" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "368" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "369" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "370" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "371" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "372" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "373" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "374" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "375" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "376" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "377" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "378" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "379" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "380" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "381" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "382" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "383" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "384" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "132.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "385" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "132.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "386" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "132.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "387" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "132.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "388" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "133.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "389" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "133.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "390" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "133.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "391" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "133.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "392" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "134.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "393" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "134.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "394" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "134.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "395" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "134.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "396" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "123.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "397" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "91.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "398" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "92.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "399" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "92.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "400" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "92.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "401" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "93.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "402" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "93.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "403" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "93.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "404" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "94.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "405" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "94.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "406" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "94.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "407" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "95.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "408" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "95.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "409" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "95.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "410" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "96.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "411" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "96.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "412" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "96.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "413" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "97.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "414" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "97.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "415" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "97.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "416" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "98.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "417" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "98.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "418" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "98.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "419" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "101.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "420" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "101.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "421" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "101.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "422" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "101.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "423" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "101.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "424" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "101.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "425" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "101.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "426" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "101.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "427" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "102.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "428" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "102.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "429" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "102.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "430" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "102.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "431" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "102.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "432" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "102.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "433" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "102.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "434" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "102.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "435" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "103.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "436" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "103.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "437" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "103.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "438" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "103.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "439" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "103.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "440" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "103.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "441" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "103.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "442" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "103.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "443" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "104.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "444" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "104.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "445" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "104.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "446" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "104.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "447" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "104.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "448" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "104.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "449" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "104.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "450" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "104.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "451" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "105.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "452" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "105.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "453" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "105.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "454" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "105.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "455" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "105.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "456" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "105.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "457" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "105.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "458" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "105.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "459" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "106.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "460" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "106.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "461" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "106.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "462" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "106.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "463" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "106.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "464" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "106.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "465" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "106.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "466" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "106.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "467" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "100.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "468" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "109.38", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "469" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "109.38", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "470" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "109.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "471" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "111.36", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "472" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "111.36", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "473" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "111.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "474" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "113.36", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "475" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "113.36", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "476" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "113.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "477" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "115.40", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "478" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "115.40", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "479" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "115.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "480" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "117.41", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "481" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "117.41", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "482" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "117.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "483" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "119.35", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "484" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "119.35", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "485" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "119.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "486" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "121.37", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "487" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "121.37", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "488" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "121.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "489" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "490" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "491" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "492" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "493" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "494" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "495" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "496" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "497" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "498" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "499" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "500" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "501" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "502" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "503" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "504" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "505" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "506" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "507" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "508" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "509" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "510" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "511" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "512" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "513" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "514" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "515" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "516" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "517" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "518" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "519" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "520" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "521" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "522" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "523" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "524" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "525" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "526" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "527" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "528" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "529" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "530" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "531" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "532" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "533" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "534" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "132.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "535" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "132.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "536" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "132.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "537" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "132.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "538" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "133.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "539" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "133.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "540" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "133.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "541" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "133.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "542" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "134.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "543" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "134.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "544" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "134.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "545" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "134.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "546" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "123.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "547" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "548" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "549" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "550" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "551" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "552" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "553" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "554" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "555" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "556" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "557" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "558" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "559" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "560" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "561" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "562" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "563" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "564" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "565" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "566" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "567" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "568" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "569" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "570" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "571" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "572" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "573" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "574" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "575" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "576" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "577" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "578" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "579" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "580" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "581" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "582" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "583" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "584" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "585" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "586" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "587" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "588" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "589" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "590" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "591" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "592" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "132.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "593" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "132.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "594" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "132.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "595" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "132.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "596" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "133.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "597" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "133.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "598" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "133.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "599" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "133.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "600" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "134.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "601" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "134.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "602" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "134.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "603" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "134.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "604" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "123.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "605" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "606" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "607" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "608" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "609" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "610" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "611" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "612" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "613" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "614" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "615" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "616" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "617" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "618" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "619" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "620" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "621" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "622" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "623" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "624" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "625" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "626" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "627" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "628" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "629" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "630" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "631" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "632" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "633" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "634" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "635" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "636" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "637" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "638" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "639" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "640" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "641" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "642" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "643" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "644" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "645" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "646" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "647" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "648" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "649" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "650" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "132.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "651" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "132.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "652" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "132.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "653" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "132.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "654" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "133.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "655" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "133.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "656" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "133.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "657" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "133.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "658" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "134.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "659" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "134.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "660" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "134.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "661" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "134.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "662" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "123.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "663" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "91.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "664" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "92.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "665" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "92.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "666" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "92.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "667" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "93.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "668" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "93.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "669" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "93.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "670" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "94.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "671" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "94.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "672" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "94.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "673" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "95.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "674" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "95.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "675" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "95.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "676" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "96.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "677" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "96.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "678" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "96.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "679" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "97.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "680" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "97.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "681" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "97.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "682" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "98.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "683" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "98.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "684" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "98.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "685" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "101.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "686" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "101.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "687" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "101.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "688" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "101.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "689" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "101.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "690" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "101.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "691" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "101.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "692" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "101.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "693" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "102.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "694" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "102.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "695" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "102.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "696" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "102.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "697" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "102.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "698" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "102.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "699" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "102.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "700" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "102.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "701" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "103.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "702" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "103.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "703" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "103.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "704" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "103.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "705" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "103.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "706" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "103.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "707" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "103.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "708" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "103.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "709" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "104.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "710" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "104.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "711" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "104.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "712" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "104.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "713" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "104.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "714" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "104.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "715" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "104.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "716" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "104.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "717" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "105.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "718" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "105.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "719" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "105.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "720" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "105.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "721" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "105.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "722" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "105.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "723" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "105.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "724" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "105.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "725" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "106.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "726" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "106.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "727" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "106.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "728" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "106.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "729" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "106.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "730" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "106.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "731" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "106.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "732" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "106.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "733" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "100.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "734" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "109.38", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "735" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "109.38", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "736" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "109.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "737" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "111.36", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "738" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "111.36", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "739" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "111.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "740" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "113.36", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "741" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "113.36", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "742" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "113.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "743" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "115.40", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "744" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "115.40", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "745" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "115.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "746" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "117.41", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "747" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "117.41", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "748" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "117.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "749" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "119.35", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "750" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "119.35", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "751" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "119.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "752" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "121.37", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "753" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "121.37", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "754" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "121.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "755" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "756" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "757" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "758" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "759" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "760" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "761" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "762" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "763" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "764" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "765" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "766" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "767" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "768" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "769" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "770" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "771" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "772" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "773" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "774" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "775" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "776" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "777" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "778" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "779" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "780" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "781" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "782" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "783" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "784" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "785" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "786" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "787" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "788" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "789" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "790" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "791" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "792" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "793" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "794" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "795" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "796" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "797" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "798" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "799" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "800" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "132.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "801" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "132.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "802" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "132.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "803" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "132.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "804" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "133.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "805" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "133.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "806" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "133.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "807" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "133.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "808" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "134.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "809" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "134.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "810" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "134.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "811" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "134.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "812" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "123.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "813" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "814" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "815" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "816" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "817" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "818" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "819" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "820" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "821" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "822" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "823" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "824" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "825" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "826" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "827" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "828" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "829" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "830" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "831" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "832" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "833" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "834" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "835" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "836" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "837" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "838" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "839" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "840" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "841" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "842" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "843" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "844" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "845" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "846" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "847" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "848" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "849" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "850" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "851" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "852" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "853" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "854" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "855" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "856" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "857" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "858" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "132.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "859" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "132.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "860" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "132.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "861" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "132.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "862" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "133.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "863" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "133.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "864" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "133.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "865" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "133.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "866" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "134.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "867" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "134.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "868" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "134.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "869" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "134.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "870" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "123.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "871" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "872" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "873" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "874" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "875" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "876" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "877" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "878" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "879" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "880" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "881" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "882" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "883" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "884" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "885" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "886" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "887" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "888" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "889" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "890" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "891" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "892" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "893" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "894" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "895" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "896" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "897" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "898" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "899" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "900" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "901" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "902" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.32", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "903" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "904" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "905" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "906" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "126.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "907" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "908" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "909" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "910" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "127.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "911" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "912" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "913" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "914" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "128.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "915" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "125.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "916" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "132.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "917" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "132.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "918" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "132.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "919" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "132.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "920" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "133.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "921" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "133.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "922" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "133.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "923" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "133.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "924" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "134.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "925" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "134.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "926" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "134.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "927" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "134.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "928" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "123.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "929" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "91.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "930" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/syntaxOnly.fpp", "pos" : "72.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } } } diff --git a/compiler/tools/fpp-to-json/test/telemetry.ref.txt b/compiler/tools/fpp-to-json/test/telemetry.ref.txt index 69599c34d5..335da1ff0a 100644 --- a/compiler/tools/fpp-to-json/test/telemetry.ref.txt +++ b/compiler/tools/fpp-to-json/test/telemetry.ref.txt @@ -756,497 +756,596 @@ "0" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "9.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "1" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "12.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "2" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "19.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "3" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "19.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "4" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "20.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "5" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "21.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "6" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "21.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "7" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "21.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "8" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "21.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "9" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "21.28", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "10" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "21.35", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "11" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "19.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "12" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "24.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "13" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "24.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "14" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "26.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "15" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "27.11", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "16" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "27.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "17" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "27.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "18" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "27.19", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "19" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "27.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "20" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "27.26", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "21" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "27.30", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "22" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "27.38", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "23" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "27.37", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "24" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "28.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "25" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "28.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "26" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "28.19", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "27" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "28.26", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "28" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "28.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "29" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "28.36", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "30" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "24.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "31" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "31.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "32" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "33.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "33" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "34.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "34" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "34.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "35" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "34.19", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "36" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "34.26", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "37" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "34.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "38" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "34.36", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "39" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "31.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "40" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "31.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "41" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "33.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "42" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "34.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "43" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "34.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "44" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "34.19", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "45" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "34.26", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "46" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "34.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "47" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "34.36", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "48" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "31.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "49" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "31.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "50" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "33.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "51" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "34.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "52" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "34.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "53" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "34.19", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "54" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "34.26", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "55" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "34.29", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "56" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "34.36", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "57" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "31.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "58" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "2.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "59" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "39.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "60" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "40.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "61" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "40.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "62" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "40.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "63" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "38.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "64" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "43.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "65" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "43.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "66" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "43.31", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "67" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "43.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "68" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "47.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "69" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "47.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "70" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "47.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "71" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "47.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "72" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "47.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "73" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "47.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "74" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "47.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "75" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "47.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "76" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "47.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "77" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "46.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "78" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "47.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "79" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "47.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "80" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "47.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "81" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "47.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "82" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "47.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "83" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "47.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "84" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "47.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "85" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "47.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "86" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "47.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "87" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "46.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "88" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "47.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "89" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "47.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "90" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "47.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "91" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "47.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "92" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "47.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "93" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "47.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "94" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "47.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "95" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "47.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "96" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "47.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "97" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "46.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "98" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "45.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } } } @@ -1986,22 +2085,25 @@ "67" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "47.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } + }, + "directTemplateArgs" : { + }, "transitiveImportSet" : [ ], "instanceMap" : [ [ { - "InterfaceComponentInstance" : { - "astNodeId" : 67 - } + "InterfaceComponentInstance" : 67 }, { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetry.fpp", "pos" : "47.9", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } ] ], @@ -2039,9 +2141,7 @@ "unconnectedPortSet" : [ { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 67 - } + "InterfaceComponentInstance" : 67 }, "portInstance" : { "Special" : { @@ -2074,9 +2174,7 @@ }, { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 67 - } + "InterfaceComponentInstance" : 67 }, "portInstance" : { "Special" : { @@ -2295,6 +2393,18 @@ "nodeId" : 67, "unqualifiedName" : "i" } + }, + "99" : { + "Module" : { + "nodeId" : 63, + "unqualifiedName" : "Fw" + } + }, + "100" : { + "Module" : { + "nodeId" : 63, + "unqualifiedName" : "Fw" + } } }, "valueMap" : { diff --git a/compiler/tools/fpp-to-json/test/telemetryPackets.ref.txt b/compiler/tools/fpp-to-json/test/telemetryPackets.ref.txt index cc8a55729e..f93a2357ad 100644 --- a/compiler/tools/fpp-to-json/test/telemetryPackets.ref.txt +++ b/compiler/tools/fpp-to-json/test/telemetryPackets.ref.txt @@ -580,572 +580,686 @@ "0" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "2.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "1" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "3.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "2" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "3.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "3" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "3.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "4" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "1.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "5" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "6.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "6" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "9.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "7" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "9.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "8" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "9.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "9" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "10.21", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "10" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "10.21", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "11" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "10.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "12" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "11.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "13" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "12.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "14" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "13.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "15" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "13.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "16" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "13.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "17" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "13.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "18" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "13.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "19" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "13.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "20" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "8.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "21" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "16.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "22" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "16.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "23" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "16.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "24" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "16.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "25" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "17.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "26" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "17.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "27" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "17.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "28" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "17.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "29" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "22.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "30" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "22.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "31" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "22.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "32" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "23.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "33" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "23.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "34" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "23.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "35" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "27.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "36" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "27.26", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "37" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "28.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "38" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "28.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "39" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "28.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "40" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "28.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "41" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "27.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "42" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "27.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "43" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "27.26", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "44" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "28.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "45" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "28.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "46" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "28.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "47" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "28.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "48" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "27.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "49" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "27.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "50" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "27.26", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "51" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "28.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "52" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "28.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "53" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "28.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "54" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "28.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "55" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "27.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "56" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "32.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "57" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "32.8", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "58" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "32.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "59" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "32.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "60" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "25.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "61" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "27.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "62" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "27.26", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "63" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "28.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "64" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "28.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "65" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "28.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "66" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "28.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "67" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "27.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "68" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "27.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "69" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "27.26", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "70" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "28.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "71" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "28.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "72" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "28.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "73" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "28.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "74" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "27.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "75" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "27.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "76" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "27.26", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "77" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "28.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "78" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "28.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "79" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "28.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "80" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "28.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "81" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "27.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "82" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "32.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "83" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "32.8", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "84" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "32.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "85" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "32.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "86" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "25.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "87" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "27.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "88" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "27.26", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "89" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "28.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "90" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "28.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "91" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "28.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "92" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "28.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "93" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "27.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "94" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "27.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "95" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "27.26", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "96" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "28.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "97" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "28.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "98" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "28.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "99" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "28.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "100" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "27.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "101" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "27.18", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "102" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "27.26", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "103" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "28.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "104" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "28.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "105" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "28.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "106" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "28.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "107" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "27.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "108" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "32.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "109" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "32.8", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "110" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "32.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "111" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "32.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "112" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "25.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "113" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "20.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } } } @@ -1557,39 +1671,42 @@ "24" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "22.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "28" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "23.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } + }, + "directTemplateArgs" : { + }, "transitiveImportSet" : [ ], "instanceMap" : [ [ { - "InterfaceComponentInstance" : { - "astNodeId" : 24 - } + "InterfaceComponentInstance" : 24 }, { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "22.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } ], [ { - "InterfaceComponentInstance" : { - "astNodeId" : 28 - } + "InterfaceComponentInstance" : 28 }, { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "23.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } ] ], @@ -1627,9 +1744,7 @@ "unconnectedPortSet" : [ { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 24 - } + "InterfaceComponentInstance" : 24 }, "portInstance" : { "General" : { @@ -1671,9 +1786,7 @@ }, { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 24 - } + "InterfaceComponentInstance" : 24 }, "portInstance" : { "General" : { @@ -1715,9 +1828,7 @@ }, { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 24 - } + "InterfaceComponentInstance" : 24 }, "portInstance" : { "Special" : { @@ -1750,9 +1861,7 @@ }, { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 24 - } + "InterfaceComponentInstance" : 24 }, "portInstance" : { "Special" : { @@ -1785,9 +1894,7 @@ }, { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 28 - } + "InterfaceComponentInstance" : 28 }, "portInstance" : { "General" : { @@ -1829,9 +1936,7 @@ }, { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 28 - } + "InterfaceComponentInstance" : 28 }, "portInstance" : { "General" : { @@ -1873,9 +1978,7 @@ }, { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 28 - } + "InterfaceComponentInstance" : 28 }, "portInstance" : { "Special" : { @@ -1908,9 +2011,7 @@ }, { "interfaceInstance" : { - "InterfaceComponentInstance" : { - "astNodeId" : 28 - } + "InterfaceComponentInstance" : 28 }, "portInstance" : { "Special" : { @@ -2045,6 +2146,18 @@ "nodeId" : 28, "unqualifiedName" : "c2" } + }, + "114" : { + "Module" : { + "nodeId" : 4, + "unqualifiedName" : "Fw" + } + }, + "115" : { + "Module" : { + "nodeId" : 4, + "unqualifiedName" : "Fw" + } } }, "valueMap" : { @@ -2222,7 +2335,8 @@ "256" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "28.7", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } } } @@ -2235,7 +2349,8 @@ "512" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/telemetryPackets.fpp", "pos" : "32.5", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } } } diff --git a/compiler/tools/fpp-to-json/test/types.ref.txt b/compiler/tools/fpp-to-json/test/types.ref.txt index 78c35d41fb..18ef00ebc3 100644 --- a/compiler/tools/fpp-to-json/test/types.ref.txt +++ b/compiler/tools/fpp-to-json/test/types.ref.txt @@ -1125,622 +1125,746 @@ "0" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "1.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "1" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "1.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "2" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "2.40", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "3" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "2.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "4" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "4.35", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "5" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "4.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "6" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "5.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "7" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "5.37", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "8" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "5.25", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "9" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "5.50", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "10" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "5.55", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "11" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "5.60", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "12" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "5.48", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "13" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "5.73", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "14" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "5.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "15" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "6.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "16" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "6.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "17" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "6.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "18" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "6.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "19" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "6.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "20" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "11.6", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "21" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "11.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "22" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "11.6", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "23" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "11.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "24" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "13.6", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "25" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "13.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "26" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "13.6", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "27" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "13.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "28" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "9.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "29" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "11.6", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "30" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "11.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "31" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "11.6", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "32" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "11.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "33" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "13.6", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "34" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "13.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "35" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "13.6", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "36" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "13.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "37" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "9.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "38" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "16.20", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "39" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "16.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "40" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "16.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "41" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "16.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "42" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "16.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "43" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "16.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "44" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "17.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "45" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "17.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "46" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "17.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "47" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "17.20", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "48" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "17.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "49" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "17.20", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "50" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "17.23", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "51" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "17.20", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "52" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "17.40", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "53" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "17.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "54" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "18.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "55" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "18.13", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "56" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "18.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "57" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "18.21", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "58" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "18.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "59" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "18.21", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "60" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "18.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "61" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "18.21", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "62" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "18.41", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "63" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "18.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "64" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "20.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "65" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "21.14", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "66" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "21.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "67" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "21.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "68" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "21.17", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "69" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "21.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "70" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "25.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "71" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "25.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "72" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "25.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "73" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "25.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "74" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "26.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "75" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "26.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "76" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "26.12", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "77" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "26.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "78" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "27.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "79" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "27.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "80" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "27.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "81" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "27.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "82" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "27.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "83" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "27.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "84" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "27.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "85" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "27.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "86" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "27.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "87" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "27.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "88" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "27.16", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "89" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "27.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "90" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "24.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "91" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "31.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "92" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "31.21", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "93" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "31.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "94" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "32.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "95" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "32.21", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "96" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "32.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "97" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "32.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "98" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "32.21", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "99" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "32.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "100" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "32.10", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "101" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "32.21", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "102" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "32.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "103" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "30.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "104" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "35.24", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "105" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "35.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "106" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "35.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "107" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "35.27", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "108" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "35.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "109" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "37.31", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "110" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "37.34", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "111" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "37.45", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "112" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "37.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "113" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "40.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "114" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "41.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "115" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "42.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "116" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "43.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "117" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "43.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "118" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "43.3", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "119" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "39.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "120" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "46.26", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "121" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "46.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "122" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "47.15", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" }, "123" : { "file" : "[ local path prefix ]/compiler/tools/fpp-to-json/test/types.fpp", "pos" : "47.1", - "includingLoc" : "None" + "includingLoc" : "None", + "expandingLoc" : "None" } } } @@ -1987,7 +2111,8 @@ "value" : "3" } } - ] + ], + "scalar" : "None" }, "t" : { "node" : { @@ -2104,7 +2229,8 @@ "value" : "3" } } - ] + ], + "scalar" : "None" }, "t" : { "node" : { @@ -2170,7 +2296,8 @@ "value" : "3" } } - ] + ], + "scalar" : "None" }, "t" : { "node" : { @@ -2214,7 +2341,8 @@ "value" : "3" } } - ] + ], + "scalar" : "None" }, "t" : { "node" : { @@ -2258,7 +2386,8 @@ "value" : "3" } } - ] + ], + "scalar" : "None" }, "t" : { "node" : { @@ -2283,7 +2412,8 @@ } } } - ] + ], + "scalar" : "None" }, "t" : { "node" : { @@ -2331,7 +2461,8 @@ "value" : "3" } } - ] + ], + "scalar" : "None" }, "t" : { "node" : { @@ -2847,7 +2978,8 @@ } } } - ] + ], + "scalar" : "None" }, "t" : { "node" : { @@ -3035,7 +3167,8 @@ } } } - ] + ], + "scalar" : "None" }, "t" : { "node" : { @@ -3502,7 +3635,8 @@ } } } - ] + ], + "scalar" : "None" }, "t" : { "node" : { @@ -3746,7 +3880,8 @@ } } } - ] + ], + "scalar" : "None" }, "t" : { "node" : { @@ -4041,7 +4176,8 @@ } } } - ] + ], + "scalar" : "None" }, "t" : { "node" : { @@ -4291,7 +4427,8 @@ } } } - ] + ], + "scalar" : "None" }, "t" : { "node" : { @@ -4758,7 +4895,8 @@ } } } - ] + ], + "scalar" : "None" }, "t" : { "node" : { @@ -5599,7 +5737,8 @@ } } } - ] + ], + "scalar" : "None" }, "t" : { "node" : { @@ -5841,7 +5980,8 @@ } } } - ] + ], + "scalar" : "None" }, "t" : { "node" : { @@ -6335,7 +6475,8 @@ "value" : "3" } } - ] + ], + "scalar" : "None" } }, "15" : { diff --git a/compiler/tools/fpp/src/main/scala/fpp-format.scala b/compiler/tools/fpp/src/main/scala/fpp-format.scala index 7d019f29b0..c41a0fa13b 100644 --- a/compiler/tools/fpp/src/main/scala/fpp-format.scala +++ b/compiler/tools/fpp/src/main/scala/fpp-format.scala @@ -12,6 +12,7 @@ object FPPFormat { case class Options( include: Boolean = false, + templates: Boolean = false, files: List[File] = List() ) @@ -23,7 +24,11 @@ object FPPFormat { } Result.seq( ToolUtils.parseFiles(files), - List(resolveIncludes (options) _, writeFpp (options) _) + List( + resolveIncludes (options) _, + expandTemplates (options) _, + writeFpp (options) _ + ) ) } @@ -33,13 +38,30 @@ object FPPFormat { def resolveIncludes(options: Options)(tul: List[Ast.TransUnit]): Result.Result[List[Ast.TransUnit]] = { - options.include match { + // Expanding templates requires includes to be resolved first + (options.include || options.templates) match { case true => ResolveSpecInclude.transUnitList(Analysis(), tul).map(_._2) case false => Right(tul) } } + def expandTemplates(options: Options)(tul: List[Ast.TransUnit]): + Result.Result[List[Ast.TransUnit]] = + { + options.templates match { + case true => { + val a = Analysis() + for { + a <- EnterSymbols.visitList(a, tul, EnterSymbols.transUnit) + a_tul <- ResolveTemplates.transUnit(a, tul) + tul <- Right(a_tul._2) + } yield tul + } + case false => Right(tul) + } + } + def writeFpp(options: Options)(tul: List[Ast.TransUnit]): Result.Result[List[Ast.TransUnit]] = { @@ -60,6 +82,9 @@ object FPPFormat { opt[Unit]('i', "include") .action((_, c) => c.copy(include = true)) .text("resolve include specifiers"), + opt[Unit]('t', "template") + .action((_, c) => c.copy(templates = true)) + .text("expand module templates (also resolves includes)"), help('h', "help").text("print this message and exit"), arg[String]("file ...") .unbounded() diff --git a/compiler/tools/fpp/src/main/scala/fpp-locate-defs.scala b/compiler/tools/fpp/src/main/scala/fpp-locate-defs.scala index 392858b2b5..65c9c75c7e 100644 --- a/compiler/tools/fpp/src/main/scala/fpp-locate-defs.scala +++ b/compiler/tools/fpp/src/main/scala/fpp-locate-defs.scala @@ -24,7 +24,10 @@ object FPPLocateDefs { case list => list } for { - tul <- ToolUtils.parseFilesAndResolveAsts(Analysis(), files).map(_._2) + aTul <- ToolUtils.parseFilesAndResolveAsts(Analysis(), files) + a <- Right(aTul._1) + tul <- Right(aTul._2) + tul <- expandTemplates(a, tul) } yield { val config = LocateDefsFppWriter.State(options.dir) @@ -33,6 +36,24 @@ object FPPLocateDefs { } } + /** Expand templates, returning the translation units with expanded members. + * If expansion fails (for example, because the model is incomplete), fall + * back to the unexpanded translation units so that the tool still reports + * the locations it can determine. */ + private def expandTemplates( + a: Analysis, + tul: List[Ast.TransUnit] + ): Result.Result[List[Ast.TransUnit]] = { + val result = for { + a <- EnterSymbols.visitList(a, tul, EnterSymbols.transUnit) + aTul <- ResolveTemplates.transUnit(a, tul) + } yield aTul._2 + result match { + case Right(tul) => Right(tul) + case Left(_) => Right(tul) + } + } + def toolMain(args: Array[String]) = Tool(name).mainMethod(args, oparser, Options(), command) diff --git a/compiler/tools/fpp/src/main/scala/fpp-locate-uses.scala b/compiler/tools/fpp/src/main/scala/fpp-locate-uses.scala index 20a3510c83..8af96183b9 100644 --- a/compiler/tools/fpp/src/main/scala/fpp-locate-uses.scala +++ b/compiler/tools/fpp/src/main/scala/fpp-locate-uses.scala @@ -74,6 +74,10 @@ object FPPLocateUses { case _: Symbol.Struct => Ast.SpecLoc.Type case _: Symbol.System => throw InternalError("use should not be system symbol") case _: Symbol.Topology => Ast.SpecLoc.Instance + case _: Symbol.Template => Ast.SpecLoc.Template + case _: Symbol.TemplateConstantArg => throw InternalError("use should not be template argument") + case _: Symbol.TemplateTypeArg => throw InternalError("use should not be template argument") + case _: Symbol.TemplateInterfaceArg => throw InternalError("use should not be template argument") } val isDictionaryDef = s match { case Symbol.Array(aNode) => aNode._2.data.isDictionaryDef diff --git a/compiler/tools/fpp/src/main/scala/fpp-syntax.scala b/compiler/tools/fpp/src/main/scala/fpp-syntax.scala index b808487c91..8eedeaacd3 100644 --- a/compiler/tools/fpp/src/main/scala/fpp-syntax.scala +++ b/compiler/tools/fpp/src/main/scala/fpp-syntax.scala @@ -13,6 +13,7 @@ object FPPSyntax { case class Options( ast: Boolean = false, include: Boolean = false, + templates: Boolean = false, files: List[File] = List() ) @@ -24,7 +25,11 @@ object FPPSyntax { } Result.seq( ToolUtils.parseFiles(files), - List(resolveIncludes (options) _, printAst (options) _) + List( + resolveIncludes (options) _, + expandTemplates (options) _, + printAst (options) _ + ) ) } @@ -47,13 +52,29 @@ object FPPSyntax { def resolveIncludes(options: Options)(tul: List[Ast.TransUnit]): Result.Result[List[Ast.TransUnit]] = { - options.include match { + (options.include || options.templates) match { case true => ResolveSpecInclude.transUnitList(Analysis(), tul).map(_._2) case false => Right(tul) } } + def expandTemplates(options: Options)(tul: List[Ast.TransUnit]): + Result.Result[List[Ast.TransUnit]] = + { + options.templates match { + case true => { + val a = Analysis() + for { + a <- EnterSymbols.visitList(a, tul, EnterSymbols.transUnit) + a_tul <- ResolveTemplates.transUnit(a, tul) + tul <- Right(a_tul._2) + } yield tul + } + case false => Right(tul) + } + } + val builder = OParser.builder[Options] val name = "fpp-syntax" @@ -69,6 +90,9 @@ object FPPSyntax { opt[Unit]('i', "include") .action((_, c) => c.copy(include = true)) .text("resolve include specifiers"), + opt[Unit]('t', "template") + .action((_, c) => c.copy(templates = true)) + .text("expand module templates (also resolves includes)"), help('h', "help").text("print this message and exit"), arg[String]("file ...") .unbounded() diff --git a/docs/code-prettify/run_prettify.js b/docs/code-prettify/run_prettify.js index 5cf0202be4..1c10fcd59c 100644 --- a/docs/code-prettify/run_prettify.js +++ b/docs/code-prettify/run_prettify.js @@ -436,6 +436,7 @@ var IN_GLOBAL_SCOPE = false; "event," + "every," + "exit," + + "expand," + "external," + "fatal," + "format," + @@ -498,6 +499,7 @@ var IN_GLOBAL_SCOPE = false; "sync," + "system," + "telemetry," + + "template," + "text," + "throttle," + "time," + diff --git a/docs/fpp-spec.html b/docs/fpp-spec.html index 5a8cc52b52..7f4c4e30f0 100644 --- a/docs/fpp-spec.html +++ b/docs/fpp-spec.html @@ -524,64 +524,71 @@

The F Prime Prime (FPP) Language Specification, v3.3.0

  • 5.9.3. Example
  • -
  • 5.10. Port Definitions +
  • 5.10. Module Template Definitions
  • -
  • 5.11. Port Interface Definitions +
  • 5.11. Port Definitions
  • -
  • 5.12. State Machine Definitions +
  • 5.12. Port Interface Definitions
  • -
  • 5.13. Struct Definitions +
  • 5.13. State Machine Definitions
  • -
  • 5.14. System Definitions +
  • 5.14. Struct Definitions
  • -
  • 5.15. Topology Definitions +
  • 5.15. System Definitions
  • -
  • 5.16. Type Definitions
  • -
  • 5.17. Framework Definitions +
  • 5.16. Topology Definitions
  • -
  • 5.18. Dictionary Definitions +
  • 5.17. Type Definitions
  • +
  • 5.18. Framework Definitions +
  • +
  • 5.19. Dictionary Definitions +
  • @@ -803,11 +810,18 @@

    The F Prime Prime (FPP) Language Specification, v3.3.0

  • 7.18.3. Examples
  • -
  • 7.19. Topology Port Instance Specifiers +
  • 7.19. Template Expansion Specifiers + +
  • +
  • 7.20. Examples
  • +
  • 7.21. Topology Port Instance Specifiers
  • @@ -871,7 +885,13 @@

    The F Prime Prime (FPP) Language Specification, v3.3.0

  • 10.6. Floating-Point Literals
  • -
  • 10.7. Identifier Expressions
  • +
  • 10.7. Identifier Expressions + +
  • 10.8. Integer Literals
  • 10.9. Parenthesis Expressions
  • -
  • 12. Format Strings
  • -
  • 13. Comments and Annotations +
  • 12. Template Parameter Lists + +
  • +
  • 13. Format Strings
  • +
  • 14. Comments and Annotations
  • -
  • 14. Translation Units and Models +
  • 15. Translation Units and Models
  • -
  • 15. Scoping of Names +
  • 16. Scoping of Names
  • -
  • 15.5. Resolution of Identifiers
  • -
  • 15.6. Resolution of Qualified Identifiers
  • +
  • 17. Definitions and Uses +
  • -
  • 16. Definitions and Uses +
  • 18. Expansion of Templates
  • -
  • 17. Types +
  • 19. Types
  • -
  • 18. Type Checking +
  • 20. Type Checking
  • -
  • 19. Type Options +
  • 21. Type Options
  • -
  • 20. Values +
  • 22. Values -
  • -
  • 21. Evaluation +
  • 22.1. Primitive Integer Values
  • +
  • 22.2. Integer Values
  • +
  • 22.3. Floating-Point Values
  • +
  • 22.4. Boolean Values
  • +
  • 22.5. String Values
  • +
  • 22.6. Abstract Type Values
  • +
  • 22.7. Anonymous Array Values
  • +
  • 22.8. Array Values
  • +
  • 22.9. Enumeration Values
  • +
  • 22.10. Anonymous Struct Values
  • +
  • 22.11. Struct Values
  • +
  • 22.12. Serialized Sizes
  • + + +
  • 23. Evaluation
  • -
  • 22. Ports +
  • 24. Ports
  • -
  • 23. Analysis and Translation +
  • 25. Analysis and Translation
  • @@ -1723,6 +1764,53 @@

    5. Definitions

    A definition is a unit of syntax that introduces a name N and associates some code with N.

    +
    +

    In FPP, there are two kinds of definitions:

    +
    +
    +
      +
    1. +

      Global definitions that introduce globally visible +qualified names.

      +
    2. +
    3. +

      Bound parameter definitions introduced by binding +template arguments to +template parameters within +the scope of an expanded template. +A bound parameter definition is a pair \$(p, A)\$ consisting of +a template parameter p and a template argument A. +The name associated with a bound parameter definition \$(p, A)\$ +is the identifier specified in p. +Bound parameter definitions come into scope +during +template expansion.

      +
    4. +
    +
    +
    +

    Within an expanded template, a bound parameter definition may represent +a global definition, either directly or indirectly. +A bound parameter definition \$B = (p, A)\$ represents +a global definition D if (1) A +refers to D or (2) +A refers to a bound parameter definition B' that represents D.

    +
    +
    +

    Not all bound parameter definitions represent global definitions. +For example, the bound parameter definition

    +
    +
    +
    +
    ( constant x : U32 , 0 )
    +
    +
    +
    +

    does not represent any global definition.

    +
    +
    +

    The rest of this section discusses the global definitions.

    +

    5.1. Abstract Type Definitions

    @@ -2893,6 +2981,12 @@

    5.9.1. Syntax

    A topology definition

  • +

    A module template definition

    +
  • +
  • +

    A template expansion specifier

    +
  • +
  • A location specifier

  • @@ -2945,13 +3039,138 @@

    5.9.3. Example

  • -

    5.10. Port Definitions

    +

    5.10. Module Template Definitions

    +
    +

    A module template definition associates a name +with a module template. +A module template is a set of syntactic elements, each of which +becomes a member of a translation unit or a +module definition +at the point where the template is expanded. +Each template may be expanded any number of times, and +each expansion creates a distinct set of translation unit +or module members. +Templates may have parameters that become bound +to arguments +at the point of expansion.

    +
    +
    +

    5.10.1. Syntax

    +
    +

    module template +identifier +[ +( template-param-list ) +] +{ +module-member-sequence +}

    +
    +
    +

    module-member-sequence is identical to the module member sequence +of a module definition.

    +
    +
    +
    +

    5.10.2. Semantics

    +
    +

    The identifier is the name of the template.

    +
    +
    +

    No module template definition may be the ancestor in the +abstract syntax tree of another module template definition +or of a template expansion specifier. +This rule ensures that expanding a template +never causes another template to be defined or another +template expansion to occur.

    +
    +
    +

    Each module template definition M that appears in a model +must pass the following analysis, regardless of whether it +is expanded.

    +
    +
    +
      +
    1. +

      Expand M at the point of the definition of M, providing the following +arguments for the template +parameters:

      +
      +
        +
      1. +

        For each constant template parameter, a literal value of the correct type.

        +
      2. +
      3. +

        For each port interface instance template argument, a component +instance definition that minimally satisfies the interface.

        +
      4. +
      5. +

        For each type template argument, an abstract type definition.

        +
      6. +
      +
      +
    2. +
    3. +

      In the expansion E, do the following:

      +
      +
        +
      1. +

        Construct the use-def +graph, checking for cycles.

        +
      2. +
      3. +

        Compute the types associated with type definition symbols, enumerated +constant symbols, and type names, except that array size expressions +and default value expressions are still unevaluated.

        +
      4. +
      5. +

        Perform type checking, +except that array size expressions and default value expressions in type +definitions are still unevaluated.

        +
      6. +
      +
      +
    4. +
    +
    +
    +
    +

    5.10.3. Example

    +
    +
    +
    template MT(
    +    constant baseId: FwIdType
    +    instance comDriver: Drv.ByteStreamDriver
    +) {
    +
    +    instance comStub: Svc.ComStub base id \
    +        baseId + 0x0800
    +
    +    topology T {
    +        instance comDriver
    +        instance comStub
    +
    +        # Connect to the driver from the parameter list
    +        connections Downlink {
    +            comStub.drvSendOut      -> comDriver.$send
    +            comDriver.sendReturnOut -> comStub.drvSendReturnIn
    +            comDriver.ready         -> comStub.drvConnected
    +        }
    +    }
    +
    +}
    +
    +
    +
    +
    +
    +

    5.11. Port Definitions

    An port definition defines an F Prime port. A port is the endpoint of a connection between F Prime components.

    -

    5.10.1. Syntax

    +

    5.11.1. Syntax

    port identifier @@ -2967,7 +3186,7 @@

    5.10.1. Syntax

    -

    5.10.2. Semantics

    +

    5.11.2. Semantics

    • @@ -2995,7 +3214,7 @@

      5.10.2. Semantics

    -

    5.10.3. Examples

    +

    5.11.3. Examples

    @ Port 1
    @@ -3018,14 +3237,14 @@ 

    5.10.3. Examples

    -

    5.11. Port Interface Definitions

    +

    5.12. Port Interface Definitions

    A port interface definition defines a port interface and associates a name with it.

    -

    5.11.1. Syntax

    +

    5.12.1. Syntax

    interface identifier { port-interface-member-sequence }

    @@ -3049,7 +3268,7 @@

    5.11.1. Syntax

    -

    5.11.2. Semantics

    +

    5.12.2. Semantics

    The identifier is the name of the interface.

    @@ -3087,7 +3306,7 @@

    5.11.2. Semantics

    -

    5.11.3. Examples

    +

    5.12.3. Examples

    @ A command interface
    @@ -3149,7 +3368,7 @@ 

    5.11.3. Examples

    -

    5.12. State Machine Definitions

    +

    5.13. State Machine Definitions

    A state machine definition defines a state machine.

    @@ -3172,7 +3391,7 @@

    5.12. State Machine Definitions

    -

    5.12.1. Syntax

    +

    5.13.1. Syntax

    state machine identifier [ { state-machine-member-sequence } ]

    @@ -3234,7 +3453,7 @@

    5.12.1. Syntax

    -

    5.12.2. Static Semantics

    +

    5.13.2. Static Semantics

    1. @@ -3590,7 +3809,7 @@
      T
    -

    5.12.3. Dynamic Semantics

    +

    5.13.3. Dynamic Semantics

    An internal state machine M has the following runtime behavior:

    @@ -3625,7 +3844,7 @@

    5.12.3. Dynamic

    -

    5.12.4. Examples

    +

    5.13.4. Examples

    state machine MonitorSm {
    @@ -3678,13 +3897,13 @@ 

    5.12.4. Examples

    -

    5.13. Struct Definitions

    +

    5.14. Struct Definitions

    A struct definition defines a new structure type and associates a name with it.

    -

    5.13.1. Syntax

    +

    5.14.1. Syntax

    [ dictionary @@ -3711,7 +3930,7 @@

    5.13.1. Syntax

    -

    5.13.2. Semantics

    +

    5.14.2. Semantics

    The identifier is the name N of the type. The definition associates the name N with a @@ -3763,7 +3982,7 @@

    5.13.2. Semantics

    -

    5.13.3. Examples

    +

    5.14.3. Examples

    # Defines a struct type A with members x and y
    @@ -3798,14 +4017,14 @@ 

    5.13.3. Examples

    -

    5.14. System Definitions

    +

    5.15. System Definitions

    A system definition defines an embedded software system. When a system definition appears in the model, it causes code and a ground dictionary to be generated.

    -

    5.14.1. Syntax

    +

    5.15.1. Syntax

    system identifier @@ -3814,7 +4033,7 @@

    5.14.1. Syntax

    -

    5.14.2. Semantics

    +

    5.15.2. Semantics

    1. @@ -3831,7 +4050,7 @@

      5.14.2. Semantics

    -

    5.14.3. Examples

    +

    5.15.3. Examples

    @ The spacecraft system
    @@ -3844,7 +4063,7 @@ 

    5.14.3. Examples

    -

    5.15. Topology Definitions

    +

    5.16. Topology Definitions

    A topology definition defines an F Prime topology, that is, a set of objects with ports (component instances and subtopologies) @@ -3865,7 +4084,7 @@

    5.15. Topology Definitions

    The connections are merged graph by graph.

    -

    5.15.1. Syntax

    +

    5.16.1. Syntax

    [ deployment ] topology @@ -3907,7 +4126,7 @@

    5.15.1. Syntax

    -

    5.15.2. Semantics

    +

    5.16.2. Semantics

    If present, the optional keyword deployment indicates that the topology is a deployment topology. @@ -3965,9 +4184,9 @@

    instances -in D. +

    Let S be the set of all topologies +represented by port +interface instance specifiers in D. Recursively resolve all the topologies in S.

  • @@ -4001,15 +4220,15 @@
    port interface instances -specified in the definition of T. -For each topology T' in S (step 2), +port interface instances +specified +in the definition of T. +For each topology T' resolved in step 2, import the instances of T' into T. -Note that T' is resolved (step 2), so the set of instances of T' contains -all topologies transitively -imported by the definition of T'.

    +Note that T' is resolved, so the set of instances of T' contains all +topologies transitively imported by the definition of T'.

  • For each connection C discovered in step 3, check that each @@ -4018,22 +4237,27 @@

    connection endpoint -E of a connection computed in step 3, do the following:

    +endpoint +E of a connection computed in step 3, let the port instance +identifier in E be Q . I, and do the following:

    1. -

      If E is a component instance endpoint, -then do nothing.

      +

      If E is a component +instance endpoint, check that the associated +port interface +of the component instance contains the port instance I.

    2. -

      Otherwise the port instance identifier -P appearing in E has the form Q -. I, where Q refers to a topology T', and -I names a port of T'.

      +

      Otherwise if E is a topology +instance endpoint, where Q refers to a topology T', then

      1. +

        Check that the associated port interface of T' contains the +port instance I,

        +
      2. +
      3. Find the topology port instance specifier port I = P' in T'.

      4. @@ -4046,6 +4270,26 @@
        bound +parameter endpoint, where Q refers to a bound parameter \$B = (p, A)\$, +and A refers to a port interface instance +N.

        +
        +
          +
        1. +

          Check that the port interface of p contains the port instance I.

          +
        2. +
        3. +

          Replace B with N in the endpoint E. +Retain the port number assignment, if any, at E computed in step 1.

          +
        4. +
        5. +

          Reapply steps a, b, and c to the endpoint E.

          +
        6. +
        +
        +
    3. @@ -4299,7 +4543,7 @@
      Topology
  • -

    5.15.3. Importing Subtopologies

    +

    5.16.3. Importing Subtopologies

    When a topology T has a port interface instance specifier instance Q as a member, and Q refers to a topology @@ -4389,7 +4633,7 @@

    -

    5.15.4. Ordering of Component Instance Connections

    +

    5.16.4. Ordering of Component Instance Connections

    For purposes of port numbering, FPP orders connections between component instances as follows.

    @@ -4478,7 +4722,7 @@

    -

    5.15.5. Implied Uses

    +

    5.16.5. Implied Uses

    When generating a dictionary from a deployment topology T, the analyzer treats the definition of T as if it contained @@ -4491,7 +4735,7 @@

    5.15.5. Implied Uses

    -

    5.15.6. Examples

    +

    5.16.6. Examples

    Example 1.

    @@ -4569,7 +4813,7 @@

    5.15.6. Examples

    # Imported topologies # ---------------------------------------------------------------------- - instance CDH + import CDH # ---------------------------------------------------------------------- # Public instances @@ -4630,9 +4874,9 @@

    5.15.6. Examples

    # Imported topologies # ---------------------------------------------------------------------- - instance AttitudeControl - instance CDH - instance Communication + import AttitudeControl + import CDH + import Communication ... # Connecting subtopologies together @@ -4667,7 +4911,7 @@

    5.15.6. Examples

    topology B { - instance A + import A instance d instance e @@ -4761,10 +5005,113 @@

    5.15.6. Examples

    }
    +
    +

    Example 6 (Topology Ports).

    +
    +
    +
    +
    topology A {
    +
    +  instance b
    +
    +  port p = b.p
    +
    +}
    +
    +topology B {
    +
    +  instance a
    +
    +  instance B
    +
    +  connections C {
    +    a.p -> B.p
    +  }
    +
    +}
    +
    +
    +
    +

    Here we have imported topology B with the instance keyword, emphasizing +that B is to be treated as an interface instance with ports. +We could also have used import as in the examples above. +See the section on port +interface instance specifiers.

    +
    +
    +

    Import resolution produces this topology:

    +
    +
    +
    +
    topology A {
    +
    +  instance a
    +  instance b
    +
    +  connections C {
    +    a.p -> b.p
    +  }
    +
    +}
    +
    +
    +
    +

    Example 7 (Topology Templates).

    +
    +
    +
    +
    port P
    +
    +interface IOut {
    +  output port p: P
    +}
    +
    +passive component COut {
    +  import IOut
    +  output port pOther: P
    +}
    +
    +passive component CIn {
    +  sync input port p: P
    +}
    +
    +instance cOut: COut base id 0x100
    +instance cIn: CIn base id 0x200
    +
    +module template T(
    +  # Introduce an instance by template parameter.
    +  # At this point we don't know what this instance is.
    +  # All we know is that it has the port interface IOut.
    +  instance iOut: IOut
    +) {
    +  topology T {
    +    # On expansion, the topology T will have two instances: iOut and cIn.
    +    # iOut will refer to the bound parameter definition with name iOut.
    +    # cIn will refer to the component instance cIn.
    +    instance iOut
    +    instance cIn
    +    connections C {
    +      # Connection goes from the port interface of iOut to
    +      # the port interface of cIn
    +      iOut.p -> cIn.p
    +      # We must connect ports in the interfaces of the instances named.
    +      # For example, a connection iOut.pOther -> cIn.p is not allowed here,
    +      # because pOther is not in the port interface of iOut.
    +      # This is true even if iOut is eventually bound to cOut, which has the
    +      # output port pOther.
    +    }
    +  }
    +}
    +
    +# In the expansion, the bound parameter (iOut: IOut, cOut) is in scope.
    +# After resolution, the connection is cOut.p -> cIn.p.
    +expand T(cOut)
    +
    +
    -

    5.16. Type Definitions

    +

    5.17. Type Definitions

    A type definition is one of the following:

    @@ -4789,13 +5136,13 @@

    5.16. Type Definitions

    -

    5.17. Framework Definitions

    +

    5.18. Framework Definitions

    Several definitions are used specially by the F Prime framework. These are called framework definitions.

    -

    5.17.1. Constant Definitions

    +

    5.18.1. Constant Definitions

    The table below lists the framework constant definitions. Each row in the table has the following meaning:

    @@ -4968,7 +5315,7 @@

    5.17.1. Constant

    -

    5.17.2. Type Definitions

    +

    5.18.2. Type Definitions

    The table below lists the framework type definitions. The rows have the same meaning as stated for @@ -5094,7 +5441,7 @@

    5.17.2. Type Definit

    -

    5.17.3. Port Definitions

    +

    5.18.3. Port Definitions

    The F Prime framework provides port definitions with the following qualified names:

    @@ -5145,7 +5492,7 @@

    5.17.3. Port Definit

    -

    5.18. Dictionary Definitions

    +

    5.19. Dictionary Definitions

    If the optional keyword dictionary appears in a type definition or @@ -5156,7 +5503,7 @@

    5.18. Dictionary Definitions

    the definition in the ground dictionary.

    -

    5.18.1. Semantics

    +

    5.19.1. Semantics

    If a constant definition D is a dictionary definition, then the expression appearing in D must have one of the following types:

    @@ -5183,7 +5530,7 @@

    5.18.1. Semantics

    -

    5.18.2. Examples

    +

    5.19.2. Examples

    dictionary type T = U32
    @@ -6519,12 +6866,16 @@ 

    7.2.2. Semantics

    identifier appearing in E.

  • -

    The port interface instance Q must exist in the enclosing -topology, +

    The port interface instance Q must exist in the enclosing topology, after resolution to a partially numbered topology. -If Q is a component instance, then E is a component instance endpoint. -Otherwise Q is a topology, and E is a topology endpoint.

    +If Q refers to a component +instance definition, then E is a component instance endpoint. +Otherwise if Q refers to a topology +definition, then E is a topology endpoint. +Otherwise Q refers to a port +interface instance parameter definition, and E is a bound parameter +endpoint.

  • The optional expression e following I, if it is present, @@ -7030,7 +7381,8 @@

    7.5.2. Semantics

    location of the include specifier.

  • -

    During parsing, the translator does the following:

    +

    During parsing, the translator does the +following:

      @@ -7048,6 +7400,11 @@

      7.5.2. Semantics

    +

    All include specifiers are resolved this way, even ones that occur inside or +transitively inside a template +definition.

    +
    +

    The suffix .fppi is conventional for included files, to distinguish them from files presented directly for analysis or translation.

    @@ -7405,6 +7762,11 @@

    7.9.1. Syntax

    string-literal

  • +

    A template specifier locate template +qual-ident at +string-literal

    +
  • +
  • A system location specifier locate system qual-ident at string-literal

    @@ -7470,6 +7832,10 @@

    7.9.2. Semantics

    system definition.

  • +

    A template specifier refers to a +template definition.

    +
  • +
  • A type location specifier refers to a type definition.

  • @@ -8123,11 +8489,9 @@

    7.12. Port Interface Inst

    A port interface instance specifier specifies that a -component instance -I or a -topology T' +port interface instance I is part of a topology T. -I or T' provides a port interface +I provides a port interface that can be used in connections in T.

    @@ -8149,8 +8513,14 @@

    7.12.2. Semanti

    The qualified identifier must refer to a -port interface instance, -i.e., a component instance definition or a topology definition.

    +port interface instance.

    +

    +
    +

    Every port interface instance specifier represents a component instance +definition or topology definition D. +A port interface instance specifier S represents D +if the port interface instance I to which S refers +represents D.

    If the qualified identifier refers to a topology definition D, @@ -8809,83 +9179,224 @@

    7.18.3. Examples

    -

    7.19. Topology Port Instance Specifiers

    +

    7.19. Template Expansion Specifiers

    -

    A topology port instance specifier specifies a -port instance in a topology definition -that is analogous to a port instance in a -component definition. -A port instance specifier in a topology T maps a name to a port instance -of a component instance that is part of T. -Such a specifier can be the endpoint of a -connection.

    +

    A template expansion specifier names a +template +and specifies arguments for the parameters of the template. +During template expansion, it generates the definitions specified +by the template and the arguments.

    -

    7.19.1. Syntax

    +

    7.19.1. Syntax

    -

    port -identifier -= -port-instance-id

    +

    expand +qual-ident +[ +( template-arg-list ) +]

    +
    +

    template-arg-list is an +element sequence in +which the elements are template arguments, and +the terminating punctuation is a comma.

    +
    +
    +

    Each template argument is one of the following:

    -
    -

    7.19.2. Semantics

    1. -

      The identifier specifies the name N of the port instance.

      +

      A constant template argument constant expression

    2. -

      The port instance identifier must be valid and refer to a port instance I.

      +

      A port interface instance template argument +instance qual-ident

    3. -

      The whole specifier makes I part of the - interface of the enclosing -topology, after renaming it with name N.

      +

      A type template argument type type-name

    -

    7.19.3. Example

    -
    -
    -
    topology T {
    -    instance c1
    -    instance c2
    -
    -    connections {
    -        c1.portInternal -> c2.portInternal
    -    }
    -
    -    port portOut = c1.portOut
    -    port customPortName = c2.portIn
    -}
    -
    -topology Y {
    -    instance T
    -
    -    instance c3
    -
    -    connections {
    -        T.portOut -> c3.portIn
    -        c3.portOut -> T.customPortName
    -    }
    -}
    -
    -
    - -
    -
    -
    -
    -
    -

    8. Instance Member Identifiers

    -
    +

    7.19.2. Semantics

    +
    +
      +
    1. +

      The qualified identifier must +refer to +the definition of a +module template T.

      +
    2. +
    3. +

      The number of template arguments must match the number of template +parameters in T. +If there are no parameters, then the argument list may be omitted.

      +
    4. +
    5. +

      For each template parameter p, let A be the corresponding argument.

      +
      +
        +
      1. +

        If p is a constant template parameter, then A must be a constant +template argument. The type of the expression in A must be +convertible to the type specified in p.

        +
      2. +
      3. +

        If p is an interface instance template parameter, then A +must be an interface instance template argument. +The qualified identifier in A must +refer to +a port interface instance N. +The port interface of referred to in p must be a +sub-interface of the port +interface of N.

        +
      4. +
      5. +

        If p is a type template parameter, then A must be a type +template argument.

        +
      6. +
      7. +

        Within the expansion generated by the +template expansion specifier, the pair \$B = (p, A)\$ is +in +scope as a definition and is called a bound parameter definition. +There are three kinds of bound parameter definitions:

        +
        +
          +
        1. +

          When p is a constant template parameter, B is called a +constant parameter definition.

          +
        2. +
        3. +

          When p is a port interface instance template parameter, B +is called a port interface instance parameter definition.

          +
        4. +
        5. +

          When p is a type template parameter, B +is called a type parameter definition.

          +
        6. +
        +
        +
      8. +
      +
      +
    6. +
    +
    +
    +
    +
    +

    7.20. Examples

    +
    +
    +
    port P
    +
    +@ A basic template parameterizing an interface port count
    +module template T(constant numPorts: U32) {
    +
    +  interface I {
    +    output port p: [numPorts] P
    +  }
    +
    +  passive component C {
    +    import I
    +  }
    +
    +}
    +
    +@ Instantiate the template giving the parameters concrete values
    +module M {
    +
    +  expand T(constant 30)
    +  # Bound parameter definition (constant numPorts: U32, 30)
    +  # Global definition interface I { output port p: [numPorts] P }
    +  # Global definition passive component C { output port p: [numPorts] P }
    +
    +}
    +
    +
    +
    +
    +

    7.21. Topology Port Instance Specifiers

    +
    +

    A topology port instance specifier specifies a +port instance in a topology definition +that is analogous to a port instance in a +component definition. +A port instance specifier in a topology T maps a name to a port instance +of a component instance that is part of T. +Such a specifier can be the endpoint of a +connection.

    +
    +
    +

    7.21.1. Syntax

    + +
    +
    +

    7.21.2. Semantics

    +
    +
      +
    1. +

      The identifier specifies the name N of the port instance.

      +
    2. +
    3. +

      The port instance identifier must be valid and refer to a port instance I.

      +
    4. +
    5. +

      The whole specifier makes I part of the + interface of the enclosing +topology, after renaming it with name N.

      +
    6. +
    +
    +
    +
    +

    7.21.3. Example

    +
    +
    +
    topology T {
    +    instance c1
    +    instance c2
    +
    +    connections {
    +        c1.portInternal -> c2.portInternal
    +    }
    +
    +    port portOut = c1.portOut
    +    port customPortName = c2.portIn
    +}
    +
    +topology Y {
    +    instance T
    +
    +    instance c3
    +
    +    connections {
    +        T.portOut -> c3.portIn
    +        c3.portOut -> T.customPortName
    +    }
    +}
    +
    +
    + +
    +
    +
    +
    +
    +

    8. Instance Member Identifiers

    +

    A instance member identifier is a unit of syntax that refers to a member of a component instance or a topology. @@ -9155,13 +9666,30 @@

    9.5. Qualified Identifier Ty abstract type definition, alias type definition, array definition, -enum definition, or -struct definition +enum definition, +struct definition, +or +bound parameter definition via the rules for name scoping. -It names the -type defined in the definition to which it refers.

    +A qualified identifier type name Q names a type a follows:

    +

    +
    +
      +
    1. +

      If Q refers to a global definition D, +then Q names the +type defined in D.

      +
    2. +
    3. +

      Otherwise Q refers to a bound parameter definition B. +In this case, B must be a +type template parameter +definition, and Q names the type defined in the global definition +represented by B.

      +
    4. +

    For example:

    @@ -9623,19 +10151,48 @@

    10.6. Floating-Point Literals

    10.7. Identifier Expressions

    +
    +

    10.7.1. Syntax

    -

    An identifier expression is an -identifier -that refers to a -constant definition -or +

    identifier

    +
    +
    +
    +

    10.7.2. Semantics

    +
    +

    The identifier must refer to a +constant definition, enumerated constant definition, +or bound parameter definition according to the -rules for resolving identifiers.

    +rules for resolving identifiers. +If the identifier refers to a bound parameter definition B, +then B must be a constant template +parameter definition.

    -

    Example:

    +

    An identifier expression is evaluated as follows:

    +
    +
      +
    • +

      If the identifier refers to a constant definition or enumerated constant +definition D, then the value of the expression is the value provided +by D.

      +
    • +
    • +

      Otherwise the identifier refers to a bound parameter definition +\$B = (p, A)\$. +By the rules for binding arguments +to template parameters, +A is constant e for some expression e. +In this case the value is provided by evaluating the expression e.

      +
    • +
    +
    +
    +
    +

    10.7.3. Example

    constant a = 42
    @@ -9643,6 +10200,7 @@ 

    10.7. Identifier Expressions

    +

    10.8. Integer Literals

    @@ -10114,7 +10672,70 @@

    11.3. Examples

    -

    12. Format Strings

    +

    12. Template Parameter Lists

    +
    +
    +

    A template parameter list is an +element sequence +in which the elements are template parameters, +and the terminating punctuation is a comma.

    +
    +
    +

    A template parameter is a name to which a +template argument +becomes bound when a template is expanded. +Within the scope of an expanded template, a the bound parameter is a +definition.

    +
    +
    +

    12.1. Syntax

    +
    +

    Each template parameter is one of the following:

    +
    +
    + +
    +
    +
    +

    12.2. Semantics

    +
    +

    The type name in a constant template parameter must be +a valid type name.

    +
    +
    +

    The qualified identifier in a port interface instance template parameter +must refer to +a port interface definition.

    +
    +
    +
    +

    12.3. Examples

    +
    +
    +
    constant c: U32
    +instance cmdDisp: Svc.CmdDispatcher
    +type T
    +
    +
    +
    +
    +
    +
    +

    13. Format Strings

    A format string is a string that specifies the display format @@ -10216,10 +10837,10 @@

    12. Format Strings

    -

    13. Comments and Annotations

    +

    14. Comments and Annotations

    -

    13.1. Comments

    +

    14.1. Comments

    A comment is model text that is ignored by the translator. It provides information to human readers of the source model.

    @@ -10244,7 +10865,7 @@

    13.1. Comments

    -

    13.2. Annotations

    +

    14.2. Annotations

    An annotation is similar to a comment, but it is attached to a @@ -10254,7 +10875,7 @@

    13.2. Annotations

    is to include annotations as comments in generated code.

    -

    13.2.1. Where Annotations Can Occur

    +

    14.2.1. Where Annotations Can Occur

    Annotations can occur at the following syntax elements:

    @@ -10288,7 +10909,7 @@

    13.2.1

    -

    13.2.2. Kinds of Annotations

    +

    14.2.2. Kinds of Annotations

    There are two kinds of annotations: pre-annotations and post-annotations.

    @@ -10329,7 +10950,7 @@
    Examp
    -

    13.2.3. Multiline Annotations

    +

    14.2.3. Multiline Annotations

    You can write several pre-annotations in a row before an annotatable element e. @@ -10370,10 +10991,10 @@

    Exam
    -

    14. Translation Units and Models

    +

    15. Translation Units and Models

    -

    14.1. Translation Units

    +

    15.1. Translation Units

    A translation unit forms part of a model at the top level. @@ -10382,7 +11003,7 @@

    14.1. Translation Units< e.g., on standard input.

    -

    14.1.1. Syntax

    +

    15.1.1. Syntax

    A translation unit is an element sequence in which each @@ -10393,7 +11014,7 @@

    14.1.1. Syntax

    -

    14.1.2. Example

    +

    15.1.2. Example

    Here is a translation unit:

    @@ -10428,7 +11049,7 @@

    14.1.2. Example<

    -

    14.2. Models

    +

    15.2. Models

    A model is a collection of one or more translation @@ -10460,7 +11081,7 @@

    14.2. Models

    @@ -10484,7 +11105,7 @@

    14.2. Models

    -

    14.3. Locations

    +

    15.3. Locations

    Every syntactic element E in a source model has an associated location L. @@ -10509,27 +11130,29 @@

    14.3. Locations

    -

    15. Scoping of Names

    +

    16. Scoping of Names

    -

    15.1. Qualified Identifiers

    +

    16.1. Qualified Identifiers

    -

    A qualified identifier is one of the following:

    +

    A qualified identifier qual-ident is one of the following:

    -
    -
      +
      +
    +
    -

    Examples:

    +

    Therefore every qualified identifier consists of +a nonempty list of identifiers separated by dots.

    +
    +
    +

    Examples:

    @@ -10540,10 +11163,10 @@

    15.1. Qualified Identifiers

    -

    15.2. Names of Definitions

    +

    16.2. Names of Definitions

    -

    Every -definition +

    Global definitions: +Every global definition D appearing in an FPP model has a unique qualified name. The qualified name is a qualified identifier formed as follows:

    @@ -10577,9 +11200,14 @@

    15.2. Names of Definitions

    }
    +
    +

    Bound parameter definitions: +Every bound parameter definition is referred to by an +identifier in the scope of an expanded template.

    +
    -

    15.3. Name Groups

    +

    16.3. Name Groups

    The qualified names of definitions reside in the following name groups:

    @@ -10602,6 +11230,9 @@

    15.3. Name Groups

    The state machine name group

  • +

    The template name group

    +
  • +
  • The system name group

  • @@ -10638,6 +11269,9 @@

    15.3. Name Groups

    Constant definitions reside in the value name group.

  • +

    Constant parameter definitions reside in the value name group.

    +
  • +
  • Enum definitions reside in both the value name group and the type name group.

  • @@ -10647,12 +11281,19 @@

    15.3. Name Groups

    Module definitions reside in all the name groups.

  • +

    Module template definitions reside in the template name group.

    +
  • +
  • Port definitions reside in the port name group.

  • Port interface definitions reside in the port interface name group.

  • +

    Port interface instance parameter definitions reside in the +port interface instance name group.

    +
  • +
  • State machine definitions reside in the state machine name group, the value name group, and the type name group.

  • @@ -10660,26 +11301,23 @@

    15.3. Name Groups

    Struct type definitions reside in the type name group.

  • +

    Topology definitions reside in the port interface instance name group.

    +
  • +
  • System definitions reside in the system name group.

  • -

    Topology definitions reside in the topology name group.

    +

    Type parameter definitions reside in the type name group.

  • -
    -

    Notice that elements with scopes reside in the name groups of items -that they may enclose. -For example, enums reside in the value name group because they -enclose constant definitions.

    -
    -

    15.4. Multiple Definitions with the Same Qualified Name

    +

    16.4. Multiple Global Definitions with the Same Qualified Name

    -

    15.4.1. Different Name Groups

    +

    16.4.1. Different Name Groups

    -

    Two definitions with the same qualified name are allowed if they are in +

    Two global definitions with the same qualified name are allowed if they are in different name groups. For example:

    @@ -10690,7 +11328,7 @@

    -

    15.4.2. Module Definitions

    +

    16.4.2. Module Definitions

    Multiple syntactic module definitions with the same qualified name are allowed. The semantic analysis combines all such definitions into a @@ -10732,7 +11370,7 @@

    -

    15.4.3. Conflicting Definitions

    +

    16.4.3. Conflicting Definitions

    Within the same name group, two definitions with the same qualified name are not allowed, unless they are both module definitions @@ -10761,36 +11399,89 @@

    -

    15.5. Resolution of Identifiers

    +

    16.5. Conflicting Parameter Names

    +
    +

    Within the scope of a single expanded template T, +the following rules apply:

    +
    +
    +
      +
    1. +

      No two template parameters of T +in the same name group may have the same name.

      +
    2. +
    3. +

      No template parameter of T may have the same name as +the unqualified name of any definition in the same name group +appearing in the expansion of T.

      +
    4. +
    +
    +
    +

    The purpose of these rules is to ensure that all the template parameters +and all the definitions in the body of the template can coexist +in the same scope.

    +
    +
    +

    For example, the following code violates these rules:

    +
    +
    +
    +
    module template T(constant x: U32, constant x: I32) { } # Reuse of the parameter name x
    +module template T(constant x: U32) {
    +  constant x = 0 # constant x conflicts with parameter x
    +}
    +
    +
    +
    +

    On the other hand, this code is allowed:

    +
    +
    +
    +
    module template T(constant x: U32, type x) { } # OK: constant x, type x
    +module template T(constant x: U32) {
    +  type x = U32  # OK: constant x, type x
    +}
    +
    +
    +
    +
    +

    16.6. Resolution of Identifiers

    The following rules govern the resolution of identifiers, i.e., associating identifiers with definitions:

    +
    +

    16.6.1. Outside Any Expanded Template

    +
    +

    To resolve an identifier I outside of any +expanded template, do the following:

    +
    1. Use the context to determine which name group -S to use. For example, if we are expecting a type name, then use the +G to use. For example, if we are expecting a type name, then use the type name group.

    2. -

      At the top level (outside the brace-delimited body of any definition), the +

      At the top level scope (outside the brace-delimited body of any definition), the identifier I refers to the unique definition with qualified name I if it -exists in name group S. Otherwise an error results.

      +exists in name group G. Otherwise an error results.

    3. -

      Inside the brace-delimited body of a definition with +

      Inside the brace-delimited scope of a definition with qualified name N appearing at the top level:

      1. The identifier I refers to the definition with qualified name -N . I if it exists in name group S.

        +N . I if it exists in name group G.

      2. Otherwise I refers to the definition with qualified name I if it -exists in name group S.

        +exists in name group G.

      3. Otherwise an error results.

        @@ -10799,13 +11490,13 @@

        15.5. Resolution of Identifi

    4. -

      Inside the brace-delimited body of a definition with qualified name +

      Inside the brace-delimited scope of a definition with qualified name N appearing inside the body of a definition D:

      1. The identifier I refers to the definition with qualified name -N . I if it exists in name group S.

        +N . I if it exists in name group G.

      2. Otherwise proceed as if I were appearing inside D.

        @@ -10819,78 +11510,220 @@

        15.5. Resolution of Identifi

        Example:

      -

      S refers to the value name group.

      +

      G refers to the value name group.

      -
      # Identifier M is in scope in S and refers to the qualified name M
      -# Identifier a is in scope in S and refers to qualified name a
      +
      # Identifier M is in scope in G and refers to the qualified name M
      +# Identifier a is in scope in G and refers to qualified name a
       
      -constant a = 1 # Unique definition in S with qualified name a
      +constant a = 1 # Unique definition in G with qualified name a
       
       module M {
      -  # Identifier M is in scope in S and refers to the qualified name M
      -  # Identifier N is in scope in S and refers to the qualified name N
      -  # Identifier a is in scope in S and refers to qualified name a
      -  # Identifier b is in scope in S and refers to qualified name M.b
      -  constant b = 2 # Unique definition in S with qualified name M.b
      +  # Identifier M is in scope in G and refers to the qualified name M
      +  # Identifier N is in scope in G and refers to the qualified name N
      +  # Identifier a is in scope in G and refers to qualified name a
      +  # Identifier b is in scope in G and refers to qualified name M.b
      +  constant b = 2 # Unique definition in G with qualified name M.b
       }
       
      -# Identifier M is in scope in S and refers to the qualified name M
      -# Identifier a is in scope in S and refers to qualified name a
      +# Identifier M is in scope in G and refers to the qualified name M
      +# Identifier a is in scope in G and refers to qualified name a
       
       module M {
       
      -  # Identifier M is in scope in S and refers to the qualified name M
      -  # Identifier N is in scope in S and refers to the qualified name M.N
      +  # Identifier M is in scope in G and refers to the qualified name M
      +  # Identifier N is in scope in G and refers to the qualified name M.N
         # Identifier a is in scope and refers to qualified name a
         # Identifier b is in scope and refers to qualified name M.b
       
         module N {
      -    # Identifier M is in scope in S and refers to the qualified name M
      -    # Identifier N is in scope in S and refers to the qualified name M.N
      -    # Identifier a is in scope in S and refers to qualified name a
      -    # Identifier b is in scope in S and refers to qualified name M.N.b
      -    constant b = 3 # Unique definition in S with qualified name M.N.b
      +    # Identifier M is in scope in G and refers to the qualified name M
      +    # Identifier N is in scope in G and refers to the qualified name M.N
      +    # Identifier a is in scope in G and refers to qualified name a
      +    # Identifier b is in scope in G and refers to qualified name M.N.b
      +    constant b = 3 # Unique definition in G with qualified name M.N.b
         }
       
       }
       
      -# Identifier M is in scope in S and refers to the qualified name M
      -# Identifier a is in scope in S and refers to qualified name a
      +# Identifier M is in scope in G and refers to the qualified name M +# Identifier a is in scope in G and refers to qualified name a
      +
      +
      +
    +
    +

    16.6.2. Inside an Expanded Template

    +
    +

    To resolve an identifier I inside an +expanded template, do the following:

    +
    +
    +
      +
    1. +

      Let E be the expanded template containing I. +By the rules +for template definitions, E is guaranteed to be unique.

      +
    2. +
    3. +

      Let T be the template definition referred to by E.

      +
    4. +
    5. +

      At the point of T, temporarily insert a definition D +with a brace-delimited scope and with the following properties:

      +
      +
        +
      1. +

        The scope of D contains the following definitions: (a) all the + bound parameter definitions of E and (b) all the +global definitions introduced in the expansion E.

        +
      2. +
      3. +

        The name of D is different from any name appearing as a qualifier in the +model. +Therefore the model uses only simple identifiers to refer to the +definitions in D.

        +
      4. +
      +
      +
    6. +
    7. +

      Use the rules stated in the previous section to resolve I +as if it appeared in D.

      +
    8. +
    +
    +
    +

    Example 1:

    +
    +
    +
    +
    module M {
    +  constant a = 0
    +  module template T {
    +    constant b = a
    +  }
    +}
    +module N {
    +  # Inside the expansion of M.T, names are resolved
    +  # in a new scope at the point of the definition of M.T.
    +  # So a refers to M.a, even though the expansion
    +  # occurs inside N.
    +  expand M.T
    +}
    +# The expansion introduces a definition b in module N,
    +# so N.b is in scope here. Definitions introduced by
    +# template expansion follow the standard rules for scoping.
    +constant c = N.b
    +
    +
    +
    +

    Example 2:

    +
    +
    +
    +
    module template T(constant a: U32) {
    +  constant b = a
    +}
    +
    +# The expansion of T introduces a definition constant b = a.
    +# Inside the expansion of T, the bound parameter definition
    +# (constant a: U32, 0) is in scope, and the name a refers
    +# to this definition.
    +expand T(0)
    +
    +
    +
    +
    +

    16.6.3. Implementation Note

    +
    +

    The standard way to implement the resolution semantics described in the +previous two sections is with stacks of scopes. +In this implementation, a scope is a map from identifiers to definitions. +At each point P in the model, there are two logical stacks for each name +group G:

    +
    +
    +
      +
    1. +

      A definition stack describing how definitions at P in name group G are +nested in +enclosing definitions.

      +
    2. +
    3. +

      A resolution stack describing how identifiers at P in name group G are +to be resolved.

      +
    4. +
    +
    +
    +

    At each point at the top level of the model (outside of any definition), the +definition stack has one scope, the top-level scope. +At each point inside a definition, we construct the definition stack +by (1) starting with the definition stack at the point of the definition +and (2) pushing a new scope containing the global definitions in the body of +the definition.

    +
    +
    +

    Outside of any expanded template, the definition stack and the resolution +stack are the same. +Inside an expanded template E that refers to a template definition T, +we construct the resolution stack by +(1) starting with the definition stack at the point of T and (2) +pushing a new scope containing the bound parameter definitions and +global definitions of E.

    +
    +
    +

    In all cases, to resolve an identifier I in name group G at point P, we +search +upwards in the resolution stack for name group G at P until one of two +things happens:

    +
    +
    +
      +
    1. +

      We find I as a key in some scope S. In this case I +refers to the definition to which I is mapped in S.

      +
    2. +
    3. +

      We reach the top level scope S and find that I does +not exist as a key in this scope. +In this case we report an undefined symbol error.

      +
    4. +
    -

    15.6. Resolution of Qualified Identifiers

    +

    16.7. Resolution of Qualified Identifiers

    The following rules govern the resolution of qualified identifiers, i.e., -associating qualified identifiers with definitions:

    +associating qualified identifiers Q with definitions:

    1. -

      If a qualified identifier is an identifier, then resolve it as -stated in the +

      If Q is an identifier I, then resolve I as stated in the previous section.

    2. -

      Otherwise, the qualified identifier has the form Q . I, where -Q is a qualified identifier and I is an identifier. Do the +

      Otherwise Q has the form Q' . I, where +Q' is a qualified identifier and I is an identifier. Do the following:

      1. -

        Recursively resolve Q.

        +

        Recursively resolve Q'.

      2. -

        If Q refers to a definition D +

        If Q' refers to a definition D with a brace-delimited body, then do the following:

        1. -

          Determine the name group S of Q . +

          Determine the name group S of Q' +. I.

        2. @@ -10913,7 +11746,8 @@

          15.6. Resolution o

        -
        module M {
        +
        constant a = 0
        +module M {
           constant a = 0
           enum E {
             b = 2
        @@ -10932,16 +11766,14 @@ 

        15.6. Resolution o

        -

        16. Definitions and Uses

        +

        17. Definitions and Uses

        -

        16.1. Uses

        +

        17.1. Uses

        A use is a qualified identifier -that refers to a -definition -according to the +that refers to a definition according to the scoping rules for names.

        @@ -10975,7 +11807,7 @@

        16.1. Uses

        -

        16.2. Use-Def Graph

        +

        17.2. Use-Def Graph

        The set of definitions and non-qualifying uses @@ -11042,7 +11874,7 @@

        16.2. Use-Def Graph

        -

        16.3. Order of Definitions and Uses

        +

        17.3. Order of Definitions and Uses

        So long as the use-def graph is acyclic, there is no @@ -11083,7 +11915,7 @@

        16.3. Order of Defin

        -

        16.4. Implied Uses

        +

        17.4. Implied Uses

        At certain points in the analysis, the analyzer may treat an element of the model as if it contained uses of one or more @@ -11117,7 +11949,7 @@

        16.4. Implied Uses

        An error also occurs if the rules for resolving dot expressions -causes an implied constant use to be resolved to a member +cause an implied constant use to be resolved to a member of a struct value instead of a constant definition. For example, suppose this definition exists in the model:

        @@ -11139,13 +11971,122 @@

        16.4. Implied Uses

        -

        17. Types

        +

        18. Expansion of Templates

        +
        +
        +

        Expansion of templates performs partial analysis +and syntactic expansion. +It produces a new model in which each +template +expansion specifier S is transformed into an +expanded template \$E = S { X }\$, where X +is a copy of the syntax provided +by the template definition to which S refers. +The expanded template E is not expressible in the syntax +of the source language, but it is expressible in the internal +representation of the model. +The syntax X behaves as if it were literally included in +the model at the point of E, except that there are +special rules for resolving +resolving names that appear inside E.

        +
        +
        +

        18.1. Algorithm

        +
        +

        Let M be the model initially presented to the analyzer, +with include specifiers resolved. +Construct the output model M' as follows:

        +
        +
        +
          +
        1. +

          Perform enough analysis on M to + check all the template +definitions and to match all template expansion + specifiers with the template definitions to which they refer.

          +
        2. +
        3. +

          For each template expansion specifier S in M, +do the following:

          +
          +
            +
          1. +

            Let T be the template definition referred to in S.

            +
          2. +
          3. +

            Let X be a copy of the syntax specified in the body of T.

            +
          4. +
          5. +

            Replace S with \$S { X }\$.

            +
          6. +
          +
          +
        4. +
        +
        +
        +
        +

        18.2. Example

        +
        +

        Model M:

        +
        +
        +
        +
        module M {
        +
        +  constant a = 0
        +
        +  module template T(constant b: U32) {
        +
        +    constant c = a + b
        +
        +  }
        +
        +}
        +
        +module N {
        +
        +  expand M.T(constant 1)
        +
        +}
        +
        +
        +
        +

        Model M':

        +
        +
        +
        +
        module M {
        +
        +  constant a = 0
        +
        +  module template T(constant b: U32) {
        +
        +    constant c = a + b
        +
        +  }
        +
        +}
        +
        +module N {
        +
        +  # The expanded template is expand M.T(constant 1) { constant c = a + b }
        +  expand M.T(constant 1)
        +
        +}
        +
        +
        +
        +
        +
        +
        +

        19. Types

        A type is a set of values.

        -

        17.1. Primitive Integer Types

        +

        19.1. Primitive Integer Types

        The primitive integer types correspond to the primitive integer type names @@ -11155,7 +12096,7 @@

        17.1. Primitive Integer Types

        -

        17.2. Floating-Point Types

        +

        19.2. Floating-Point Types

        The floating-point types correspond to the floating-point type names @@ -11163,7 +12104,7 @@

        17.2. Floating-Point Types

        -

        17.3. Primitive Numeric Types

        +

        19.3. Primitive Numeric Types

        The primitive integer types together with the floating-point types are @@ -11171,7 +12112,7 @@

        17.3. Primitive Numeric Types

        -

        17.4. The Boolean Type

        +

        19.4. The Boolean Type

        The Boolean type corresponds to the Boolean type name. @@ -11179,7 +12120,7 @@

        17.4. The Boolean Type

        -

        17.5. Primitive Types

        +

        19.5. Primitive Types

        Together, the primitive numeric types and the @@ -11188,7 +12129,7 @@

        17.5. Primitive Types

        -

        17.6. String Types

        +

        19.6. String Types

        The string types correspond to the string type names. @@ -11221,7 +12162,7 @@

        17.6. String Types

        -

        17.7. Array Types

        +

        19.7. Array Types

        An array type is a type associated with an array definition. @@ -11234,7 +12175,7 @@

        17.7. Array Types

        -

        17.8. Enum Types

        +

        19.8. Enum Types

        An enum type is a type associated with an enum definition. @@ -11245,7 +12186,7 @@

        17.8. Enum Types

        -

        17.9. Struct Types

        +

        19.9. Struct Types

        A struct type is a type associated with a struct definition. @@ -11256,7 +12197,7 @@

        17.9. Struct Types

        -

        17.10. Abstract Types

        +

        19.10. Abstract Types

        An abstract type is a type associated with an abstract type definition. @@ -11267,7 +12208,7 @@

        17.10. Abstract Types

        -

        17.11. Alias Types

        +

        19.11. Alias Types

        An alias type is a type associated with an alias type definition. @@ -11278,20 +12219,20 @@

        17.11. Alias Types

        -

        17.12. Internal Types

        +

        19.12. Internal Types

        Internal types do not have syntactic names in FPP source models. The compiler assigns these types to expressions during type checking.

        -

        17.12.1. Integer

        +

        19.12.1. Integer

        The type Integer represents all integer values, without regard to bit width.

        -

        17.12.2. Integer Types

        +

        19.12.2. Integer Types

        Integer together with the primitive integer types are called @@ -11299,7 +12240,7 @@

        17.12.2. Integer Types

        -

        17.12.3. Numeric Types

        +

        19.12.3. Numeric Types

        Integer together with the primitive numeric types are called @@ -11307,7 +12248,7 @@

        17.12.3. Numeric Types

        -

        17.12.4. Anonymous Array Types

        +

        19.12.4. Anonymous Array Types

        The type [ n ] T, where n is an integer and T is a type, represents an array of n elements, @@ -11318,7 +12259,7 @@

        17.12.4. Anonymous Array Typ

        -

        17.12.5. Anonymous Struct Types

        +

        19.12.5. Anonymous Struct Types

        The type { \$m_1\$ : \$T_1, ...,\$ \$m_n\$ : \$T_n\$ }, where each \$m_i\$ is an identifier and each \$T_i\$ is a type, @@ -11332,13 +12273,13 @@

        17.12.5. Anonymous Struct T

        -

        17.13. Canonical Types

        +

        19.13. Canonical Types

        A type is a canonical type if it is not an alias type.

        -

        17.14. Underlying Types

        +

        19.14. Underlying Types

        The underlying type of a type T is the canonical type associated with T.

        @@ -11357,7 +12298,7 @@

        17.14. Underlying Types

        -

        17.15. Displayable Types

        +

        19.15. Displayable Types

        A displayable type is a type that the F Prime ground data system can display. It is one of the following:

        @@ -11390,7 +12331,7 @@

        17.15. Displayable Types

        -

        17.16. Types with Numeric Members

        +

        19.16. Types with Numeric Members

        A type has numeric members if its underlying type is one of the following:

        @@ -11414,7 +12355,7 @@

        17.16. Types with Numeric Members

        -

        17.17. Alias Lists

        +

        19.17. Alias Lists

        The alias list of a type \$T\$ is a list \$L\$ defined as follows:

        @@ -11435,7 +12376,7 @@

        17.17. Alias Lists

        -

        17.18. Default Values

        +

        19.18. Default Values

        Every type T with a syntactic name in FPP has an associated default value. @@ -11501,7 +12442,7 @@

        17.18. Default Values

        -

        17.19. Serialized Sizes

        +

        19.19. Serialized Sizes

        Every displayable type has a serialized size. This is the maximum number of bytes required to @@ -11579,7 +12520,7 @@

        17.19. Serialized Sizes

        -

        18. Type Checking

        +

        20. Type Checking

        In this section, we explain the rules used to assign types to @@ -11607,7 +12548,7 @@

        18. Type Checking

        the result is a value of type \$T\$.

        -

        18.1. Integer Literals

        +

        20.1. Integer Literals

        -

        18.2. Floating-Point Literals

        +

        20.2. Floating-Point Literals

        -

        18.5. Identifier Expressions

        +

        20.5. Identifier Expressions

        To type an identifier expression \$e\$, the semantic analyzer @@ -11679,7 +12620,7 @@

        18.5. Identifier Expressions

        -

        18.6. Dot Expressions

        +

        20.6. Dot Expressions

        -

        18.8. Array Subscript Expressions

        +

        20.8. Array Subscript Expressions

        To type an array subscript expression @@ -11799,13 +12740,13 @@

        18.8. Array Subscript Express

        -

        18.9. Sizeof Expressions

        +

        20.9. Sizeof Expressions

        The type of a sizeof expression is Integer.

        -

        18.10. Struct Expressions

        +

        20.10. Struct Expressions

        To type a struct expression @@ -11837,7 +12778,7 @@

        18.10. Struct Expressions

        -

        18.11. Unary Negation Expressions

        +

        20.11. Unary Negation Expressions

        -

        18.12. Binary Expressions

        +

        20.12. Binary Expressions

        To type a binary expression \$e_1\$ op \$e_2\$ the semantic analyzer does the following:

        @@ -11894,7 +12835,7 @@

        18.12. Binary Expressions

      -

      18.12.1. Arithmetic and Concatenation

      +

      20.12.1. Arithmetic and Concatenation

      To type a binary expression \$e_1\$ op \$e_2\$ where op is +, -, *, or /, the @@ -11939,7 +12880,7 @@

      18.12.1.

      -

      18.12.2. Shifting

      +

      20.12.2. Shifting

      To type a binary expression \$e_1\$ op \$e_2\$, where op is << or >>, @@ -11987,7 +12928,7 @@

      18.12.2. Shifting

      -

      18.13. Parenthesis Expressions

      +

      20.13. Parenthesis Expressions

      -

      18.14. Identical Types

      +

      20.14. Identical Types

      We say that types \$T_1\$ and \$T_2\$ are identical if one of the following holds:

      @@ -12053,7 +12994,7 @@

      18.14. Identical Types

      -

      18.16. Computing a Common Type

      +

      20.16. Computing a Common Type

      -

      18.16.1. Pairs of Types

      +

      20.16.1. Pairs of Types

      Here are the rules for resolving two types \$T_1\$ and \$T_2\$ (e.g., the @@ -12284,7 +13225,7 @@

      18.16.1. Pairs of

      -

      18.16.2. Lists of Types

      +

      20.16.2. Lists of Types

      To compute a common type for a list of types \$T_1, ... , T_n\$, do the following:

      @@ -12311,7 +13252,7 @@

      18.16.2. Lists of

      -

      19. Type Options

      +

      21. Type Options

      A type option is one of the following:

      @@ -12332,7 +13273,7 @@

      19. Type Options

      machine definitions.

      -

      19.1. Conversion of Type Options

      +

      21.1. Conversion of Type Options

      We say that a type option \$O_1\$ may be converted to another type option \$O_2\$ in the following cases.

      @@ -12382,9 +13323,9 @@

      19.1. Conversion of Type Option

      -

      19.2. Computing a Common Type Option

      +

      21.2. Computing a Common Type Option

      -

      19.2.1. Pairs of Type Options

      +

      21.2.1. Pairs of Type Options

      Here are the rules for resolving two type options \$O_1\$ and \$O_2\$ to a common type option \$O\$:

      @@ -12442,7 +13383,7 @@

      19.2.

      -

      19.2.2. Lists of Type Options

      +

      21.2.2. Lists of Type Options

      To compute a common type for a list of type options \$O_1, ... , O_n\$, do the following:

      @@ -12470,7 +13411,7 @@

      19.2.

      -

      20. Values

      +

      22. Values

      A value is one of the following:

      @@ -12531,7 +13472,7 @@

      20. Values

      its associated canonical types.

      -

      20.1. Primitive Integer Values

      +

      22.1. Primitive Integer Values

      A primitive integer value is an ordinary (mathematical) integer value together with its canonical type, which is a @@ -12562,7 +13503,7 @@

      20.1. Primitive Integer Values

      -

      20.2. Integer Values

      +

      22.2. Integer Values

      An integer value is an ordinary (mathematical) integer value. Its canonical type is Integer. @@ -12571,7 +13512,7 @@

      20.2. Integer Values

      -

      20.3. Floating-Point Values

      +

      22.3. Floating-Point Values

      A floating-point value is an IEEE floating-point value of 4- or 8-byte width. Formally, the set of floating-point values is the disjoint union @@ -12594,14 +13535,14 @@

      20.3. Floating-Point Values

      -

      20.4. Boolean Values

      +

      22.4. Boolean Values

      A Boolean value is one of the values true and false. Its canonical type is bool.

      -

      20.5. String Values

      +

      22.5. String Values

      A string value is a sequence of characters that can be represented as a string literal expression. @@ -12624,7 +13565,7 @@

      20.5. String Values

      -

      20.6. Abstract Type Values

      +

      22.6. Abstract Type Values

      An abstract type value is a value associated with an abstract type. @@ -12637,7 +13578,7 @@

      20.6. Abstract Type Values

      -

      20.7. Anonymous Array Values

      +

      22.7. Anonymous Array Values

      An anonymous array value is a value associated with an anonymous array type. @@ -12669,7 +13610,7 @@

      20.7. Anonymous Array Values

      -

      20.8. Array Values

      +

      22.8. Array Values

      An array value is a value associated with an array type. We write an array value like an anonymous array @@ -12707,7 +13648,7 @@

      20.8. Array Values

      -

      20.10. Anonymous Struct Values

      +

      22.10. Anonymous Struct Values

      An anonymous struct value is a value associated with an anonymous struct @@ -12739,7 +13680,7 @@

      20.10. Anonymous Struct Values

      -

      20.12. Serialized Sizes

      +

      22.12. Serialized Sizes

      Every value v of a displayable type has a serialized size. This is the number of bytes required to represent v @@ -12819,7 +13760,7 @@

      20.12. Serialized Sizes

      -

      21. Evaluation

      +

      23. Evaluation

      Evaluation is the process of transforming an expression into @@ -12829,7 +13770,7 @@

      21. Evaluation

      in resolving expressions to compile-time constant values.

      -

      21.1. Evaluating Expressions

      +

      23.1. Evaluating Expressions

      Evaluation of expressions occurs as stated in the expression descriptions. Evaluation of integer @@ -12840,14 +13781,14 @@

      21.1. Evaluating Expressions

      -

      21.2. Type Conversion

      +

      23.2. Type Conversion

      The following rules govern the conversion of a value \$v_1\$ of canonical type \$T_1\$ to a value \$v_2\$ of canonical type \$T_2\$.

      -

      21.2.1. Unsigned Primitive Integer Values

      +

      23.2.1. Unsigned Primitive Integer Values

      1. @@ -12869,7 +13810,7 @@

        21.2.1. Un

      -

      21.2.2. Signed Primitive Integer Values

      +

      23.2.2. Signed Primitive Integer Values

      1. @@ -12889,7 +13830,7 @@

        21.2.2. Sign

      -

      21.2.3. Primitive Integer Values of Mixed Sign

      +

      23.2.3. Primitive Integer Values of Mixed Sign

      If \$T_1\$ and \$T_2\$ are primitive integer types with one signed and one unsigned, @@ -12914,7 +13855,7 @@

      21.2.

      -

      21.2.4. Primitive and Non-Primitive Integer Values

      +

      23.2.4. Primitive and Non-Primitive Integer Values

      If \$T_1\$ is Integer and \$T_2\$ is a primitive integer type, then proceed as if \$T_1\$ were a signed primitive integer @@ -12929,7 +13870,7 @@

      2

      -

      21.2.5. Floating-Point Values

      +

      23.2.5. Floating-Point Values

      We use the standard rules for IEEE floating-point values to convert among integer values to and from floating-point values and @@ -12937,7 +13878,7 @@

      21.2.5. Floating-Point

      -

      21.2.6. String Values

      +

      23.2.6. String Values

      If \$T_1\$ is a string type and \$T_2\$ is a string type, then let \$v_2 = v_1\$.

      @@ -12951,7 +13892,7 @@

      21.2.6. String Values

      -

      21.2.7. Array Values

      +

      23.2.7. Array Values

      If \$T_2\$ is an array type and \$T_1 = T_2\$, then let \$v_2 = v_1\$.

      @@ -13000,7 +13941,7 @@

      21.2.7. Array Values

      -

      21.2.8. Structure Values

      +

      23.2.8. Structure Values

      If \$T_2\$ is a struct type and \$T_1 = T_2\$, then let \$v_2 = v_1\$.

      @@ -13034,13 +13975,13 @@

      21.2.8. Structure Values

      -

      22. Ports

      +

      24. Ports

      This section specifies the semantics of FPP ports.

      -

      22.1. Port Instances

      +

      24.1. Port Instances

      A port instance I is an instantiated port instance specifier. @@ -13071,7 +14012,7 @@

      22.1. Port Instances

      -

      22.2. Port Interfaces

      +

      24.2. Port Interfaces

      A port interface is a set I of port instances. @@ -13091,10 +14032,13 @@

      22.2. Port Interfaces

    3. A topology definition.

    4. +
    5. +

      A port interface instance template parameter.

      +
    -

    22.2.1. Port Interface Definitions

    +

    24.2.1. Port Interface Definitions

    For every port interface definition D, there is an associated port interface I. @@ -13115,7 +14059,7 @@

    22.2.1. Port Interface

    -

    22.2.2. Component Definitions

    +

    24.2.2. Component Definitions

    For every component definition D, there is an associated port interface I. @@ -13136,7 +14080,7 @@

    22.2.2. Component Definitio

    -

    22.2.3. Component Instance Definitions

    +

    24.2.3. Component Instance Definitions

    For every component instance definition D, there is an associated port interface I. @@ -13146,7 +14090,7 @@

    22.2.3. Component

    -

    22.2.4. Topology Definitions

    +

    24.2.4. Topology Definitions

    For every topology definition D, there is an associated port interface I. This port interface is computed as follows. @@ -13169,24 +14113,75 @@

    22.2.4. Topology Definitions

    +
    +

    24.2.5. Template Parameter Definitions

    +
    +

    For every port interface instance template +parameter P, there +is an associated port interface I. +It is given by the port interface definition referred to in P.

    +
    +
    -

    22.3. Port Interface Instances

    +

    24.3. Port Interface Instances

    -

    A port interface instance is either a -component instance definition -or a topology definition. -Each of these elements provides concrete port instances -that can serve as the endpoints of topology connections. -A port interface instance has an associated port interface I; -this is the port interface associated with the -component instance -definition or -topology definition.

    +

    A port interface instance is one of the following:

    +
    + +
    +

    Each of these elements has an associated port interface I:

    +
    +
    +
      +
    1. +

      For a component instance definition D, the port interface is given by the +component definition referred to in D.

      +
    2. +
    3. +

      For a topology definition, the port interface is given by the definition.

      +
    4. +
    5. +

      For a port interface instance template definition \$(p, A)\$, the port +interface is specified in the parameter p.

      +
    6. +
    +
    +
    +

    Each port interface instance represents a component instance definition +or topology definition D:

    +
    +
    +
      +
    1. +

      A component instance definition D or topology definition D represents +D.

      +
    2. +
    3. +

      A bound parameter definition B represents a definition D as +described in the section on definitions.

      +
    4. +
    -

    22.4. Sub-Interfaces

    +

    24.4. Sub-Interfaces

    A port interface I is a sub-interface of a port interface I' if the set of port instances represented by I is a subset of the set of @@ -13201,10 +14196,10 @@

    22.4. Sub-Interfaces

    -

    23. Analysis and Translation

    +

    25. Analysis and Translation

    -

    23.1. Analysis

    +

    25.1. Analysis

    Analysis is the process of checking a source model. It usually involves the following steps:

    @@ -13215,13 +14210,17 @@

    23.1. Analysis

    Lexing and parsing to generate an abstract syntax tree (AST).

  • -

    If step (1) succeeded, semantic analysis of the AST.

    +

    If step (1), succeeded, analysis and expansion of +templates to generate a new AST.

    +
  • +
  • +

    If step (2) succeeded, semantic analysis of the AST generated in step (2).

  • -

    23.2. Analysis Tools

    +

    25.2. Analysis Tools

    An analysis tool is a tool that reads in and analyzes FPP source files, but does not generate any code. @@ -13245,7 +14244,7 @@

    23.2. Analysis Tools

    -

    23.3. Translation

    +

    25.3. Translation

    Translation is the process of performing analysis and generating code.

    @@ -13270,7 +14269,7 @@

    23.3. Translation

    -

    23.4. Translation Tools

    +

    25.4. Translation Tools

    A translation tool is a tool that translates FPP source files. A translation tool typically accepts the following two kinds of @@ -13309,7 +14308,7 @@

    23.4. Translation Tools

    diff --git a/docs/fpp-users-guide.html b/docs/fpp-users-guide.html index 7731bcca44..2ce593620a 100644 --- a/docs/fpp-users-guide.html +++ b/docs/fpp-users-guide.html @@ -17353,7 +17353,7 @@

    18.4. S

    diff --git a/docs/index.html b/docs/index.html index fa4eaf4b33..5a30e92a48 100644 --- a/docs/index.html +++ b/docs/index.html @@ -464,7 +464,7 @@

    F Prime Prime (FPP)

    diff --git a/docs/spec/Analysis-and-Translation.adoc b/docs/spec/Analysis-and-Translation.adoc index edf016df11..cc1ad415a7 100644 --- a/docs/spec/Analysis-and-Translation.adoc +++ b/docs/spec/Analysis-and-Translation.adoc @@ -7,7 +7,10 @@ It usually involves the following steps: . Lexing and parsing to generate an abstract syntax tree (AST). -. If step (1) succeeded, semantic analysis of the AST. +. If step (1), succeeded, <> to generate a new AST. + +. If step (2) succeeded, semantic analysis of the AST generated in step (2). === Analysis Tools diff --git a/docs/spec/Definitions-and-Uses.adoc b/docs/spec/Definitions-and-Uses.adoc index 6dab3237a2..059711d0f4 100644 --- a/docs/spec/Definitions-and-Uses.adoc +++ b/docs/spec/Definitions-and-Uses.adoc @@ -4,9 +4,7 @@ A *use* is a <> -that refers to a -<> -according to the +that refers to a <> according to the <>. A use is a *qualifying use* if it qualifies another use. For example, in @@ -152,7 +150,7 @@ module M { An error also occurs if the rules for resolving <> -causes an implied constant use to be resolved to a member +cause an implied constant use to be resolved to a member of a struct value instead of a constant definition. For example, suppose this definition exists in the model: diff --git a/docs/spec/Definitions/Introduction.adoc b/docs/spec/Definitions/Introduction.adoc index 39400e6883..90e1bfdcb0 100644 --- a/docs/spec/Definitions/Introduction.adoc +++ b/docs/spec/Definitions/Introduction.adoc @@ -2,3 +2,39 @@ A *definition* is a unit of syntax that introduces a name _N_ and associates some code with _N_. + +In FPP, there are two kinds of definitions: + +. *Global definitions* that introduce globally visible + <>. + +. *Bound parameter definitions* introduced by binding +<> to +<> within +the scope of an <>. +A bound parameter definition is a pair stem:[(p, A)] consisting of +a template parameter _p_ and a template argument _A_. +The name associated with a bound parameter definition stem:[(p, A)] +is the identifier specified in _p_. +Bound parameter definitions come into scope +<>. + +Within an expanded template, a bound parameter definition may *represent* +a global definition, either directly or indirectly. +A bound parameter definition stem:[B = (p, A)] represents +a global definition _D_ if (1) _A_ +<> _D_ or (2) +_A_ refers to a bound parameter definition _B'_ that represents _D_. + +Not all bound parameter definitions represent global definitions. +For example, the bound parameter definition + +[source,fpp] +---- +( constant x : U32 , 0 ) +---- + +does not represent any global definition. + +The rest of this section discusses the global definitions. diff --git a/docs/spec/Definitions/Module-Definitions.adoc b/docs/spec/Definitions/Module-Definitions.adoc index a90b3ac721..cda0db3683 100644 --- a/docs/spec/Definitions/Module-Definitions.adoc +++ b/docs/spec/Definitions/Module-Definitions.adoc @@ -36,6 +36,10 @@ A module member is one of the following: * A <> +* A <> + +* A <> + * A <> * An <> diff --git a/docs/spec/Definitions/Module-Template-Definitions.adoc b/docs/spec/Definitions/Module-Template-Definitions.adoc new file mode 100644 index 0000000000..cee0a4a15e --- /dev/null +++ b/docs/spec/Definitions/Module-Template-Definitions.adoc @@ -0,0 +1,95 @@ +=== Module Template Definitions + +A *module template definition* associates a name +with a *module template*. +A module template is a set of syntactic elements, each of which +becomes a member of a <> or a +<> +at the point where the template is <>. +Each template may be expanded any number of times, and +each expansion creates a distinct set of translation unit +or module members. +Templates may have parameters that become bound +to <> +at the point of expansion. + +==== Syntax + +`module` `template` +<> +_[_ +`(` <> `)` +_]_ +`{` +_module-member-sequence_ +`}` + +_module-member-sequence_ is identical to the module member sequence +of a <>. + +==== Semantics + +The identifier is the name of the template. + +No module template definition may be the ancestor in the +abstract syntax tree of another module template definition +or of a <>. +This rule ensures that <> +never causes another template to be defined or another +template expansion to occur. + +Each module template definition _M_ that appears in a model +must pass the following analysis, regardless of whether it +is expanded. + +. Expand _M_ at the point of the definition of _M_, providing the following + <>: + +.. For each constant template parameter, a literal value of the correct type. + +.. For each port interface instance template argument, a component + instance definition that minimally satisfies the interface. + +.. For each type template argument, an abstract type definition. + +. In the expansion _E_, do the following: + +.. Construct the <>, checking for cycles. + +.. Compute the types associated with type definition symbols, enumerated + constant symbols, and type names, except that array size expressions + and default value expressions are still unevaluated. + +.. Perform <>, + except that array size expressions and default value expressions in type + definitions are still unevaluated. + +==== Example + +[source,fpp] +---- +template MT( + constant baseId: FwIdType + instance comDriver: Drv.ByteStreamDriver +) { + + instance comStub: Svc.ComStub base id \ + baseId + 0x0800 + + topology T { + instance comDriver + instance comStub + + # Connect to the driver from the parameter list + connections Downlink { + comStub.drvSendOut -> comDriver.$send + comDriver.sendReturnOut -> comStub.drvSendReturnIn + comDriver.ready -> comStub.drvConnected + } + } + +} +---- diff --git a/docs/spec/Definitions/Topology-Definitions.adoc b/docs/spec/Definitions/Topology-Definitions.adoc index 56c2bfaca2..142d81272e 100644 --- a/docs/spec/Definitions/Topology-Definitions.adoc +++ b/docs/spec/Definitions/Topology-Definitions.adoc @@ -93,9 +93,9 @@ if _E_ has a port number expression _e_ in the FPP source, then _Integer_, and assign the port number _n_ at endpoint _E_ of connection _C_. Check that _n_ is in bounds for the port instance being numbered. -. Let _S_ be the set of all topologies that are named as -<> -in _D_. +. Let _S_ be the set of all topologies +<> in _D_. Recursively resolve all the topologies in _S_. . Construct the connection graphs of _T_ given by the @@ -126,31 +126,35 @@ connections C { a.b -> c.d, e.f -> g.h } + . Let the initial set of instances of _T_ be the -<> -specified in the definition of _T_. -For each topology _T'_ in _S_ (step 2), +port interface instances +<> +in the definition of _T_. +For each topology _T'_ resolved in step 2, <> of _T'_ into _T_. -Note that _T'_ is resolved (step 2), so the set of instances of _T'_ contains -all topologies transitively -imported by the definition of _T'_. +Note that _T'_ is resolved, so the set of instances of _T'_ contains all +topologies transitively imported by the definition of _T'_. . For each connection _C_ discovered in step 3, check that each <> of _C_ refers to one of the port interface instances computed in the previous step. . For each -<> -_E_ of a connection computed in step 3, do the following: +<> +_E_ of a connection computed in step 3, let the port instance +identifier in _E_ be _Q_ `.` _I_, and do the following: -.. If _E_ is a <>, -then do nothing. +.. If _E_ is a <>, check that the <> +of the component instance contains the port instance _I_. -.. Otherwise the <> -_P_ appearing in _E_ has the form _Q_ -`.` _I_, where _Q_ refers to a topology _T'_, and -_I_ names a port of _T'_. +.. Otherwise if _E_ is a <>, where _Q_ refers to a topology _T'_, then + +... Check that the associated port interface of _T'_ contains the + port instance _I_, ... Find the <> `port` _I_ `=` _P'_ in _T'_. @@ -160,6 +164,18 @@ Retain the port number assignment, if any, at _E_ computed in step 1. ... Reapply steps a and b to the endpoint _E_. +.. Otherwise _E_ is a <>, where _Q_ refers to a bound parameter stem:[B = (p, A)], +and _A_ refers to a <> +_N_. + +... Check that the port interface of _p_ contains the port instance _I_. + +... Replace _B_ with _N_ in the endpoint _E_. +Retain the port number assignment, if any, at _E_ computed in step 1. + +... Reapply steps a, b, and c to the endpoint _E_. + . For each topology _T'_ in _S_, <> @@ -531,7 +547,7 @@ topology AttitudeControl { # Imported topologies # ---------------------------------------------------------------------- - instance CDH + import CDH # ---------------------------------------------------------------------- # Public instances @@ -591,9 +607,9 @@ deployment topology Release { # Imported topologies # ---------------------------------------------------------------------- - instance AttitudeControl - instance CDH - instance Communication + import AttitudeControl + import CDH + import Communication ... # Connecting subtopologies together @@ -627,7 +643,7 @@ topology A { topology B { - instance A + import A instance d instance e @@ -711,3 +727,104 @@ topology B { } ---- + +*Example 6 (Topology Ports).* + +[source,fpp] +---- +topology A { + + instance b + + port p = b.p + +} + +topology B { + + instance a + + instance B + + connections C { + a.p -> B.p + } + +} +---- + +Here we have imported topology `B` with the `instance` keyword, emphasizing +that `B` is to be treated as an interface instance with ports. +We could also have used `import` as in the examples above. +See the section on <>. + +Import resolution produces this topology: + +[source,fpp] +---- +topology A { + + instance a + instance b + + connections C { + a.p -> b.p + } + +} +---- + +*Example 7 (Topology Templates).* + +[source,fpp] +---- +port P + +interface IOut { + output port p: P +} + +passive component COut { + import IOut + output port pOther: P +} + +passive component CIn { + sync input port p: P +} + +instance cOut: COut base id 0x100 +instance cIn: CIn base id 0x200 + +module template T( + # Introduce an instance by template parameter. + # At this point we don't know what this instance is. + # All we know is that it has the port interface IOut. + instance iOut: IOut +) { + topology T { + # On expansion, the topology T will have two instances: iOut and cIn. + # iOut will refer to the bound parameter definition with name iOut. + # cIn will refer to the component instance cIn. + instance iOut + instance cIn + connections C { + # Connection goes from the port interface of iOut to + # the port interface of cIn + iOut.p -> cIn.p + # We must connect ports in the interfaces of the instances named. + # For example, a connection iOut.pOther -> cIn.p is not allowed here, + # because pOther is not in the port interface of iOut. + # This is true even if iOut is eventually bound to cOut, which has the + # output port pOther. + } + } +} + +# In the expansion, the bound parameter (iOut: IOut, cOut) is in scope. +# After resolution, the connection is cOut.p -> cIn.p. +expand T(cOut) +---- + + diff --git a/docs/spec/Definitions/defs.sh b/docs/spec/Definitions/defs.sh index b75e709128..8d65c6cc29 100644 --- a/docs/spec/Definitions/defs.sh +++ b/docs/spec/Definitions/defs.sh @@ -17,6 +17,7 @@ Constant-Definitions.adoc Enum-Definitions.adoc Enumerated-Constant-Definitions.adoc Module-Definitions.adoc +Module-Template-Definitions.adoc Port-Definitions.adoc Port-Interface-Definitions.adoc State-Machine-Definitions.adoc diff --git a/docs/spec/Expansion-of-Templates.adoc b/docs/spec/Expansion-of-Templates.adoc new file mode 100644 index 0000000000..f89e58579c --- /dev/null +++ b/docs/spec/Expansion-of-Templates.adoc @@ -0,0 +1,88 @@ +== Expansion of Templates + +Expansion of templates performs partial analysis +and syntactic expansion. +It produces a new model in which each +<> _S_ is transformed into an +*expanded template* stem:[E = S { X }], where _X_ +is a copy of the syntax provided +by the template definition to which _S_ refers. +The expanded template _E_ is not expressible in the syntax +of the source language, but it is expressible in the internal +representation of the model. +The syntax _X_ behaves as if it were literally included in +the model at the point of _E_, except that there are +special rules for resolving +<> that appear inside _E_. + +=== Algorithm + +Let _M_ be the model initially presented to the analyzer, +with <> resolved. +Construct the output model _M'_ as follows: + +. Perform enough analysis on _M_ to + <> and to match all template expansion + specifiers with the template definitions to which they refer. + +. For each template expansion specifier _S_ in _M_, + do the following: + +.. Let _T_ be the template definition referred to in _S_. + +.. Let _X_ be a copy of the syntax specified in the body of _T_. + +.. Replace _S_ with stem:[S { X }]. + +=== Example + +*Model _M_:* + +[source,fpp] +---- +module M { + + constant a = 0 + + module template T(constant b: U32) { + + constant c = a + b + + } + +} + +module N { + + expand M.T(constant 1) + +} +---- + +*Model _M'_:* + +[source,fpp] +---- +module M { + + constant a = 0 + + module template T(constant b: U32) { + + constant c = a + b + + } + +} + +module N { + + # The expanded template is expand M.T(constant 1) { constant c = a + b } + expand M.T(constant 1) + +} +---- + diff --git a/docs/spec/Expressions/Identifier-Expressions.adoc b/docs/spec/Expressions/Identifier-Expressions.adoc index 3ce0164211..4b4770a402 100644 --- a/docs/spec/Expressions/Identifier-Expressions.adoc +++ b/docs/spec/Expressions/Identifier-Expressions.adoc @@ -1,15 +1,35 @@ === Identifier Expressions -An *identifier expression* is an -<> -that refers to a -<> -or +==== Syntax + +_<>_ + +==== Semantics + +The identifier must refer to a +<>, <>, +or <> according to the <>. +If the identifier refers to a bound parameter definition _B_, +then _B_ must be a <>. + +An identifier expression is evaluated as follows: + +* If the identifier refers to a constant definition or enumerated constant + definition _D_, then the value of the expression is the value provided + by _D_. + +* Otherwise the identifier refers to a bound parameter definition + stem:[B = (p, A)]. + By the rules for <>, + _A_ is `constant` _e_ for some expression _e_. + In this case the value is provided by evaluating the expression _e_. -**Example:** +==== Example [source,fpp] ---- diff --git a/docs/spec/Ports.adoc b/docs/spec/Ports.adoc index 5b3e1a9e28..f5a01dfc2b 100644 --- a/docs/spec/Ports.adoc +++ b/docs/spec/Ports.adoc @@ -39,6 +39,8 @@ Each of the following FPP elements has an associated port interface: * A <>. +* A <>. + ==== Port Interface Definitions For every port interface definition _D_, there is an associated @@ -88,18 +90,45 @@ with the port name in _n_. . Add _i'_ to _I_. +==== Template Parameter Definitions + +For every <> _P_, there +is an associated port interface _I_. +It is given by the port interface definition referred to in _P_. + === Port Interface Instances -A *port interface instance* is either a -<> -or a <>. -Each of these elements provides concrete port instances -that can serve as the endpoints of topology connections. -A port interface instance has an associated port interface _I_; -this is the port interface associated with the -<> or -<>. +A *port interface instance* is one of the following: + +. A <>. + +. A <>. + +. A <> stem:[(p, A)], where +_p_ is a <>, and _A_ <> +a port interface instance. + +Each of these elements has an *associated port interface* _I_: + +. For a component instance definition _D_, the port interface is given by the + component definition referred to in _D_. + +. For a topology definition, the port interface is given by the definition. + +. For a port interface instance template definition stem:[(p, A)], the port + interface is specified in the parameter _p_. + +Each port interface instance *represents* a component instance definition +or topology definition _D_: + +. A component instance definition _D_ or topology definition _D_ represents + _D_. + +. A bound parameter definition _B_ represents a definition _D_ as + described in the <>. === Sub-Interfaces diff --git a/docs/spec/Scoping-of-Names.adoc b/docs/spec/Scoping-of-Names.adoc index 3ea1604b97..404b2b8efb 100644 --- a/docs/spec/Scoping-of-Names.adoc +++ b/docs/spec/Scoping-of-Names.adoc @@ -2,15 +2,16 @@ === Qualified Identifiers -A *qualified identifier* is one of the following: +A *qualified identifier* _qual-ident_ is one of the following: -1. An -<>. +* _<>_ -2. _Q_ `.` _I_, where _Q_ is a qualified identifier and _I_ is an -identifier. +* _qual-ident_ `.` _<>_ -Examples: +Therefore every qualified identifier consists of +a nonempty list of identifiers separated by dots. + +*Examples:* [source,fpp] ---- @@ -21,8 +22,8 @@ a.b.c === Names of Definitions -Every -<> +*Global definitions:* +Every <> _D_ appearing in an FPP model has a unique *qualified name*. The qualified name is a <> formed as follows: @@ -49,6 +50,10 @@ module M { # Qualified name is M } ---- +*Bound parameter definitions:* +Every <> is referred to by an +identifier in the scope of an <>. + === Name Groups The qualified names of definitions @@ -64,6 +69,8 @@ reside in the following *name groups*: . The *state machine name group* +. The *template name group* + . The *system name group* . The *type name group* @@ -86,35 +93,39 @@ state machine name group. * Constant definitions reside in the value name group. +* Constant parameter definitions reside in the value name group. + * Enum definitions reside in both the value name group and the type name group. * Enumerated constant definitions reside in the value name group. * Module definitions reside in all the name groups. +* Module template definitions reside in the template name group. + * Port definitions reside in the port name group. * Port interface definitions reside in the port interface name group. +* Port interface instance parameter definitions reside in the + port interface instance name group. + * State machine definitions reside in the state machine name group, the value name group, and the type name group. * Struct type definitions reside in the type name group. -* System definitions reside in the system name group. +* Topology definitions reside in the port interface instance name group. -* Topology definitions reside in the topology name group. +* System definitions reside in the system name group. -Notice that elements with scopes reside in the name groups of items -that they may enclose. -For example, enums reside in the value name group because they -enclose constant definitions. +* Type parameter definitions reside in the type name group. -=== Multiple Definitions with the Same Qualified Name +=== Multiple Global Definitions with the Same Qualified Name ==== Different Name Groups -Two definitions with the same qualified name are allowed if they are in +Two global definitions with the same qualified name are allowed if they are in different name groups. For example: [source,fpp] @@ -186,102 +197,249 @@ module M { } ---- +=== Conflicting Parameter Names + +Within the scope of a single <> _T_, +the following rules apply: + +. No two <> of _T_ + in the same name group may have the same name. + +. No template parameter of _T_ may have the same name as + the unqualified name of any definition in the same name group + appearing in the expansion of _T_. + +The purpose of these rules is to ensure that all the template parameters +and all the definitions in the body of the template can coexist +in the same scope. + +For example, the following code violates these rules: + +[source,fpp] +---- +module template T(constant x: U32, constant x: I32) { } # Reuse of the parameter name x +module template T(constant x: U32) { + constant x = 0 # constant x conflicts with parameter x +} +---- + +On the other hand, this code is allowed: + +[source,fpp] +---- +module template T(constant x: U32, type x) { } # OK: constant x, type x +module template T(constant x: U32) { + type x = U32 # OK: constant x, type x +} +---- + === Resolution of Identifiers The following rules govern the resolution of identifiers, i.e., associating identifiers with definitions: +==== Outside Any Expanded Template + +To resolve an identifier _I_ outside of any +<>, do the following: + . Use the context to determine which <> -_S_ to use. For example, if we are expecting a type name, then use the +_G_ to use. For example, if we are expecting a type name, then use the type name group. -. At the top level (outside the brace-delimited body of any definition), the +. At the top level scope (outside the brace-delimited body of any definition), the identifier _I_ refers to the unique definition with qualified name _I_ if it -exists in name group _S_. Otherwise an error results. +exists in name group _G_. Otherwise an error results. -. Inside the brace-delimited body of a <> with +. Inside the brace-delimited scope of a <> with qualified name _N_ appearing at the top level: .. The identifier _I_ refers to the definition with qualified name -_N_ `.` _I_ if it exists in name group _S_. +_N_ `.` _I_ if it exists in name group _G_. .. Otherwise _I_ refers to the definition with qualified name _I_ if it -exists in name group _S_. +exists in name group _G_. .. Otherwise an error results. -. Inside the brace-delimited body of a definition with qualified name +. Inside the brace-delimited scope of a definition with qualified name _N_ appearing inside the body of a definition _D_: .. The identifier _I_ refers to the definition with qualified name -_N_ `.` _I_ if it exists in name group _S_. +_N_ `.` _I_ if it exists in name group _G_. .. Otherwise proceed as if _I_ were appearing inside _D_. *Example:* -_S_ refers to the value name group. +_G_ refers to the value name group. [source,fpp] ---- -# Identifier M is in scope in S and refers to the qualified name M -# Identifier a is in scope in S and refers to qualified name a +# Identifier M is in scope in G and refers to the qualified name M +# Identifier a is in scope in G and refers to qualified name a -constant a = 1 # Unique definition in S with qualified name a +constant a = 1 # Unique definition in G with qualified name a module M { - # Identifier M is in scope in S and refers to the qualified name M - # Identifier N is in scope in S and refers to the qualified name N - # Identifier a is in scope in S and refers to qualified name a - # Identifier b is in scope in S and refers to qualified name M.b - constant b = 2 # Unique definition in S with qualified name M.b + # Identifier M is in scope in G and refers to the qualified name M + # Identifier N is in scope in G and refers to the qualified name N + # Identifier a is in scope in G and refers to qualified name a + # Identifier b is in scope in G and refers to qualified name M.b + constant b = 2 # Unique definition in G with qualified name M.b } -# Identifier M is in scope in S and refers to the qualified name M -# Identifier a is in scope in S and refers to qualified name a +# Identifier M is in scope in G and refers to the qualified name M +# Identifier a is in scope in G and refers to qualified name a module M { - # Identifier M is in scope in S and refers to the qualified name M - # Identifier N is in scope in S and refers to the qualified name M.N + # Identifier M is in scope in G and refers to the qualified name M + # Identifier N is in scope in G and refers to the qualified name M.N # Identifier a is in scope and refers to qualified name a # Identifier b is in scope and refers to qualified name M.b module N { - # Identifier M is in scope in S and refers to the qualified name M - # Identifier N is in scope in S and refers to the qualified name M.N - # Identifier a is in scope in S and refers to qualified name a - # Identifier b is in scope in S and refers to qualified name M.N.b - constant b = 3 # Unique definition in S with qualified name M.N.b + # Identifier M is in scope in G and refers to the qualified name M + # Identifier N is in scope in G and refers to the qualified name M.N + # Identifier a is in scope in G and refers to qualified name a + # Identifier b is in scope in G and refers to qualified name M.N.b + constant b = 3 # Unique definition in G with qualified name M.N.b + } + +} + +# Identifier M is in scope in G and refers to the qualified name M +# Identifier a is in scope in G and refers to qualified name a +---- + +==== Inside an Expanded Template + +To resolve an identifier _I_ inside an +<>, do the following: + +. Let _E_ be the expanded template containing _I_. + By the <>, _E_ is guaranteed to be unique. + +. Let _T_ be the template definition referred to by _E_. + +. At the point of _T_, temporarily insert a definition _D_ + with a brace-delimited scope and with the following properties: + +.. The scope of _D_ contains the following definitions: (a) all the + <> of _E_ and (b) all the +<> introduced in the expansion _E_. + +.. The name of _D_ is different from any name appearing as a qualifier in the + model. + Therefore the model uses only simple identifiers to refer to the + definitions in _D_. + +. Use the rules stated in the previous section to resolve _I_ + as if it appeared in _D_. + +*Example 1:* + +[source,fpp] +---- +module M { + constant a = 0 + module template T { + constant b = a } +} +module N { + # Inside the expansion of M.T, names are resolved + # in a new scope at the point of the definition of M.T. + # So a refers to M.a, even though the expansion + # occurs inside N. + expand M.T +} +# The expansion introduces a definition b in module N, +# so N.b is in scope here. Definitions introduced by +# template expansion follow the standard rules for scoping. +constant c = N.b +---- +*Example 2:* + +[source,fpp] +---- +module template T(constant a: U32) { + constant b = a } -# Identifier M is in scope in S and refers to the qualified name M -# Identifier a is in scope in S and refers to qualified name a +# The expansion of T introduces a definition constant b = a. +# Inside the expansion of T, the bound parameter definition +# (constant a: U32, 0) is in scope, and the name a refers +# to this definition. +expand T(0) ---- +==== Implementation Note + +The standard way to implement the resolution semantics described in the +previous two sections is with stacks of scopes. +In this implementation, a *scope* is a map from identifiers to definitions. +At each point _P_ in the model, there are two logical stacks for each name +group _G_: + +. A *definition stack* describing how definitions at _P_ in name group _G_ are +nested in +enclosing definitions. + +. A *resolution stack* describing how identifiers at _P_ in name group _G_ are + to be resolved. + +At each point at the top level of the model (outside of any definition), the +definition stack has one scope, the top-level scope. +At each point inside a definition, we construct the definition stack +by (1) starting with the definition stack at the point of the definition +and (2) pushing a new scope containing the global definitions in the body of +the definition. + +Outside of any expanded template, the definition stack and the resolution +stack are the same. +Inside an expanded template _E_ that refers to a template definition _T_, +we construct the resolution stack by +(1) starting with the definition stack at the point of _T_ and (2) +pushing a new scope containing the bound parameter definitions and +global definitions of _E_. + +In all cases, to resolve an identifier _I_ in name group _G_ at point _P_, we +search +upwards in the resolution stack for name group _G_ at _P_ until one of two +things happens: + +. We find _I_ as a key in some scope _S_. In this case _I_ + refers to the definition to which _I_ is mapped in _S_. + +. We reach the top level scope _S_ and find that _I_ does + not exist as a key in this scope. + In this case we report an undefined symbol error. + === Resolution of Qualified Identifiers The following rules govern the resolution of <>, i.e., -associating qualified identifiers with definitions: +associating qualified identifiers _Q_ with definitions: -. If a qualified identifier is an identifier, then resolve it as -stated in the +. If _Q_ is an identifier _I_, then resolve _I_ as stated in the <>. -. Otherwise, the qualified identifier has the form _Q_ `.` _I_, where -_Q_ is a qualified identifier and _I_ is an identifier. Do the +. Otherwise _Q_ has the form _Q'_ `.` _I_, where +_Q'_ is a qualified identifier and _I_ is an identifier. Do the following: -.. Recursively resolve _Q_. +.. Recursively resolve _Q'_. -.. If _Q_ refers to a <> _D_ +.. If _Q'_ refers to a <> _D_ with a brace-delimited body, then do the following: -... Determine the <> _S_ of _Q_ `.` +... Determine the <> _S_ of _Q'_ +`.` _I_. ... Look in _D_ for a definition with identifier _I_ in name group _S_. @@ -293,6 +451,7 @@ _I_. [source,fpp] ---- +constant a = 0 module M { constant a = 0 enum E { diff --git a/docs/spec/Specifiers/Connection-Graph-Specifiers.adoc b/docs/spec/Specifiers/Connection-Graph-Specifiers.adoc index 964580d1f9..a95dddcb87 100644 --- a/docs/spec/Specifiers/Connection-Graph-Specifiers.adoc +++ b/docs/spec/Specifiers/Connection-Graph-Specifiers.adoc @@ -100,13 +100,17 @@ unmatched. <> appearing in _E_. -... The port interface instance _Q_ must exist in the enclosing -topology, +... The port interface instance _Q_ must exist in the enclosing topology, after <>. -If _Q_ is a component instance, then _E_ is a *component instance endpoint*. -Otherwise _Q_ is a topology, and _E_ is a *topology endpoint*. +If _Q_ refers to a <>, then _E_ is a *component instance endpoint*. +Otherwise if _Q_ refers to a <>, then _E_ is a *topology endpoint*. +Otherwise _Q_ refers to a <>, and _E_ is a *bound parameter +endpoint*. ... The optional expression _e_ following _I_, if it is present, represents a port number, i.e., an index into an diff --git a/docs/spec/Specifiers/Include-Specifiers.adoc b/docs/spec/Specifiers/Include-Specifiers.adoc index 9c617967dc..9fbfe46f79 100644 --- a/docs/spec/Specifiers/Include-Specifiers.adoc +++ b/docs/spec/Specifiers/Include-Specifiers.adoc @@ -14,7 +14,8 @@ The string literal specifies a file path relative to the <> of the include specifier. -During parsing, the translator does the following: +During <>, the translator does the +following: . Resolve the path to an absolute file name that refers to a file _F_. @@ -24,6 +25,10 @@ During parsing, the translator does the following: in the enclosing translation unit at the point where the include specifier appears. +All include specifiers are resolved this way, even ones that occur inside or +transitively inside a <>. + The suffix `.fppi` is conventional for included files, to distinguish them from files presented directly for analysis or translation. diff --git a/docs/spec/Specifiers/Location-Specifiers.adoc b/docs/spec/Specifiers/Location-Specifiers.adoc index 890461a3aa..2e70744c76 100644 --- a/docs/spec/Specifiers/Location-Specifiers.adoc +++ b/docs/spec/Specifiers/Location-Specifiers.adoc @@ -37,6 +37,10 @@ _]_ <> `at` <> +* A *template specifier* `locate` `template` +<> `at` +<> + * A *system location specifier* `locate` `system` <> `at` <> @@ -84,6 +88,9 @@ a <>. .. A system location specifier refers to a <>. +.. A template specifier refers to a + <>. + .. A type location specifier refers to a <>. diff --git a/docs/spec/Specifiers/Port-Interface-Instance-Specifiers.adoc b/docs/spec/Specifiers/Port-Interface-Instance-Specifiers.adoc index 8f3a452ff4..e5cd0fb210 100644 --- a/docs/spec/Specifiers/Port-Interface-Instance-Specifiers.adoc +++ b/docs/spec/Specifiers/Port-Interface-Instance-Specifiers.adoc @@ -2,11 +2,9 @@ A *port interface instance specifier* specifies that a -<> -_I_ or a -<> _T'_ +<> _I_ is part of a topology _T_. -_I_ or _T'_ provides a <> +_I_ provides a <> that can be used in connections in _T_. ==== Syntax @@ -24,8 +22,13 @@ of FPP. The qualified identifier must <> a -<>, -i.e., a component instance definition or a topology definition. +<>. + +Every port interface instance specifier *represents* a component instance +definition or topology definition _D_. +A port interface instance specifier _S_ represents _D_ +if the port interface instance _I_ to which _S_ refers +<>. If the qualified identifier refers to a topology definition _D_, then _D_ must not define a diff --git a/docs/spec/Specifiers/Template-Expansion-Specifiers.adoc b/docs/spec/Specifiers/Template-Expansion-Specifiers.adoc new file mode 100644 index 0000000000..fffa2ebf61 --- /dev/null +++ b/docs/spec/Specifiers/Template-Expansion-Specifiers.adoc @@ -0,0 +1,104 @@ +=== Template Expansion Specifiers + +A *template expansion specifier* names a +<> +and specifies arguments for the parameters of the template. +During <>, it generates the definitions specified +by the template and the arguments. + +==== Syntax + +`expand` +<> +_[_ +`(` _template-arg-list_ `)` +_]_ + +_template-arg-list_ is an +<> in +which the elements are template arguments, and +the terminating punctuation is a comma. + +Each template argument is one of the following: + +. A *constant template argument* `constant` <> + +. A *port interface instance template argument* +`instance` <> + +. A *type template argument* `type` <> + +==== Semantics + +. The qualified identifier must +<> +the definition of a +<>. + +. The number of template arguments must match the number of template +parameters in _T_. +If there are no parameters, then the argument list may be omitted. + +. For each template parameter _p_, let _A_ be the corresponding argument. + +.. If _p_ is a constant template parameter, then _A_ must be a constant +template argument. The type of the expression in _A_ must be +<> the type specified in _p_. + +.. If _p_ is an interface instance template parameter, then _A_ +must be an interface instance template argument. +The qualified identifier in _A_ must +<> +a <> _N_. +The port interface of referred to in _p_ must be a +<> of the <>. + +.. If _p_ is a type template parameter, then _A_ must be a type +template argument. + +.. Within the <> generated by the + template expansion specifier, the pair stem:[B = (p, A)] is + <> and is called a <>. + There are three kinds of bound parameter definitions: + +... When _p_ is a constant template parameter, _B_ is called a + *constant parameter definition*. + +... When _p_ is a port interface instance template parameter, _B_ + is called a *port interface instance parameter definition*. + +... When _p_ is a type template parameter, _B_ + is called a *type parameter definition*. + +=== Examples + +[source,fpp] +---- +port P + +@ A basic template parameterizing an interface port count +module template T(constant numPorts: U32) { + + interface I { + output port p: [numPorts] P + } + + passive component C { + import I + } + +} + +@ Instantiate the template giving the parameters concrete values +module M { + + expand T(constant 30) + # Bound parameter definition (constant numPorts: U32, 30) + # Global definition interface I { output port p: [numPorts] P } + # Global definition passive component C { output port p: [numPorts] P } + +} + +---- diff --git a/docs/spec/Specifiers/defs.sh b/docs/spec/Specifiers/defs.sh index 1d2eae5002..3469caca7c 100644 --- a/docs/spec/Specifiers/defs.sh +++ b/docs/spec/Specifiers/defs.sh @@ -26,5 +26,6 @@ State-Machine-Instance-Specifiers.adoc Telemetry-Channel-Specifiers.adoc Telemetry-Packet-Set-Specifiers.adoc Telemetry-Packet-Specifiers.adoc +Template-Expansion-Specifiers.adoc Topology-Port-Instance-Specifiers.adoc " diff --git a/docs/spec/Template-Parameter-Lists.adoc b/docs/spec/Template-Parameter-Lists.adoc new file mode 100644 index 0000000000..2f610e8566 --- /dev/null +++ b/docs/spec/Template-Parameter-Lists.adoc @@ -0,0 +1,44 @@ +== Template Parameter Lists + +A *template parameter list* is an +<> +in which the elements are template parameters, +and the terminating punctuation is a comma. + +A *template parameter* is a name to which a +<> +becomes bound when a <>. +Within the scope of an expanded template, a the bound parameter is a +<>. + +=== Syntax + +Each template parameter is one of the following: + +* A *constant template parameter* `constant` + <> `:` <> + +* A *port interface instance template parameter* `instance` + <> `:` +<> + +* A *type template parameter* `type` + <> + +=== Semantics + +The type name in a constant template parameter must be +a <>. + +The qualified identifier in a port interface instance template parameter +must <> +a <>. + +=== Examples + +[source,fpp] +---- +constant c: U32 +instance cmdDisp: Svc.CmdDispatcher +type T +---- diff --git a/docs/spec/Translation-Units-and-Models.adoc b/docs/spec/Translation-Units-and-Models.adoc index 9f52258f65..6776409766 100644 --- a/docs/spec/Translation-Units-and-Models.adoc +++ b/docs/spec/Translation-Units-and-Models.adoc @@ -75,7 +75,7 @@ module M2 { ---- According to the -<>, this is also equivalent: diff --git a/docs/spec/Type-Names.adoc b/docs/spec/Type-Names.adoc index 85d538b027..4792baf8a3 100644 --- a/docs/spec/Type-Names.adoc +++ b/docs/spec/Type-Names.adoc @@ -77,16 +77,26 @@ identifier>> that refers to an <>, <>, <>, -<>, or -<> +<>, +<>, +or +<> via the <>. -It names the -<> defined in the definition to which it refers. +A qualified identifier type name _Q_ names a type a follows: -For example: +. If _Q_ refers to a global definition _D_, +then _Q_ names the +<> defined in _D_. + +. Otherwise _Q_ refers to a bound parameter definition _B_. +In this case, _B_ must be a +<>, and _Q_ names the type defined in the global definition +<> _B_. +For example: [source,fpp] ---- diff --git a/docs/spec/defs.sh b/docs/spec/defs.sh index 8903a2aa7b..d64f54ad57 100644 --- a/docs/spec/defs.sh +++ b/docs/spec/defs.sh @@ -21,11 +21,13 @@ Instance-Member-Identifiers.adoc Type-Names.adoc Expressions/Expressions.adoc Formal-Parameter-Lists.adoc +Template-Parameter-Lists.adoc Format-Strings.adoc Comments-and-Annotations.adoc Translation-Units-and-Models.adoc Scoping-of-Names.adoc Definitions-and-Uses.adoc +Expansion-of-Templates.adoc Types.adoc Type-Checking.adoc Type-Options.adoc