This project is a command-line parser build using nested linked lists that uses the theme of Shapes to demonstrate functionality.
To compile, run g++ -std=c++17 GroupNode.cpp GroupList.cpp Shape.cpp ShapeNode.cpp ShapeList.cpp Parser.cpp -o Parser then run the executable to initiate the CLI.
The master linked list is GroupList and its GroupNodes (representing a group) each point to slave ShapeLists linked lists that store the Shapes in the said group.
This CLI takes in various commands and subsequent argument:
shape name type xloc yloc xsize ysize
Creates a new shape name of type type of size xsizexysize at location (xloc, yloc).
group name
Creates a new group name. Effectively, this creates a new node in the primary linked list, pointing to its own Shape linked list).
draw
Lists all shapes in all groups.
move name1 name2
Transfers shape name1 to group name2.
delete name
Deletes the shape or group name.