Skip to content

fix formatting of sequential negative conjunctions #55

@garfieldnate

Description

@garfieldnate

Users report: for productions that contain sequential negative conjunctions (-{...}) on separate lines, the following negated conjunctions are indented to deeply. I need to write out a Soar production that does this to test it properly.

Indentation is slightly too shallow for this one:

sp {foo
   (state <s> ^name hello
              ^foo -{foo bar baz}
                  -{qux hoge huga})
-->
}

Here's an example where it's too deep:

sp {blocks*negated-conjunction-example
   (state <s> ^name top-state)
  -{(<s> ^ontop <on>)
    (<on> ^bottom-object <bo>)
    (<bo> ^type table)}
               -{(<s> ^ontop <on>)
                 (<on> ^bottom-object <bo>)
                 (<bo> ^type table)}
   -->
   (<s> ^nothing-ontop-table true)}

And one more from THOR-Soar:

sp {thor-soar*propose*explore-test-action-success-undo*put-down
   (state <s> ^world <world>
              ^explore-structure.current-category.tested-action <tested-action>)
   (<world> ^objects.object <container-object>
            ^holding-object <holding-object>)
  -{(<container-object> ^surface true
                       -^category shelf
                        ^reachable true)}
                                  -{(<tested-action> ^action <action>
                                                     ^object <holding-object>
                                                     ^success true
                                                     ^undo-action-handle put-down
                                                     ^need-undo-action true)}
-->
   (<s> ^operator <op> + =, >)
   (<op> ^name explore-test-action-success-undo
         ^action <action>
         ^task-operator true
         ^action-handle put-down
         ^pre-conditions-satisfied true
         ^argument1 <container-object>
         ^argument2 <holding-object>
         ^argument-count 2)
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions