본문으로 이동

칸 격자

grid는 비트 필드, 배열, 스택, 행렬을 칸 단위로 그립니다. 그래프 보기 안에서 카드 하나로 놓이고, 선은 칸 하나에서 나가고 들어옵니다.

최소 예제

칸은 item으로 적고, 위치는 0부터 세는 row, col, 크기는 rows, cols입니다. 칸 이름은 격자 밖에서 격자.칸으로 부릅니다.

문법

줄 종류와 선택 사항은 그림 문법의 문법 표가 정본이고, 칸 격자의 줄과 크기와 배치는 칸 격자에 있습니다.

장면과 움직임

light 격자.칸은 칸 하나를 밝히고 light 격자는 틀을 밝힙니다. 칸에서 칸으로, 칸에서 카드로 점이 가는 이동은 격자.칸 -> 카드처럼 적습니다. 생략한 칸은 gap 이름 "글" count=N으로 적고, 선이나 이동의 끝이나 밝힘 대상이 될 수 없습니다. 주소 변환은 memory 예제, 호출 스택은 stack 예제, 노드와 포인터는 pointer 예제가 보입니다.

격자 칸의 글과 구조 연결은 장면 중 교체하지 않는다. 포인터 예제의 A에 적힌 두 next 칸은 같은 필드의 삽입 전후를 비교한 것이며, 실제 노드에 next 필드가 둘 있다는 뜻이 아니다. 이전 연결은 전: next 0x28에서 B로, 이후 연결은 후: next 0x58에서 새 노드로 이어진다. 삽입 장면은 새 노드의 next를 B에 연결한 뒤 A의 next를 새 노드에 연결하는 순서를 보여 준다. quiet 선은 처음 통과한 뒤 드러나며 기존 선을 지우지 않으므로, 전후 주소와 선을 함께 표시할 때는 각 시점을 구분한다.

흔한 오류

원인 메시지 code 고치는 방법
격자 폭을 넘는 칸 item "b" ends at column 6 but grid "g" has cols=2. Raise cols= on the grid or move the item syntax cols를 늘리거나 칸을 옮깁니다
겹치는 칸 item "b" overlaps item "a" (line 3). Move one of them or change row, col, rows, cols syntax 위치나 크기를 바꿉니다
선언하지 않은 칸을 선 끝으로 씀 가까운 이름을 제안하는 syntax 메시지 syntax 격자.칸 이름을 고칩니다

code는 thinkflow check figure.thinkflow --json으로 봅니다.