authorgravatar for der.teufel.mail@gmail.comKrzysztof Wolicki <der.teufel.mail@gmail.com> 2022-09-01 15:17:14+02:00
committergravatar for der.teufel.mail@gmail.comKrzysztof Wolicki <der.teufel.mail@gmail.com> 2022-09-01 15:17:14+02:00
log3bbf08e98a27f8c152087d54d1c4d3dc7ea474a2
tree75f1aafddc4993464b0270a314c80a48624323aa
parent2b92c5a23e912df56885ff10d690ff7bfd1e3f47

autodoc: Compare operators


2 files changed, 68 insertions(+), 0 deletions(-)

lib/docs/main.js+24
...@@ -1405,6 +1405,30 @@ var zigAnalysis;...@@ -1405,6 +1405,30 @@ var zigAnalysis;
1405 operator += "**";1405 operator += "**";
1406 break;1406 break;
1407 }1407 }
1408 case "cmp_eq": {
1409 operator += "==";
1410 break;
1411 }
1412 case "cmp_neq": {
1413 operator += "!=";
1414 break;
1415 }
1416 case "cmp_gt": {
1417 operator += ">";
1418 break;
1419 }
1420 case "cmp_gte": {
1421 operator += ">=";
1422 break;
1423 }
1424 case "cmp_lt": {
1425 operator += "<";
1426 break;
1427 }
1428 case "cmp_lte": {
1429 operator += "<=";
1430 break;
1431 }
1408 default:1432 default:
1409 console.log("operator not handled yet or doesn't exist!");1433 console.log("operator not handled yet or doesn't exist!");
1410 }1434 }
src/Autodoc.zig+44
...@@ -1278,6 +1278,50 @@ fn walkInstruction(...@@ -1278,6 +1278,50 @@ fn walkInstruction(
1278 .expr = .{ .binOpIndex = binop_index },1278 .expr = .{ .binOpIndex = binop_index },
1279 };1279 };
1280 },1280 },
1281 // compare operators
1282 .cmp_eq,
1283 .cmp_neq,
1284 .cmp_gt,
1285 .cmp_gte,
1286 .cmp_lt,
1287 .cmp_lte,
1288 => {
1289 const pl_node = data[inst_index].pl_node;
1290 const extra = file.zir.extraData(Zir.Inst.Bin, pl_node.payload_index);
1291
1292 const binop_index = self.exprs.items.len;
1293 try self.exprs.append(self.arena, .{ .binOp = .{ .lhs = 0, .rhs = 0 } });
1294
1295 var lhs: DocData.WalkResult = try self.walkRef(
1296 file,
1297 parent_scope,
1298 parent_line,
1299 extra.data.lhs,
1300 false,
1301 );
1302 var rhs: DocData.WalkResult = try self.walkRef(
1303 file,
1304 parent_scope,
1305 parent_line,
1306 extra.data.rhs,
1307 false,
1308 );
1309
1310 const lhs_index = self.exprs.items.len;
1311 try self.exprs.append(self.arena, lhs.expr);
1312 const rhs_index = self.exprs.items.len;
1313 try self.exprs.append(self.arena, rhs.expr);
1314 self.exprs.items[binop_index] = .{ .binOp = .{
1315 .name = @tagName(tags[inst_index]),
1316 .lhs = lhs_index,
1317 .rhs = rhs_index,
1318 } };
1319
1320 return DocData.WalkResult{
1321 .typeRef = .{ .type = @enumToInt(Ref.bool_type) },
1322 .expr = .{ .binOpIndex = binop_index },
1323 };
1324 },
12811325
1282 // builtin functions1326 // builtin functions
1283 .align_of,1327 .align_of,