authorgravatar for kappaloris@gmail.comLoris Cro <kappaloris@gmail.com> 2022-09-02 17:38:00+02:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2022-09-02 17:38:00+02:00
log70b96169ae244261c2853f4833b71a0a45a82a5a
tree9a989c25c8bd8b666bf8e9018cdab8bda472f3dc
parent0b11d8ec4d5414269f5bec3923613f5fc98abedf
parent3bbf08e98a27f8c152087d54d1c4d3dc7ea474a2
signaturebadge-question-mark Signed by PGP key 4AEE18F83AFDEB23

Merge pull request #12709 from der-teufel-programming/autodoc-compare-operators

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
...@@ -1293,6 +1293,50 @@ fn walkInstruction(...@@ -1293,6 +1293,50 @@ fn walkInstruction(
1293 .expr = .{ .binOpIndex = binop_index },1293 .expr = .{ .binOpIndex = binop_index },
1294 };1294 };
1295 },1295 },
1296 // compare operators
1297 .cmp_eq,
1298 .cmp_neq,
1299 .cmp_gt,
1300 .cmp_gte,
1301 .cmp_lt,
1302 .cmp_lte,
1303 => {
1304 const pl_node = data[inst_index].pl_node;
1305 const extra = file.zir.extraData(Zir.Inst.Bin, pl_node.payload_index);
1306
1307 const binop_index = self.exprs.items.len;
1308 try self.exprs.append(self.arena, .{ .binOp = .{ .lhs = 0, .rhs = 0 } });
1309
1310 var lhs: DocData.WalkResult = try self.walkRef(
1311 file,
1312 parent_scope,
1313 parent_line,
1314 extra.data.lhs,
1315 false,
1316 );
1317 var rhs: DocData.WalkResult = try self.walkRef(
1318 file,
1319 parent_scope,
1320 parent_line,
1321 extra.data.rhs,
1322 false,
1323 );
1324
1325 const lhs_index = self.exprs.items.len;
1326 try self.exprs.append(self.arena, lhs.expr);
1327 const rhs_index = self.exprs.items.len;
1328 try self.exprs.append(self.arena, rhs.expr);
1329 self.exprs.items[binop_index] = .{ .binOp = .{
1330 .name = @tagName(tags[inst_index]),
1331 .lhs = lhs_index,
1332 .rhs = rhs_index,
1333 } };
1334
1335 return DocData.WalkResult{
1336 .typeRef = .{ .type = @enumToInt(Ref.bool_type) },
1337 .expr = .{ .binOpIndex = binop_index },
1338 };
1339 },
12961340
1297 // builtin functions1341 // builtin functions
1298 .align_of,1342 .align_of,