forked from HEL/rivet-typst
		
	added support for loading dictionary structure
This commit is contained in:
		
							
								
								
									
										102
									
								
								gallery/test.typ
									
									
									
									
									
								
							
							
						
						
									
										102
									
								
								gallery/test.typ
									
									
									
									
									
								
							| @@ -25,4 +25,106 @@ structures: | ||||
| ```) | ||||
| #schema.render(test-raw, config: config.config( | ||||
|   full-page: true | ||||
| )) | ||||
|  | ||||
| #let test-typ = schema.load(( | ||||
|   structures: ( | ||||
|     main: ( | ||||
|       bits: 32, | ||||
|       ranges: ( | ||||
|         "31-28": (name: "cond"), | ||||
|         "27": (name: "0"), | ||||
|         "26": (name: "1"), | ||||
|         "25": (name: "I"), | ||||
|         "24": ( | ||||
|           name: "P", | ||||
|           description: "pre / post indexing bit", | ||||
|           values: ( | ||||
|             "0": "post, add offset after transfer", | ||||
|             "1": "pre, add offset before transfer" | ||||
|           ) | ||||
|         ), | ||||
|         "23": ( | ||||
|           name: "U", | ||||
|           description: "up / down bit", | ||||
|           values: ( | ||||
|             "0": "down, subtract offset from base", | ||||
|             "1": "up, addition offset to base" | ||||
|           ) | ||||
|         ), | ||||
|         "22": ( | ||||
|           name: "B", | ||||
|           description: "byte / word bit", | ||||
|           values: ( | ||||
|             "0": "transfer word quantity", | ||||
|             "1": "transfer byte quantity" | ||||
|           ) | ||||
|         ), | ||||
|         "21": ( | ||||
|           name: "W", | ||||
|           description: "write-back bit", | ||||
|           values: ( | ||||
|             "0": "no write-back", | ||||
|             "1": "write address into base" | ||||
|           ) | ||||
|         ), | ||||
|         "20": ( | ||||
|           name: "L", | ||||
|           description: "load / store bit", | ||||
|           values: ( | ||||
|             "0": "store to memory", | ||||
|             "1": "load from memory" | ||||
|           ) | ||||
|         ), | ||||
|         "19-16": ( | ||||
|           name: "Rn", | ||||
|           description: "base register" | ||||
|         ), | ||||
|         "15-12": ( | ||||
|           name: "Rd", | ||||
|           description: "source / destination register" | ||||
|         ), | ||||
|         "11-0": ( | ||||
|           name: "offset", | ||||
|           depends-on: "25", | ||||
|           values: ( | ||||
|             "0": ( | ||||
|               description: "offset is an immediate value", | ||||
|               structure: "immediateOffset" | ||||
|             ), | ||||
|             "1": ( | ||||
|               description: "offset is a register", | ||||
|               structure: "registerOffset" | ||||
|             ) | ||||
|           ) | ||||
|         ) | ||||
|       ) | ||||
|     ), | ||||
|     immediateOffset: ( | ||||
|       bits: 12, | ||||
|       ranges: ( | ||||
|         "11-0": ( | ||||
|           name: "12-bit immediate offset", | ||||
|           description: "unsigned number" | ||||
|         ) | ||||
|       ) | ||||
|     ), | ||||
|     registerOffset: ( | ||||
|       bits: 12, | ||||
|       ranges: ( | ||||
|         "11-4": ( | ||||
|           name: "shift", | ||||
|           description: "shift applied to Rm" | ||||
|         ), | ||||
|         "3-0": ( | ||||
|           name: "Rm", | ||||
|           description: "offset register" | ||||
|         ) | ||||
|       ) | ||||
|     ) | ||||
|   ) | ||||
| )) | ||||
|  | ||||
| #schema.render(test-typ, config: config.config( | ||||
|   full-page: true | ||||
| )) | ||||
		Reference in New Issue
	
	Block a user