spacepaste

  1.  
  2. struct TrieNode * root = getNode();
  3. struct TrieNode * sub_root = getNode();
  4. // 1
  5. insert(sub_root, "1", 0, rule_0);
  6. // 2, restore point
  7. insert(rule_0, "2", 1, rule_1);
  8. // 35
  9. insert(rule_1, "3", 2, rule_2);
  10. insert(rule_2, "5", 3, rule_3); // link to next statement, which happens to be a definition
  11. // 2, restore point
  12. insert(rule_0, "2", 1, rule_4);
  13. // 85
  14. insert(rule_4, "8", 2, rule_5);
  15. insert(rule_5, "5", 3, rule_3); // link to next statement, which happens to be a definition
  16. // 91, restore point
  17. insert(rule_3, "9", 2, rule_4);
  18. insert(rule_4, "1", 3, rule_5); // link to end
  19. // 91, restore point
  20. insert(rule_3, "9", 2, rule_6);
  21. // 92
  22. insert(rule_6, "9", 2, rule_7);
  23. insert(rule_7, "2", 3, rule_5); // link to end
  24. // 6, end of rule
  25. insert(rule_5, "6", 2, NULL);
  26.