Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement the opcode #10

Closed
Tracked by #2
Ebuube opened this issue Jun 26, 2023 · 0 comments
Closed
Tracked by #2

Implement the opcode #10

Ebuube opened this issue Jun 26, 2023 · 0 comments
Assignees
Labels
documentation Improvements or additions to documentation enhancement New feature or request

Comments

@Ebuube
Copy link
Owner

Ebuube commented Jun 26, 2023

No description provided.

@Ebuube Ebuube mentioned this issue Jun 26, 2023
8 tasks
Ebuube added a commit that referenced this issue Jun 26, 2023
Modification:
- monty.h : take note of the new function for swapping nodes

- utility/
	*get_opcode_func.c - Included the new opcode in the instruction
		set
- opcodes/
	* _push.c : Corrected the function so that it properly assigns the
		`prev` data of a node

New file:
- opcodes/
	* _swap.c : Implements the `swap` opcode
@Ebuube Ebuube self-assigned this Jun 26, 2023
@Ebuube Ebuube added documentation Improvements or additions to documentation enhancement New feature or request labels Jun 26, 2023
@Ebuube Ebuube added this to the Basic Functionality of monty milestone Jun 26, 2023
@Ebuube Ebuube closed this as completed Jun 26, 2023
Ebuube added a commit that referenced this issue Jun 26, 2023
* Planned procedure for the monty program

This is the algorithm for the monty program.
It explains the maxim of the steps that the monty program uses for
execution.

* Created Makefile

The Makefile facilitates maintainance of the codebasee
* clean: To clean or unwanted files
* all: To build the executable `monty`
* betty_check: To check if codebase is `betty` compliant
* spell_check: To check if codebase is English is grammatically correct
* check: Run both `betty_check` and `spell_check`

* Implemented basic codebase functionality

* Code compiles safely without memory leaks
* Opens file passed to it
* Reads file line by line
* Parses each line to get the first two words i.e opcode and argument
* Prints the output to screen - To be turned into execute operation
* Closes file on exit
* Ends successfully without memory leaks

* Updated monty.h to accomodate the new function 'execute'

* Updated 'read_file.c' so that it calls the 'execute' function when appropriate

* Updated Makefile so that it incoporates 'valgrind' for mememory check

* Updated Makefile with documentation on how to use it

* Created a new file 'execute.c' to house the execute() funtion

* [#2] Prepared basic code functionalities

I successfully:
* Created a well-documented Makefile for the project
* Created the basic functions that handle file reading
	and parsing to select the opcodes and the arguements

Note: I have not implemented the stack data structure, yet

* [#2] Refactored codebase and added two opcodes

- Gitignore : ignores both *.bak and valgrind-out.txt log file
- Makefile: Takes note of the new file structure espcially, opcodes and
	utility directories
- README.md : Warns users not to exceed INT_MIN - INT_MAX range as
	opcode arguments to opcoes like push, pall, etc.
- main.c : Takes not of the new codebase structure
- monty.h : Added extra data types, header files and prototypes
- WORKFLOW.md : Corrected patter of pulling from remote branch

Removed unwanted files they are now replaced by new ones in a different
	directory -> utility:
- execute.c
- parse_line.c
- read_file.c

Added new files:
- opcodes directory:
	* _pall.c : implements a function to print all elements of stack
	* _push.c : implements a function to add element to top of stack

- utility directory:
	* execute.c : executes instructions
	* free_stack.c : frees stack as clean up action
	* get_int.c : safely fetches arguments to opcodes if any
	* get_opcode_func.c : fetches the opcode from a line in a bytecode
		file

* [#2] Modified codebase and added 'pint' opcode

Modification:
- Makefile : that betty_check target now uses automatic variables
- monty.h : now accomodates the new opcode 'pint'
- utility/get_opcode_func.c : now accomodates the new opcode 'pint'

New files:
- opcodes/_pint.c : implements the 'pint' opcode

* [#2] Modified codebase and added 'pop' opcode

    Modification:
    - Makefile : that betty_check target now uses automatic variables
    - monty.h : now accomodates the new opcode 'pop'
    - utility/get_opcode_func.c : now accomodates the new opcode 'pop'

    New files:
    - opcodes/_pop.c : implements the 'pop' opcode

* [#10] Implemented the `swap` opcode

Modification:
- monty.h : take note of the new function for swapping nodes

- utility/
	*get_opcode_func.c - Included the new opcode in the instruction
		set
- opcodes/
	* _push.c : Corrected the function so that it properly assigns the
		`prev` data of a node

New file:
- opcodes/
	* _swap.c : Implements the `swap` opcode

* [#11] Implement the `add` opcode

Modifications:
- monty.h : include prototype of new function for 'add' opcode

- utility/
	* get_opcode_func.c : included 'add' opcode in instrcutions

New files:
- opcodes/
	* _add.c : implement the 'add' opcode

* [#12] Implement the `nop` opcode

This opcode doesn't do anyting

Modification:
- monty.h : included prototype of the new function that handles this
		opcode
- utility/
	* get_opcode_func.c : Added new opcode to instructions

New files:
- opcodes/
	* _nop.c : implements the `nop` opcode
Ebuube added a commit that referenced this issue Jun 27, 2023
* [#1] Initial Documentation

Created an AUTHORS.md file
Added the name of current contributors.

* [#1] Initial Documentation

Described the system of workflow for this repository

* [#1] Initial Documentation

Included a `.gitignore.` file in the repository and ignored `*.bak`
files.

* Revert "Initial commit"

This reverts commit 8277676.

* [#1] Initial Documentation

Described the system of workflow for this repository
Used proper styling to make the necessary instructions more visible

* [#1] Initial Documentation

Described the system of workflow for this repository
Used proper styling to make the necessary instructions more visible
Corrected punctuation marks

* [#3] Integrating pull request reviews

I resolved the problems by:
	* Replacing the name `julien` with `vagrant` in the README.md
file
	* Removing the bold style in the `<summary> ... </summary> tag
contents. I now have something that is has this format
		```<summary>Header : description</summary>``

* Revert "Integrating pull request reviews"

* Created README.md file (#6)

Resolves [#5]
Closes [#1]
This commit is an attempt to push back the README.md to the remote

* Basic codebase functionality (#8)

* Planned procedure for the monty program

This is the algorithm for the monty program.
It explains the maxim of the steps that the monty program uses for
execution.

* Created Makefile

The Makefile facilitates maintainance of the codebasee
* clean: To clean or unwanted files
* all: To build the executable `monty`
* betty_check: To check if codebase is `betty` compliant
* spell_check: To check if codebase is English is grammatically correct
* check: Run both `betty_check` and `spell_check`

* Implemented basic codebase functionality

* Code compiles safely without memory leaks
* Opens file passed to it
* Reads file line by line
* Parses each line to get the first two words i.e opcode and argument
* Prints the output to screen - To be turned into execute operation
* Closes file on exit
* Ends successfully without memory leaks

* Updated monty.h to accomodate the new function 'execute'

* Updated 'read_file.c' so that it calls the 'execute' function when appropriate

* Updated Makefile so that it incoporates 'valgrind' for mememory check

* Updated Makefile with documentation on how to use it

* Created a new file 'execute.c' to house the execute() funtion

* [#2] Prepared basic code functionalities

I successfully:
* Created a well-documented Makefile for the project
* Created the basic functions that handle file reading
	and parsing to select the opcodes and the arguements

Note: I have not implemented the stack data structure, yet

* First working model of monty (#9)

* Planned procedure for the monty program

This is the algorithm for the monty program.
It explains the maxim of the steps that the monty program uses for
execution.

* Created Makefile

The Makefile facilitates maintainance of the codebasee
* clean: To clean or unwanted files
* all: To build the executable `monty`
* betty_check: To check if codebase is `betty` compliant
* spell_check: To check if codebase is English is grammatically correct
* check: Run both `betty_check` and `spell_check`

* Implemented basic codebase functionality

* Code compiles safely without memory leaks
* Opens file passed to it
* Reads file line by line
* Parses each line to get the first two words i.e opcode and argument
* Prints the output to screen - To be turned into execute operation
* Closes file on exit
* Ends successfully without memory leaks

* Updated monty.h to accomodate the new function 'execute'

* Updated 'read_file.c' so that it calls the 'execute' function when appropriate

* Updated Makefile so that it incoporates 'valgrind' for mememory check

* Updated Makefile with documentation on how to use it

* Created a new file 'execute.c' to house the execute() funtion

* [#2] Prepared basic code functionalities

I successfully:
* Created a well-documented Makefile for the project
* Created the basic functions that handle file reading
	and parsing to select the opcodes and the arguements

Note: I have not implemented the stack data structure, yet

* [#2] Refactored codebase and added two opcodes

- Gitignore : ignores both *.bak and valgrind-out.txt log file
- Makefile: Takes note of the new file structure espcially, opcodes and
	utility directories
- README.md : Warns users not to exceed INT_MIN - INT_MAX range as
	opcode arguments to opcoes like push, pall, etc.
- main.c : Takes not of the new codebase structure
- monty.h : Added extra data types, header files and prototypes
- WORKFLOW.md : Corrected patter of pulling from remote branch

Removed unwanted files they are now replaced by new ones in a different
	directory -> utility:
- execute.c
- parse_line.c
- read_file.c

Added new files:
- opcodes directory:
	* _pall.c : implements a function to print all elements of stack
	* _push.c : implements a function to add element to top of stack

- utility directory:
	* execute.c : executes instructions
	* free_stack.c : frees stack as clean up action
	* get_int.c : safely fetches arguments to opcodes if any
	* get_opcode_func.c : fetches the opcode from a line in a bytecode
		file

* [#2] Modified codebase and added 'pint' opcode

Modification:
- Makefile : that betty_check target now uses automatic variables
- monty.h : now accomodates the new opcode 'pint'
- utility/get_opcode_func.c : now accomodates the new opcode 'pint'

New files:
- opcodes/_pint.c : implements the 'pint' opcode

* [#2] Modified codebase and added 'pop' opcode

    Modification:
    - Makefile : that betty_check target now uses automatic variables
    - monty.h : now accomodates the new opcode 'pop'
    - utility/get_opcode_func.c : now accomodates the new opcode 'pop'

    New files:
    - opcodes/_pop.c : implements the 'pop' opcode

* Successfully implemented Basic opcodes (#13)

* Planned procedure for the monty program

This is the algorithm for the monty program.
It explains the maxim of the steps that the monty program uses for
execution.

* Created Makefile

The Makefile facilitates maintainance of the codebasee
* clean: To clean or unwanted files
* all: To build the executable `monty`
* betty_check: To check if codebase is `betty` compliant
* spell_check: To check if codebase is English is grammatically correct
* check: Run both `betty_check` and `spell_check`

* Implemented basic codebase functionality

* Code compiles safely without memory leaks
* Opens file passed to it
* Reads file line by line
* Parses each line to get the first two words i.e opcode and argument
* Prints the output to screen - To be turned into execute operation
* Closes file on exit
* Ends successfully without memory leaks

* Updated monty.h to accomodate the new function 'execute'

* Updated 'read_file.c' so that it calls the 'execute' function when appropriate

* Updated Makefile so that it incoporates 'valgrind' for mememory check

* Updated Makefile with documentation on how to use it

* Created a new file 'execute.c' to house the execute() funtion

* [#2] Prepared basic code functionalities

I successfully:
* Created a well-documented Makefile for the project
* Created the basic functions that handle file reading
	and parsing to select the opcodes and the arguements

Note: I have not implemented the stack data structure, yet

* [#2] Refactored codebase and added two opcodes

- Gitignore : ignores both *.bak and valgrind-out.txt log file
- Makefile: Takes note of the new file structure espcially, opcodes and
	utility directories
- README.md : Warns users not to exceed INT_MIN - INT_MAX range as
	opcode arguments to opcoes like push, pall, etc.
- main.c : Takes not of the new codebase structure
- monty.h : Added extra data types, header files and prototypes
- WORKFLOW.md : Corrected patter of pulling from remote branch

Removed unwanted files they are now replaced by new ones in a different
	directory -> utility:
- execute.c
- parse_line.c
- read_file.c

Added new files:
- opcodes directory:
	* _pall.c : implements a function to print all elements of stack
	* _push.c : implements a function to add element to top of stack

- utility directory:
	* execute.c : executes instructions
	* free_stack.c : frees stack as clean up action
	* get_int.c : safely fetches arguments to opcodes if any
	* get_opcode_func.c : fetches the opcode from a line in a bytecode
		file

* [#2] Modified codebase and added 'pint' opcode

Modification:
- Makefile : that betty_check target now uses automatic variables
- monty.h : now accomodates the new opcode 'pint'
- utility/get_opcode_func.c : now accomodates the new opcode 'pint'

New files:
- opcodes/_pint.c : implements the 'pint' opcode

* [#2] Modified codebase and added 'pop' opcode

    Modification:
    - Makefile : that betty_check target now uses automatic variables
    - monty.h : now accomodates the new opcode 'pop'
    - utility/get_opcode_func.c : now accomodates the new opcode 'pop'

    New files:
    - opcodes/_pop.c : implements the 'pop' opcode

* [#10] Implemented the `swap` opcode

Modification:
- monty.h : take note of the new function for swapping nodes

- utility/
	*get_opcode_func.c - Included the new opcode in the instruction
		set
- opcodes/
	* _push.c : Corrected the function so that it properly assigns the
		`prev` data of a node

New file:
- opcodes/
	* _swap.c : Implements the `swap` opcode

* [#11] Implement the `add` opcode

Modifications:
- monty.h : include prototype of new function for 'add' opcode

- utility/
	* get_opcode_func.c : included 'add' opcode in instrcutions

New files:
- opcodes/
	* _add.c : implement the 'add' opcode

* [#12] Implement the `nop` opcode

This opcode doesn't do anyting

Modification:
- monty.h : included prototype of the new function that handles this
		opcode
- utility/
	* get_opcode_func.c : Added new opcode to instructions

New files:
- opcodes/
	* _nop.c : implements the `nop` opcode

* Create the first release (#17)

* [#15] Put the markdown files in Documentation/

All the Markdown files except `README.md` file is moved to the directory
named `Documentation`.
These files include :
- AUTHORS.md
- PROCEDURE.md
- WORKFLOW.md

* [#7] Bug in README.md documentation

Modifications:
- Removed grammatical error
- Added two Markdown badges to README.md
	* Maintainer
	* Git

* [#14] Adding badges to READM.md

Removed the `Maintainer` badge and added a generic badge.

* [#14] Modified the Maintainer badge

Using a different `shields.io` bade to do the same task of creating
the `Maintainer` badge.

* [#14] Corrected badge URL

Modified the badge so that it displays an `svg` image.

* [#14] Added new badge

New badges:
- `made-with-C`
- `realase - version`

* [#14] Added new badges

Modification:
- `release` badge

New:
- `contributors` badge

* [#14] Badge modifcation

Modifications:
- Moved the `Git` badge to the acknowledgement section of README.md

New:
- `GITHUB` badge at the acknowledgement section

* [#14] README.md modification

Changed the header of the README.md

* [#14] More acknowledgements

Modification:
- Github badge
New badges:
- ALX badge

* [#14] Modification of Badges in README.md

Modification:
- ALX badge
Ebuube added a commit that referenced this issue Jun 27, 2023
commit 3be87dd
Author: Ebube Gideon Onwuta <111176684+Ebuube@users.noreply.github.com>
Date:   Tue Jun 27 07:49:38 2023 +0100

    Hotfix 19 add license (#21)

    * Added  LICENSE to proposed release

    This license expresses the condition for using this software product.

    License type: MIT

    * Update LICENSE

    Corrected the order of the names for the License bearer.

commit 74115f0
Author: Ebube Gideon Onwuta <111176684+Ebuube@users.noreply.github.com>
Date:   Tue Jun 27 06:39:01 2023 +0100

    [#19] Prerelease hotfix (#20)

    Modification:
    - README.md : Linked the `Git` acknowledgement badge to the `git` website ->
    https://git-scm.com/

    - opcodes/
    	* Modified the `nop` opcode function so that it takes not of the unused
    		parameters

commit 8718776
Author: Ebube Gideon Onwuta <111176684+Ebuube@users.noreply.github.com>
Date:   Tue Jun 27 06:19:38 2023 +0100

    First Major release of monty (#18)

    * [#1] Initial Documentation

    Created an AUTHORS.md file
    Added the name of current contributors.

    * [#1] Initial Documentation

    Described the system of workflow for this repository

    * [#1] Initial Documentation

    Included a `.gitignore.` file in the repository and ignored `*.bak`
    files.

    * Revert "Initial commit"

    This reverts commit 8277676.

    * [#1] Initial Documentation

    Described the system of workflow for this repository
    Used proper styling to make the necessary instructions more visible

    * [#1] Initial Documentation

    Described the system of workflow for this repository
    Used proper styling to make the necessary instructions more visible
    Corrected punctuation marks

    * [#3] Integrating pull request reviews

    I resolved the problems by:
    	* Replacing the name `julien` with `vagrant` in the README.md
    file
    	* Removing the bold style in the `<summary> ... </summary> tag
    contents. I now have something that is has this format
    		```<summary>Header : description</summary>``

    * Revert "Integrating pull request reviews"

    * Created README.md file (#6)

    Resolves [#5]
    Closes [#1]
    This commit is an attempt to push back the README.md to the remote

    * Basic codebase functionality (#8)

    * Planned procedure for the monty program

    This is the algorithm for the monty program.
    It explains the maxim of the steps that the monty program uses for
    execution.

    * Created Makefile

    The Makefile facilitates maintainance of the codebasee
    * clean: To clean or unwanted files
    * all: To build the executable `monty`
    * betty_check: To check if codebase is `betty` compliant
    * spell_check: To check if codebase is English is grammatically correct
    * check: Run both `betty_check` and `spell_check`

    * Implemented basic codebase functionality

    * Code compiles safely without memory leaks
    * Opens file passed to it
    * Reads file line by line
    * Parses each line to get the first two words i.e opcode and argument
    * Prints the output to screen - To be turned into execute operation
    * Closes file on exit
    * Ends successfully without memory leaks

    * Updated monty.h to accomodate the new function 'execute'

    * Updated 'read_file.c' so that it calls the 'execute' function when appropriate

    * Updated Makefile so that it incoporates 'valgrind' for mememory check

    * Updated Makefile with documentation on how to use it

    * Created a new file 'execute.c' to house the execute() funtion

    * [#2] Prepared basic code functionalities

    I successfully:
    * Created a well-documented Makefile for the project
    * Created the basic functions that handle file reading
    	and parsing to select the opcodes and the arguements

    Note: I have not implemented the stack data structure, yet

    * First working model of monty (#9)

    * Planned procedure for the monty program

    This is the algorithm for the monty program.
    It explains the maxim of the steps that the monty program uses for
    execution.

    * Created Makefile

    The Makefile facilitates maintainance of the codebasee
    * clean: To clean or unwanted files
    * all: To build the executable `monty`
    * betty_check: To check if codebase is `betty` compliant
    * spell_check: To check if codebase is English is grammatically correct
    * check: Run both `betty_check` and `spell_check`

    * Implemented basic codebase functionality

    * Code compiles safely without memory leaks
    * Opens file passed to it
    * Reads file line by line
    * Parses each line to get the first two words i.e opcode and argument
    * Prints the output to screen - To be turned into execute operation
    * Closes file on exit
    * Ends successfully without memory leaks

    * Updated monty.h to accomodate the new function 'execute'

    * Updated 'read_file.c' so that it calls the 'execute' function when appropriate

    * Updated Makefile so that it incoporates 'valgrind' for mememory check

    * Updated Makefile with documentation on how to use it

    * Created a new file 'execute.c' to house the execute() funtion

    * [#2] Prepared basic code functionalities

    I successfully:
    * Created a well-documented Makefile for the project
    * Created the basic functions that handle file reading
    	and parsing to select the opcodes and the arguements

    Note: I have not implemented the stack data structure, yet

    * [#2] Refactored codebase and added two opcodes

    - Gitignore : ignores both *.bak and valgrind-out.txt log file
    - Makefile: Takes note of the new file structure espcially, opcodes and
    	utility directories
    - README.md : Warns users not to exceed INT_MIN - INT_MAX range as
    	opcode arguments to opcoes like push, pall, etc.
    - main.c : Takes not of the new codebase structure
    - monty.h : Added extra data types, header files and prototypes
    - WORKFLOW.md : Corrected patter of pulling from remote branch

    Removed unwanted files they are now replaced by new ones in a different
    	directory -> utility:
    - execute.c
    - parse_line.c
    - read_file.c

    Added new files:
    - opcodes directory:
    	* _pall.c : implements a function to print all elements of stack
    	* _push.c : implements a function to add element to top of stack

    - utility directory:
    	* execute.c : executes instructions
    	* free_stack.c : frees stack as clean up action
    	* get_int.c : safely fetches arguments to opcodes if any
    	* get_opcode_func.c : fetches the opcode from a line in a bytecode
    		file

    * [#2] Modified codebase and added 'pint' opcode

    Modification:
    - Makefile : that betty_check target now uses automatic variables
    - monty.h : now accomodates the new opcode 'pint'
    - utility/get_opcode_func.c : now accomodates the new opcode 'pint'

    New files:
    - opcodes/_pint.c : implements the 'pint' opcode

    * [#2] Modified codebase and added 'pop' opcode

        Modification:
        - Makefile : that betty_check target now uses automatic variables
        - monty.h : now accomodates the new opcode 'pop'
        - utility/get_opcode_func.c : now accomodates the new opcode 'pop'

        New files:
        - opcodes/_pop.c : implements the 'pop' opcode

    * Successfully implemented Basic opcodes (#13)

    * Planned procedure for the monty program

    This is the algorithm for the monty program.
    It explains the maxim of the steps that the monty program uses for
    execution.

    * Created Makefile

    The Makefile facilitates maintainance of the codebasee
    * clean: To clean or unwanted files
    * all: To build the executable `monty`
    * betty_check: To check if codebase is `betty` compliant
    * spell_check: To check if codebase is English is grammatically correct
    * check: Run both `betty_check` and `spell_check`

    * Implemented basic codebase functionality

    * Code compiles safely without memory leaks
    * Opens file passed to it
    * Reads file line by line
    * Parses each line to get the first two words i.e opcode and argument
    * Prints the output to screen - To be turned into execute operation
    * Closes file on exit
    * Ends successfully without memory leaks

    * Updated monty.h to accomodate the new function 'execute'

    * Updated 'read_file.c' so that it calls the 'execute' function when appropriate

    * Updated Makefile so that it incoporates 'valgrind' for mememory check

    * Updated Makefile with documentation on how to use it

    * Created a new file 'execute.c' to house the execute() funtion

    * [#2] Prepared basic code functionalities

    I successfully:
    * Created a well-documented Makefile for the project
    * Created the basic functions that handle file reading
    	and parsing to select the opcodes and the arguements

    Note: I have not implemented the stack data structure, yet

    * [#2] Refactored codebase and added two opcodes

    - Gitignore : ignores both *.bak and valgrind-out.txt log file
    - Makefile: Takes note of the new file structure espcially, opcodes and
    	utility directories
    - README.md : Warns users not to exceed INT_MIN - INT_MAX range as
    	opcode arguments to opcoes like push, pall, etc.
    - main.c : Takes not of the new codebase structure
    - monty.h : Added extra data types, header files and prototypes
    - WORKFLOW.md : Corrected patter of pulling from remote branch

    Removed unwanted files they are now replaced by new ones in a different
    	directory -> utility:
    - execute.c
    - parse_line.c
    - read_file.c

    Added new files:
    - opcodes directory:
    	* _pall.c : implements a function to print all elements of stack
    	* _push.c : implements a function to add element to top of stack

    - utility directory:
    	* execute.c : executes instructions
    	* free_stack.c : frees stack as clean up action
    	* get_int.c : safely fetches arguments to opcodes if any
    	* get_opcode_func.c : fetches the opcode from a line in a bytecode
    		file

    * [#2] Modified codebase and added 'pint' opcode

    Modification:
    - Makefile : that betty_check target now uses automatic variables
    - monty.h : now accomodates the new opcode 'pint'
    - utility/get_opcode_func.c : now accomodates the new opcode 'pint'

    New files:
    - opcodes/_pint.c : implements the 'pint' opcode

    * [#2] Modified codebase and added 'pop' opcode

        Modification:
        - Makefile : that betty_check target now uses automatic variables
        - monty.h : now accomodates the new opcode 'pop'
        - utility/get_opcode_func.c : now accomodates the new opcode 'pop'

        New files:
        - opcodes/_pop.c : implements the 'pop' opcode

    * [#10] Implemented the `swap` opcode

    Modification:
    - monty.h : take note of the new function for swapping nodes

    - utility/
    	*get_opcode_func.c - Included the new opcode in the instruction
    		set
    - opcodes/
    	* _push.c : Corrected the function so that it properly assigns the
    		`prev` data of a node

    New file:
    - opcodes/
    	* _swap.c : Implements the `swap` opcode

    * [#11] Implement the `add` opcode

    Modifications:
    - monty.h : include prototype of new function for 'add' opcode

    - utility/
    	* get_opcode_func.c : included 'add' opcode in instrcutions

    New files:
    - opcodes/
    	* _add.c : implement the 'add' opcode

    * [#12] Implement the `nop` opcode

    This opcode doesn't do anyting

    Modification:
    - monty.h : included prototype of the new function that handles this
    		opcode
    - utility/
    	* get_opcode_func.c : Added new opcode to instructions

    New files:
    - opcodes/
    	* _nop.c : implements the `nop` opcode

    * Create the first release (#17)

    * [#15] Put the markdown files in Documentation/

    All the Markdown files except `README.md` file is moved to the directory
    named `Documentation`.
    These files include :
    - AUTHORS.md
    - PROCEDURE.md
    - WORKFLOW.md

    * [#7] Bug in README.md documentation

    Modifications:
    - Removed grammatical error
    - Added two Markdown badges to README.md
    	* Maintainer
    	* Git

    * [#14] Adding badges to READM.md

    Removed the `Maintainer` badge and added a generic badge.

    * [#14] Modified the Maintainer badge

    Using a different `shields.io` bade to do the same task of creating
    the `Maintainer` badge.

    * [#14] Corrected badge URL

    Modified the badge so that it displays an `svg` image.

    * [#14] Added new badge

    New badges:
    - `made-with-C`
    - `realase - version`

    * [#14] Added new badges

    Modification:
    - `release` badge

    New:
    - `contributors` badge

    * [#14] Badge modifcation

    Modifications:
    - Moved the `Git` badge to the acknowledgement section of README.md

    New:
    - `GITHUB` badge at the acknowledgement section

    * [#14] README.md modification

    Changed the header of the README.md

    * [#14] More acknowledgements

    Modification:
    - Github badge
    New badges:
    - ALX badge

    * [#14] Modification of Badges in README.md

    Modification:
    - ALX badge
Ebuube added a commit that referenced this issue Jun 30, 2023
* [#1] Initial Documentation

Created an AUTHORS.md file
Added the name of current contributors.

* [#1] Initial Documentation

Described the system of workflow for this repository

* [#1] Initial Documentation

Included a `.gitignore.` file in the repository and ignored `*.bak`
files.

* Revert "Initial commit"

This reverts commit 8277676.

* [#1] Initial Documentation

Described the system of workflow for this repository
Used proper styling to make the necessary instructions more visible

* [#1] Initial Documentation

Described the system of workflow for this repository
Used proper styling to make the necessary instructions more visible
Corrected punctuation marks

* [#3] Integrating pull request reviews

I resolved the problems by:
	* Replacing the name `julien` with `vagrant` in the README.md
file
	* Removing the bold style in the `<summary> ... </summary> tag
contents. I now have something that is has this format
		```<summary>Header : description</summary>``

* Revert "Integrating pull request reviews"

* Created README.md file (#6)

Resolves [#5]
Closes [#1]
This commit is an attempt to push back the README.md to the remote

* Basic codebase functionality (#8)

* Planned procedure for the monty program

This is the algorithm for the monty program.
It explains the maxim of the steps that the monty program uses for
execution.

* Created Makefile

The Makefile facilitates maintainance of the codebasee
* clean: To clean or unwanted files
* all: To build the executable `monty`
* betty_check: To check if codebase is `betty` compliant
* spell_check: To check if codebase is English is grammatically correct
* check: Run both `betty_check` and `spell_check`

* Implemented basic codebase functionality

* Code compiles safely without memory leaks
* Opens file passed to it
* Reads file line by line
* Parses each line to get the first two words i.e opcode and argument
* Prints the output to screen - To be turned into execute operation
* Closes file on exit
* Ends successfully without memory leaks

* Updated monty.h to accomodate the new function 'execute'

* Updated 'read_file.c' so that it calls the 'execute' function when appropriate

* Updated Makefile so that it incoporates 'valgrind' for mememory check

* Updated Makefile with documentation on how to use it

* Created a new file 'execute.c' to house the execute() funtion

* [#2] Prepared basic code functionalities

I successfully:
* Created a well-documented Makefile for the project
* Created the basic functions that handle file reading
	and parsing to select the opcodes and the arguements

Note: I have not implemented the stack data structure, yet

* First working model of monty (#9)

* Planned procedure for the monty program

This is the algorithm for the monty program.
It explains the maxim of the steps that the monty program uses for
execution.

* Created Makefile

The Makefile facilitates maintainance of the codebasee
* clean: To clean or unwanted files
* all: To build the executable `monty`
* betty_check: To check if codebase is `betty` compliant
* spell_check: To check if codebase is English is grammatically correct
* check: Run both `betty_check` and `spell_check`

* Implemented basic codebase functionality

* Code compiles safely without memory leaks
* Opens file passed to it
* Reads file line by line
* Parses each line to get the first two words i.e opcode and argument
* Prints the output to screen - To be turned into execute operation
* Closes file on exit
* Ends successfully without memory leaks

* Updated monty.h to accomodate the new function 'execute'

* Updated 'read_file.c' so that it calls the 'execute' function when appropriate

* Updated Makefile so that it incoporates 'valgrind' for mememory check

* Updated Makefile with documentation on how to use it

* Created a new file 'execute.c' to house the execute() funtion

* [#2] Prepared basic code functionalities

I successfully:
* Created a well-documented Makefile for the project
* Created the basic functions that handle file reading
	and parsing to select the opcodes and the arguements

Note: I have not implemented the stack data structure, yet

* [#2] Refactored codebase and added two opcodes

- Gitignore : ignores both *.bak and valgrind-out.txt log file
- Makefile: Takes note of the new file structure espcially, opcodes and
	utility directories
- README.md : Warns users not to exceed INT_MIN - INT_MAX range as
	opcode arguments to opcoes like push, pall, etc.
- main.c : Takes not of the new codebase structure
- monty.h : Added extra data types, header files and prototypes
- WORKFLOW.md : Corrected patter of pulling from remote branch

Removed unwanted files they are now replaced by new ones in a different
	directory -> utility:
- execute.c
- parse_line.c
- read_file.c

Added new files:
- opcodes directory:
	* _pall.c : implements a function to print all elements of stack
	* _push.c : implements a function to add element to top of stack

- utility directory:
	* execute.c : executes instructions
	* free_stack.c : frees stack as clean up action
	* get_int.c : safely fetches arguments to opcodes if any
	* get_opcode_func.c : fetches the opcode from a line in a bytecode
		file

* [#2] Modified codebase and added 'pint' opcode

Modification:
- Makefile : that betty_check target now uses automatic variables
- monty.h : now accomodates the new opcode 'pint'
- utility/get_opcode_func.c : now accomodates the new opcode 'pint'

New files:
- opcodes/_pint.c : implements the 'pint' opcode

* [#2] Modified codebase and added 'pop' opcode

    Modification:
    - Makefile : that betty_check target now uses automatic variables
    - monty.h : now accomodates the new opcode 'pop'
    - utility/get_opcode_func.c : now accomodates the new opcode 'pop'

    New files:
    - opcodes/_pop.c : implements the 'pop' opcode

* Successfully implemented Basic opcodes (#13)

* Planned procedure for the monty program

This is the algorithm for the monty program.
It explains the maxim of the steps that the monty program uses for
execution.

* Created Makefile

The Makefile facilitates maintainance of the codebasee
* clean: To clean or unwanted files
* all: To build the executable `monty`
* betty_check: To check if codebase is `betty` compliant
* spell_check: To check if codebase is English is grammatically correct
* check: Run both `betty_check` and `spell_check`

* Implemented basic codebase functionality

* Code compiles safely without memory leaks
* Opens file passed to it
* Reads file line by line
* Parses each line to get the first two words i.e opcode and argument
* Prints the output to screen - To be turned into execute operation
* Closes file on exit
* Ends successfully without memory leaks

* Updated monty.h to accomodate the new function 'execute'

* Updated 'read_file.c' so that it calls the 'execute' function when appropriate

* Updated Makefile so that it incoporates 'valgrind' for mememory check

* Updated Makefile with documentation on how to use it

* Created a new file 'execute.c' to house the execute() funtion

* [#2] Prepared basic code functionalities

I successfully:
* Created a well-documented Makefile for the project
* Created the basic functions that handle file reading
	and parsing to select the opcodes and the arguements

Note: I have not implemented the stack data structure, yet

* [#2] Refactored codebase and added two opcodes

- Gitignore : ignores both *.bak and valgrind-out.txt log file
- Makefile: Takes note of the new file structure espcially, opcodes and
	utility directories
- README.md : Warns users not to exceed INT_MIN - INT_MAX range as
	opcode arguments to opcoes like push, pall, etc.
- main.c : Takes not of the new codebase structure
- monty.h : Added extra data types, header files and prototypes
- WORKFLOW.md : Corrected patter of pulling from remote branch

Removed unwanted files they are now replaced by new ones in a different
	directory -> utility:
- execute.c
- parse_line.c
- read_file.c

Added new files:
- opcodes directory:
	* _pall.c : implements a function to print all elements of stack
	* _push.c : implements a function to add element to top of stack

- utility directory:
	* execute.c : executes instructions
	* free_stack.c : frees stack as clean up action
	* get_int.c : safely fetches arguments to opcodes if any
	* get_opcode_func.c : fetches the opcode from a line in a bytecode
		file

* [#2] Modified codebase and added 'pint' opcode

Modification:
- Makefile : that betty_check target now uses automatic variables
- monty.h : now accomodates the new opcode 'pint'
- utility/get_opcode_func.c : now accomodates the new opcode 'pint'

New files:
- opcodes/_pint.c : implements the 'pint' opcode

* [#2] Modified codebase and added 'pop' opcode

    Modification:
    - Makefile : that betty_check target now uses automatic variables
    - monty.h : now accomodates the new opcode 'pop'
    - utility/get_opcode_func.c : now accomodates the new opcode 'pop'

    New files:
    - opcodes/_pop.c : implements the 'pop' opcode

* [#10] Implemented the `swap` opcode

Modification:
- monty.h : take note of the new function for swapping nodes

- utility/
	*get_opcode_func.c - Included the new opcode in the instruction
		set
- opcodes/
	* _push.c : Corrected the function so that it properly assigns the
		`prev` data of a node

New file:
- opcodes/
	* _swap.c : Implements the `swap` opcode

* [#11] Implement the `add` opcode

Modifications:
- monty.h : include prototype of new function for 'add' opcode

- utility/
	* get_opcode_func.c : included 'add' opcode in instrcutions

New files:
- opcodes/
	* _add.c : implement the 'add' opcode

* [#12] Implement the `nop` opcode

This opcode doesn't do anyting

Modification:
- monty.h : included prototype of the new function that handles this
		opcode
- utility/
	* get_opcode_func.c : Added new opcode to instructions

New files:
- opcodes/
	* _nop.c : implements the `nop` opcode

* Create the first release (#17)

* [#15] Put the markdown files in Documentation/

All the Markdown files except `README.md` file is moved to the directory
named `Documentation`.
These files include :
- AUTHORS.md
- PROCEDURE.md
- WORKFLOW.md

* [#7] Bug in README.md documentation

Modifications:
- Removed grammatical error
- Added two Markdown badges to README.md
	* Maintainer
	* Git

* [#14] Adding badges to READM.md

Removed the `Maintainer` badge and added a generic badge.

* [#14] Modified the Maintainer badge

Using a different `shields.io` bade to do the same task of creating
the `Maintainer` badge.

* [#14] Corrected badge URL

Modified the badge so that it displays an `svg` image.

* [#14] Added new badge

New badges:
- `made-with-C`
- `realase - version`

* [#14] Added new badges

Modification:
- `release` badge

New:
- `contributors` badge

* [#14] Badge modifcation

Modifications:
- Moved the `Git` badge to the acknowledgement section of README.md

New:
- `GITHUB` badge at the acknowledgement section

* [#14] README.md modification

Changed the header of the README.md

* [#14] More acknowledgements

Modification:
- Github badge
New badges:
- ALX badge

* [#14] Modification of Badges in README.md

Modification:
- ALX badge

* Squashed commit of the following:

commit 3be87dd
Author: Ebube Gideon Onwuta <111176684+Ebuube@users.noreply.github.com>
Date:   Tue Jun 27 07:49:38 2023 +0100

    Hotfix 19 add license (#21)

    * Added  LICENSE to proposed release

    This license expresses the condition for using this software product.

    License type: MIT

    * Update LICENSE

    Corrected the order of the names for the License bearer.

commit 74115f0
Author: Ebube Gideon Onwuta <111176684+Ebuube@users.noreply.github.com>
Date:   Tue Jun 27 06:39:01 2023 +0100

    [#19] Prerelease hotfix (#20)

    Modification:
    - README.md : Linked the `Git` acknowledgement badge to the `git` website ->
    https://git-scm.com/

    - opcodes/
    	* Modified the `nop` opcode function so that it takes not of the unused
    		parameters

commit 8718776
Author: Ebube Gideon Onwuta <111176684+Ebuube@users.noreply.github.com>
Date:   Tue Jun 27 06:19:38 2023 +0100

    First Major release of monty (#18)

    * [#1] Initial Documentation

    Created an AUTHORS.md file
    Added the name of current contributors.

    * [#1] Initial Documentation

    Described the system of workflow for this repository

    * [#1] Initial Documentation

    Included a `.gitignore.` file in the repository and ignored `*.bak`
    files.

    * Revert "Initial commit"

    This reverts commit 8277676.

    * [#1] Initial Documentation

    Described the system of workflow for this repository
    Used proper styling to make the necessary instructions more visible

    * [#1] Initial Documentation

    Described the system of workflow for this repository
    Used proper styling to make the necessary instructions more visible
    Corrected punctuation marks

    * [#3] Integrating pull request reviews

    I resolved the problems by:
    	* Replacing the name `julien` with `vagrant` in the README.md
    file
    	* Removing the bold style in the `<summary> ... </summary> tag
    contents. I now have something that is has this format
    		```<summary>Header : description</summary>``

    * Revert "Integrating pull request reviews"

    * Created README.md file (#6)

    Resolves [#5]
    Closes [#1]
    This commit is an attempt to push back the README.md to the remote

    * Basic codebase functionality (#8)

    * Planned procedure for the monty program

    This is the algorithm for the monty program.
    It explains the maxim of the steps that the monty program uses for
    execution.

    * Created Makefile

    The Makefile facilitates maintainance of the codebasee
    * clean: To clean or unwanted files
    * all: To build the executable `monty`
    * betty_check: To check if codebase is `betty` compliant
    * spell_check: To check if codebase is English is grammatically correct
    * check: Run both `betty_check` and `spell_check`

    * Implemented basic codebase functionality

    * Code compiles safely without memory leaks
    * Opens file passed to it
    * Reads file line by line
    * Parses each line to get the first two words i.e opcode and argument
    * Prints the output to screen - To be turned into execute operation
    * Closes file on exit
    * Ends successfully without memory leaks

    * Updated monty.h to accomodate the new function 'execute'

    * Updated 'read_file.c' so that it calls the 'execute' function when appropriate

    * Updated Makefile so that it incoporates 'valgrind' for mememory check

    * Updated Makefile with documentation on how to use it

    * Created a new file 'execute.c' to house the execute() funtion

    * [#2] Prepared basic code functionalities

    I successfully:
    * Created a well-documented Makefile for the project
    * Created the basic functions that handle file reading
    	and parsing to select the opcodes and the arguements

    Note: I have not implemented the stack data structure, yet

    * First working model of monty (#9)

    * Planned procedure for the monty program

    This is the algorithm for the monty program.
    It explains the maxim of the steps that the monty program uses for
    execution.

    * Created Makefile

    The Makefile facilitates maintainance of the codebasee
    * clean: To clean or unwanted files
    * all: To build the executable `monty`
    * betty_check: To check if codebase is `betty` compliant
    * spell_check: To check if codebase is English is grammatically correct
    * check: Run both `betty_check` and `spell_check`

    * Implemented basic codebase functionality

    * Code compiles safely without memory leaks
    * Opens file passed to it
    * Reads file line by line
    * Parses each line to get the first two words i.e opcode and argument
    * Prints the output to screen - To be turned into execute operation
    * Closes file on exit
    * Ends successfully without memory leaks

    * Updated monty.h to accomodate the new function 'execute'

    * Updated 'read_file.c' so that it calls the 'execute' function when appropriate

    * Updated Makefile so that it incoporates 'valgrind' for mememory check

    * Updated Makefile with documentation on how to use it

    * Created a new file 'execute.c' to house the execute() funtion

    * [#2] Prepared basic code functionalities

    I successfully:
    * Created a well-documented Makefile for the project
    * Created the basic functions that handle file reading
    	and parsing to select the opcodes and the arguements

    Note: I have not implemented the stack data structure, yet

    * [#2] Refactored codebase and added two opcodes

    - Gitignore : ignores both *.bak and valgrind-out.txt log file
    - Makefile: Takes note of the new file structure espcially, opcodes and
    	utility directories
    - README.md : Warns users not to exceed INT_MIN - INT_MAX range as
    	opcode arguments to opcoes like push, pall, etc.
    - main.c : Takes not of the new codebase structure
    - monty.h : Added extra data types, header files and prototypes
    - WORKFLOW.md : Corrected patter of pulling from remote branch

    Removed unwanted files they are now replaced by new ones in a different
    	directory -> utility:
    - execute.c
    - parse_line.c
    - read_file.c

    Added new files:
    - opcodes directory:
    	* _pall.c : implements a function to print all elements of stack
    	* _push.c : implements a function to add element to top of stack

    - utility directory:
    	* execute.c : executes instructions
    	* free_stack.c : frees stack as clean up action
    	* get_int.c : safely fetches arguments to opcodes if any
    	* get_opcode_func.c : fetches the opcode from a line in a bytecode
    		file

    * [#2] Modified codebase and added 'pint' opcode

    Modification:
    - Makefile : that betty_check target now uses automatic variables
    - monty.h : now accomodates the new opcode 'pint'
    - utility/get_opcode_func.c : now accomodates the new opcode 'pint'

    New files:
    - opcodes/_pint.c : implements the 'pint' opcode

    * [#2] Modified codebase and added 'pop' opcode

        Modification:
        - Makefile : that betty_check target now uses automatic variables
        - monty.h : now accomodates the new opcode 'pop'
        - utility/get_opcode_func.c : now accomodates the new opcode 'pop'

        New files:
        - opcodes/_pop.c : implements the 'pop' opcode

    * Successfully implemented Basic opcodes (#13)

    * Planned procedure for the monty program

    This is the algorithm for the monty program.
    It explains the maxim of the steps that the monty program uses for
    execution.

    * Created Makefile

    The Makefile facilitates maintainance of the codebasee
    * clean: To clean or unwanted files
    * all: To build the executable `monty`
    * betty_check: To check if codebase is `betty` compliant
    * spell_check: To check if codebase is English is grammatically correct
    * check: Run both `betty_check` and `spell_check`

    * Implemented basic codebase functionality

    * Code compiles safely without memory leaks
    * Opens file passed to it
    * Reads file line by line
    * Parses each line to get the first two words i.e opcode and argument
    * Prints the output to screen - To be turned into execute operation
    * Closes file on exit
    * Ends successfully without memory leaks

    * Updated monty.h to accomodate the new function 'execute'

    * Updated 'read_file.c' so that it calls the 'execute' function when appropriate

    * Updated Makefile so that it incoporates 'valgrind' for mememory check

    * Updated Makefile with documentation on how to use it

    * Created a new file 'execute.c' to house the execute() funtion

    * [#2] Prepared basic code functionalities

    I successfully:
    * Created a well-documented Makefile for the project
    * Created the basic functions that handle file reading
    	and parsing to select the opcodes and the arguements

    Note: I have not implemented the stack data structure, yet

    * [#2] Refactored codebase and added two opcodes

    - Gitignore : ignores both *.bak and valgrind-out.txt log file
    - Makefile: Takes note of the new file structure espcially, opcodes and
    	utility directories
    - README.md : Warns users not to exceed INT_MIN - INT_MAX range as
    	opcode arguments to opcoes like push, pall, etc.
    - main.c : Takes not of the new codebase structure
    - monty.h : Added extra data types, header files and prototypes
    - WORKFLOW.md : Corrected patter of pulling from remote branch

    Removed unwanted files they are now replaced by new ones in a different
    	directory -> utility:
    - execute.c
    - parse_line.c
    - read_file.c

    Added new files:
    - opcodes directory:
    	* _pall.c : implements a function to print all elements of stack
    	* _push.c : implements a function to add element to top of stack

    - utility directory:
    	* execute.c : executes instructions
    	* free_stack.c : frees stack as clean up action
    	* get_int.c : safely fetches arguments to opcodes if any
    	* get_opcode_func.c : fetches the opcode from a line in a bytecode
    		file

    * [#2] Modified codebase and added 'pint' opcode

    Modification:
    - Makefile : that betty_check target now uses automatic variables
    - monty.h : now accomodates the new opcode 'pint'
    - utility/get_opcode_func.c : now accomodates the new opcode 'pint'

    New files:
    - opcodes/_pint.c : implements the 'pint' opcode

    * [#2] Modified codebase and added 'pop' opcode

        Modification:
        - Makefile : that betty_check target now uses automatic variables
        - monty.h : now accomodates the new opcode 'pop'
        - utility/get_opcode_func.c : now accomodates the new opcode 'pop'

        New files:
        - opcodes/_pop.c : implements the 'pop' opcode

    * [#10] Implemented the `swap` opcode

    Modification:
    - monty.h : take note of the new function for swapping nodes

    - utility/
    	*get_opcode_func.c - Included the new opcode in the instruction
    		set
    - opcodes/
    	* _push.c : Corrected the function so that it properly assigns the
    		`prev` data of a node

    New file:
    - opcodes/
    	* _swap.c : Implements the `swap` opcode

    * [#11] Implement the `add` opcode

    Modifications:
    - monty.h : include prototype of new function for 'add' opcode

    - utility/
    	* get_opcode_func.c : included 'add' opcode in instrcutions

    New files:
    - opcodes/
    	* _add.c : implement the 'add' opcode

    * [#12] Implement the `nop` opcode

    This opcode doesn't do anyting

    Modification:
    - monty.h : included prototype of the new function that handles this
    		opcode
    - utility/
    	* get_opcode_func.c : Added new opcode to instructions

    New files:
    - opcodes/
    	* _nop.c : implements the `nop` opcode

    * Create the first release (#17)

    * [#15] Put the markdown files in Documentation/

    All the Markdown files except `README.md` file is moved to the directory
    named `Documentation`.
    These files include :
    - AUTHORS.md
    - PROCEDURE.md
    - WORKFLOW.md

    * [#7] Bug in README.md documentation

    Modifications:
    - Removed grammatical error
    - Added two Markdown badges to README.md
    	* Maintainer
    	* Git

    * [#14] Adding badges to READM.md

    Removed the `Maintainer` badge and added a generic badge.

    * [#14] Modified the Maintainer badge

    Using a different `shields.io` bade to do the same task of creating
    the `Maintainer` badge.

    * [#14] Corrected badge URL

    Modified the badge so that it displays an `svg` image.

    * [#14] Added new badge

    New badges:
    - `made-with-C`
    - `realase - version`

    * [#14] Added new badges

    Modification:
    - `release` badge

    New:
    - `contributors` badge

    * [#14] Badge modifcation

    Modifications:
    - Moved the `Git` badge to the acknowledgement section of README.md

    New:
    - `GITHUB` badge at the acknowledgement section

    * [#14] README.md modification

    Changed the header of the README.md

    * [#14] More acknowledgements

    Modification:
    - Github badge
    New badges:
    - ALX badge

    * [#14] Modification of Badges in README.md

    Modification:
    - ALX badge

* [#25] Refactoring patches

Implemented a new function to handle:
	- get_node_at : fetches the node at a particular position

(cherry picked from commit f908e0ce33e31fc4da78f5b8b7029fec08392e83)

* [#25] Corrected phony targets of Makefile

The phony target 'read_and debug' had no rule, which was a bug.
It has been updated to 'ready_and_debug', which has a rule.

* [#25] New methods in Makefile

Updated Makefile so that the targets that compile the program configures
the executable. This will make the executable 'monty' available all
across the device -- not only this directory.

It was achieved by moving the executable binary to the /usr/bin
directory

* [#25] Updated Documentation of usage

Explained thenew way using this program 'monty'.
Empahisizing that 'monty' can be used anywhere in the machine once
installed.

* [#23] Created configuration file

The configuration file 'config.sh' is called by make according to the
Makefile. It moves the executable binary file to the '/usr/bin'
directory where it will be accessible throught the machine.

It equally ensures that the binary file is not left lying around.

* [#24] New changes

* [#22] Made monty accept negative numbers

Before now, monty reports an eror for negative numbers. This has been
corrected in this commit.

* [#22] Updating monty

This commit made changes that ensures monty doesn't accept invalid
strings as integers. It also makes sure that only one file is passed to
monty.

* [#25] Implement new opcodes and commenting feature

These new opcodes were implemented
* sub
* div
* mul
* mod

Added the commenting feature so that any line that begins with an hash
'#' is treated as a comment.

* [#25] Implemented the 'pchar' opcode

This involves updating the README.md to tell about such feature.

* [#25] Implement the 'pstr' opcode

This commit implements the `pstr` opcode and updated README.md with
documentation on how to use it.

* [#25] Refactored functions & added rotl opcode

Some changes were made in the way these opcodes behave. Instead of
calling a get_node_at() function to fetch the second node, it removes
the need of calling another function by directly determining if stack is
up to the required length. This increases the speed of the program.

These functions were refactored: _add(), _div(), _mod(), _mul(), _sub()
and _swap.

New opcode 'rotl' was implemented with the _rotl() function.

The change was properly documented in the README.md

* [#25] Refactored functions & added rotl opcode

Some changes were made in the way these opcodes behave. Instead of
calling a get_node_at() function to fetch the second node, it removes
the need of calling another function by directly determining if stack is
up to the required length. This increases the speed of the program.

These functions were refactored: _add(), _div(), _mod(), _mul(), _sub()
and _swap.

New opcode 'rotl' was implemented with the _rotl() function.

The change was properly documented in the README.md

* [#25] Removed previous version of files

* [#25] Implemented the 'rotr' opcode

Created the function _rotr() for this opcode and updated monty.h
and utility/get_opcode_func.c

* [#25] Implemented the 'rotr' opcode

Created the function _rotr() for this opcode and updated monty.h
and utility/get_opcode_func.c

Equally update README.md with documentation on how to use it.

* [#25] Implemented the 'stack' and 'queue' opcodes

The 'stack' opcode sets the data format to 'FIFO' which is the progams's
default state.
The 'queue' opcode sets the data format to 'LIFO'.

Updated the documentation in the README.md

* [#25] Implemented the 'stack' and 'queue' opcodes

The 'stack' opcode sets the data format to 'LIFO' which is the progams's
default state.
The 'queue' opcode sets the data format to 'FIFO'.

Updated the documentation in the README.md
Ebuube added a commit that referenced this issue Jun 30, 2023
* New features for Monty (#26)

* [#1] Initial Documentation

Created an AUTHORS.md file
Added the name of current contributors.

* [#1] Initial Documentation

Described the system of workflow for this repository

* [#1] Initial Documentation

Included a `.gitignore.` file in the repository and ignored `*.bak`
files.

* Revert "Initial commit"

This reverts commit 8277676.

* [#1] Initial Documentation

Described the system of workflow for this repository
Used proper styling to make the necessary instructions more visible

* [#1] Initial Documentation

Described the system of workflow for this repository
Used proper styling to make the necessary instructions more visible
Corrected punctuation marks

* [#3] Integrating pull request reviews

I resolved the problems by:
	* Replacing the name `julien` with `vagrant` in the README.md
file
	* Removing the bold style in the `<summary> ... </summary> tag
contents. I now have something that is has this format
		```<summary>Header : description</summary>``

* Revert "Integrating pull request reviews"

* Created README.md file (#6)

Resolves [#5]
Closes [#1]
This commit is an attempt to push back the README.md to the remote

* Basic codebase functionality (#8)

* Planned procedure for the monty program

This is the algorithm for the monty program.
It explains the maxim of the steps that the monty program uses for
execution.

* Created Makefile

The Makefile facilitates maintainance of the codebasee
* clean: To clean or unwanted files
* all: To build the executable `monty`
* betty_check: To check if codebase is `betty` compliant
* spell_check: To check if codebase is English is grammatically correct
* check: Run both `betty_check` and `spell_check`

* Implemented basic codebase functionality

* Code compiles safely without memory leaks
* Opens file passed to it
* Reads file line by line
* Parses each line to get the first two words i.e opcode and argument
* Prints the output to screen - To be turned into execute operation
* Closes file on exit
* Ends successfully without memory leaks

* Updated monty.h to accomodate the new function 'execute'

* Updated 'read_file.c' so that it calls the 'execute' function when appropriate

* Updated Makefile so that it incoporates 'valgrind' for mememory check

* Updated Makefile with documentation on how to use it

* Created a new file 'execute.c' to house the execute() funtion

* [#2] Prepared basic code functionalities

I successfully:
* Created a well-documented Makefile for the project
* Created the basic functions that handle file reading
	and parsing to select the opcodes and the arguements

Note: I have not implemented the stack data structure, yet

* First working model of monty (#9)

* Planned procedure for the monty program

This is the algorithm for the monty program.
It explains the maxim of the steps that the monty program uses for
execution.

* Created Makefile

The Makefile facilitates maintainance of the codebasee
* clean: To clean or unwanted files
* all: To build the executable `monty`
* betty_check: To check if codebase is `betty` compliant
* spell_check: To check if codebase is English is grammatically correct
* check: Run both `betty_check` and `spell_check`

* Implemented basic codebase functionality

* Code compiles safely without memory leaks
* Opens file passed to it
* Reads file line by line
* Parses each line to get the first two words i.e opcode and argument
* Prints the output to screen - To be turned into execute operation
* Closes file on exit
* Ends successfully without memory leaks

* Updated monty.h to accomodate the new function 'execute'

* Updated 'read_file.c' so that it calls the 'execute' function when appropriate

* Updated Makefile so that it incoporates 'valgrind' for mememory check

* Updated Makefile with documentation on how to use it

* Created a new file 'execute.c' to house the execute() funtion

* [#2] Prepared basic code functionalities

I successfully:
* Created a well-documented Makefile for the project
* Created the basic functions that handle file reading
	and parsing to select the opcodes and the arguements

Note: I have not implemented the stack data structure, yet

* [#2] Refactored codebase and added two opcodes

- Gitignore : ignores both *.bak and valgrind-out.txt log file
- Makefile: Takes note of the new file structure espcially, opcodes and
	utility directories
- README.md : Warns users not to exceed INT_MIN - INT_MAX range as
	opcode arguments to opcoes like push, pall, etc.
- main.c : Takes not of the new codebase structure
- monty.h : Added extra data types, header files and prototypes
- WORKFLOW.md : Corrected patter of pulling from remote branch

Removed unwanted files they are now replaced by new ones in a different
	directory -> utility:
- execute.c
- parse_line.c
- read_file.c

Added new files:
- opcodes directory:
	* _pall.c : implements a function to print all elements of stack
	* _push.c : implements a function to add element to top of stack

- utility directory:
	* execute.c : executes instructions
	* free_stack.c : frees stack as clean up action
	* get_int.c : safely fetches arguments to opcodes if any
	* get_opcode_func.c : fetches the opcode from a line in a bytecode
		file

* [#2] Modified codebase and added 'pint' opcode

Modification:
- Makefile : that betty_check target now uses automatic variables
- monty.h : now accomodates the new opcode 'pint'
- utility/get_opcode_func.c : now accomodates the new opcode 'pint'

New files:
- opcodes/_pint.c : implements the 'pint' opcode

* [#2] Modified codebase and added 'pop' opcode

    Modification:
    - Makefile : that betty_check target now uses automatic variables
    - monty.h : now accomodates the new opcode 'pop'
    - utility/get_opcode_func.c : now accomodates the new opcode 'pop'

    New files:
    - opcodes/_pop.c : implements the 'pop' opcode

* Successfully implemented Basic opcodes (#13)

* Planned procedure for the monty program

This is the algorithm for the monty program.
It explains the maxim of the steps that the monty program uses for
execution.

* Created Makefile

The Makefile facilitates maintainance of the codebasee
* clean: To clean or unwanted files
* all: To build the executable `monty`
* betty_check: To check if codebase is `betty` compliant
* spell_check: To check if codebase is English is grammatically correct
* check: Run both `betty_check` and `spell_check`

* Implemented basic codebase functionality

* Code compiles safely without memory leaks
* Opens file passed to it
* Reads file line by line
* Parses each line to get the first two words i.e opcode and argument
* Prints the output to screen - To be turned into execute operation
* Closes file on exit
* Ends successfully without memory leaks

* Updated monty.h to accomodate the new function 'execute'

* Updated 'read_file.c' so that it calls the 'execute' function when appropriate

* Updated Makefile so that it incoporates 'valgrind' for mememory check

* Updated Makefile with documentation on how to use it

* Created a new file 'execute.c' to house the execute() funtion

* [#2] Prepared basic code functionalities

I successfully:
* Created a well-documented Makefile for the project
* Created the basic functions that handle file reading
	and parsing to select the opcodes and the arguements

Note: I have not implemented the stack data structure, yet

* [#2] Refactored codebase and added two opcodes

- Gitignore : ignores both *.bak and valgrind-out.txt log file
- Makefile: Takes note of the new file structure espcially, opcodes and
	utility directories
- README.md : Warns users not to exceed INT_MIN - INT_MAX range as
	opcode arguments to opcoes like push, pall, etc.
- main.c : Takes not of the new codebase structure
- monty.h : Added extra data types, header files and prototypes
- WORKFLOW.md : Corrected patter of pulling from remote branch

Removed unwanted files they are now replaced by new ones in a different
	directory -> utility:
- execute.c
- parse_line.c
- read_file.c

Added new files:
- opcodes directory:
	* _pall.c : implements a function to print all elements of stack
	* _push.c : implements a function to add element to top of stack

- utility directory:
	* execute.c : executes instructions
	* free_stack.c : frees stack as clean up action
	* get_int.c : safely fetches arguments to opcodes if any
	* get_opcode_func.c : fetches the opcode from a line in a bytecode
		file

* [#2] Modified codebase and added 'pint' opcode

Modification:
- Makefile : that betty_check target now uses automatic variables
- monty.h : now accomodates the new opcode 'pint'
- utility/get_opcode_func.c : now accomodates the new opcode 'pint'

New files:
- opcodes/_pint.c : implements the 'pint' opcode

* [#2] Modified codebase and added 'pop' opcode

    Modification:
    - Makefile : that betty_check target now uses automatic variables
    - monty.h : now accomodates the new opcode 'pop'
    - utility/get_opcode_func.c : now accomodates the new opcode 'pop'

    New files:
    - opcodes/_pop.c : implements the 'pop' opcode

* [#10] Implemented the `swap` opcode

Modification:
- monty.h : take note of the new function for swapping nodes

- utility/
	*get_opcode_func.c - Included the new opcode in the instruction
		set
- opcodes/
	* _push.c : Corrected the function so that it properly assigns the
		`prev` data of a node

New file:
- opcodes/
	* _swap.c : Implements the `swap` opcode

* [#11] Implement the `add` opcode

Modifications:
- monty.h : include prototype of new function for 'add' opcode

- utility/
	* get_opcode_func.c : included 'add' opcode in instrcutions

New files:
- opcodes/
	* _add.c : implement the 'add' opcode

* [#12] Implement the `nop` opcode

This opcode doesn't do anyting

Modification:
- monty.h : included prototype of the new function that handles this
		opcode
- utility/
	* get_opcode_func.c : Added new opcode to instructions

New files:
- opcodes/
	* _nop.c : implements the `nop` opcode

* Create the first release (#17)

* [#15] Put the markdown files in Documentation/

All the Markdown files except `README.md` file is moved to the directory
named `Documentation`.
These files include :
- AUTHORS.md
- PROCEDURE.md
- WORKFLOW.md

* [#7] Bug in README.md documentation

Modifications:
- Removed grammatical error
- Added two Markdown badges to README.md
	* Maintainer
	* Git

* [#14] Adding badges to READM.md

Removed the `Maintainer` badge and added a generic badge.

* [#14] Modified the Maintainer badge

Using a different `shields.io` bade to do the same task of creating
the `Maintainer` badge.

* [#14] Corrected badge URL

Modified the badge so that it displays an `svg` image.

* [#14] Added new badge

New badges:
- `made-with-C`
- `realase - version`

* [#14] Added new badges

Modification:
- `release` badge

New:
- `contributors` badge

* [#14] Badge modifcation

Modifications:
- Moved the `Git` badge to the acknowledgement section of README.md

New:
- `GITHUB` badge at the acknowledgement section

* [#14] README.md modification

Changed the header of the README.md

* [#14] More acknowledgements

Modification:
- Github badge
New badges:
- ALX badge

* [#14] Modification of Badges in README.md

Modification:
- ALX badge

* Squashed commit of the following:

commit 3be87dd
Author: Ebube Gideon Onwuta <111176684+Ebuube@users.noreply.github.com>
Date:   Tue Jun 27 07:49:38 2023 +0100

    Hotfix 19 add license (#21)

    * Added  LICENSE to proposed release

    This license expresses the condition for using this software product.

    License type: MIT

    * Update LICENSE

    Corrected the order of the names for the License bearer.

commit 74115f0
Author: Ebube Gideon Onwuta <111176684+Ebuube@users.noreply.github.com>
Date:   Tue Jun 27 06:39:01 2023 +0100

    [#19] Prerelease hotfix (#20)

    Modification:
    - README.md : Linked the `Git` acknowledgement badge to the `git` website ->
    https://git-scm.com/

    - opcodes/
    	* Modified the `nop` opcode function so that it takes not of the unused
    		parameters

commit 8718776
Author: Ebube Gideon Onwuta <111176684+Ebuube@users.noreply.github.com>
Date:   Tue Jun 27 06:19:38 2023 +0100

    First Major release of monty (#18)

    * [#1] Initial Documentation

    Created an AUTHORS.md file
    Added the name of current contributors.

    * [#1] Initial Documentation

    Described the system of workflow for this repository

    * [#1] Initial Documentation

    Included a `.gitignore.` file in the repository and ignored `*.bak`
    files.

    * Revert "Initial commit"

    This reverts commit 8277676.

    * [#1] Initial Documentation

    Described the system of workflow for this repository
    Used proper styling to make the necessary instructions more visible

    * [#1] Initial Documentation

    Described the system of workflow for this repository
    Used proper styling to make the necessary instructions more visible
    Corrected punctuation marks

    * [#3] Integrating pull request reviews

    I resolved the problems by:
    	* Replacing the name `julien` with `vagrant` in the README.md
    file
    	* Removing the bold style in the `<summary> ... </summary> tag
    contents. I now have something that is has this format
    		```<summary>Header : description</summary>``

    * Revert "Integrating pull request reviews"

    * Created README.md file (#6)

    Resolves [#5]
    Closes [#1]
    This commit is an attempt to push back the README.md to the remote

    * Basic codebase functionality (#8)

    * Planned procedure for the monty program

    This is the algorithm for the monty program.
    It explains the maxim of the steps that the monty program uses for
    execution.

    * Created Makefile

    The Makefile facilitates maintainance of the codebasee
    * clean: To clean or unwanted files
    * all: To build the executable `monty`
    * betty_check: To check if codebase is `betty` compliant
    * spell_check: To check if codebase is English is grammatically correct
    * check: Run both `betty_check` and `spell_check`

    * Implemented basic codebase functionality

    * Code compiles safely without memory leaks
    * Opens file passed to it
    * Reads file line by line
    * Parses each line to get the first two words i.e opcode and argument
    * Prints the output to screen - To be turned into execute operation
    * Closes file on exit
    * Ends successfully without memory leaks

    * Updated monty.h to accomodate the new function 'execute'

    * Updated 'read_file.c' so that it calls the 'execute' function when appropriate

    * Updated Makefile so that it incoporates 'valgrind' for mememory check

    * Updated Makefile with documentation on how to use it

    * Created a new file 'execute.c' to house the execute() funtion

    * [#2] Prepared basic code functionalities

    I successfully:
    * Created a well-documented Makefile for the project
    * Created the basic functions that handle file reading
    	and parsing to select the opcodes and the arguements

    Note: I have not implemented the stack data structure, yet

    * First working model of monty (#9)

    * Planned procedure for the monty program

    This is the algorithm for the monty program.
    It explains the maxim of the steps that the monty program uses for
    execution.

    * Created Makefile

    The Makefile facilitates maintainance of the codebasee
    * clean: To clean or unwanted files
    * all: To build the executable `monty`
    * betty_check: To check if codebase is `betty` compliant
    * spell_check: To check if codebase is English is grammatically correct
    * check: Run both `betty_check` and `spell_check`

    * Implemented basic codebase functionality

    * Code compiles safely without memory leaks
    * Opens file passed to it
    * Reads file line by line
    * Parses each line to get the first two words i.e opcode and argument
    * Prints the output to screen - To be turned into execute operation
    * Closes file on exit
    * Ends successfully without memory leaks

    * Updated monty.h to accomodate the new function 'execute'

    * Updated 'read_file.c' so that it calls the 'execute' function when appropriate

    * Updated Makefile so that it incoporates 'valgrind' for mememory check

    * Updated Makefile with documentation on how to use it

    * Created a new file 'execute.c' to house the execute() funtion

    * [#2] Prepared basic code functionalities

    I successfully:
    * Created a well-documented Makefile for the project
    * Created the basic functions that handle file reading
    	and parsing to select the opcodes and the arguements

    Note: I have not implemented the stack data structure, yet

    * [#2] Refactored codebase and added two opcodes

    - Gitignore : ignores both *.bak and valgrind-out.txt log file
    - Makefile: Takes note of the new file structure espcially, opcodes and
    	utility directories
    - README.md : Warns users not to exceed INT_MIN - INT_MAX range as
    	opcode arguments to opcoes like push, pall, etc.
    - main.c : Takes not of the new codebase structure
    - monty.h : Added extra data types, header files and prototypes
    - WORKFLOW.md : Corrected patter of pulling from remote branch

    Removed unwanted files they are now replaced by new ones in a different
    	directory -> utility:
    - execute.c
    - parse_line.c
    - read_file.c

    Added new files:
    - opcodes directory:
    	* _pall.c : implements a function to print all elements of stack
    	* _push.c : implements a function to add element to top of stack

    - utility directory:
    	* execute.c : executes instructions
    	* free_stack.c : frees stack as clean up action
    	* get_int.c : safely fetches arguments to opcodes if any
    	* get_opcode_func.c : fetches the opcode from a line in a bytecode
    		file

    * [#2] Modified codebase and added 'pint' opcode

    Modification:
    - Makefile : that betty_check target now uses automatic variables
    - monty.h : now accomodates the new opcode 'pint'
    - utility/get_opcode_func.c : now accomodates the new opcode 'pint'

    New files:
    - opcodes/_pint.c : implements the 'pint' opcode

    * [#2] Modified codebase and added 'pop' opcode

        Modification:
        - Makefile : that betty_check target now uses automatic variables
        - monty.h : now accomodates the new opcode 'pop'
        - utility/get_opcode_func.c : now accomodates the new opcode 'pop'

        New files:
        - opcodes/_pop.c : implements the 'pop' opcode

    * Successfully implemented Basic opcodes (#13)

    * Planned procedure for the monty program

    This is the algorithm for the monty program.
    It explains the maxim of the steps that the monty program uses for
    execution.

    * Created Makefile

    The Makefile facilitates maintainance of the codebasee
    * clean: To clean or unwanted files
    * all: To build the executable `monty`
    * betty_check: To check if codebase is `betty` compliant
    * spell_check: To check if codebase is English is grammatically correct
    * check: Run both `betty_check` and `spell_check`

    * Implemented basic codebase functionality

    * Code compiles safely without memory leaks
    * Opens file passed to it
    * Reads file line by line
    * Parses each line to get the first two words i.e opcode and argument
    * Prints the output to screen - To be turned into execute operation
    * Closes file on exit
    * Ends successfully without memory leaks

    * Updated monty.h to accomodate the new function 'execute'

    * Updated 'read_file.c' so that it calls the 'execute' function when appropriate

    * Updated Makefile so that it incoporates 'valgrind' for mememory check

    * Updated Makefile with documentation on how to use it

    * Created a new file 'execute.c' to house the execute() funtion

    * [#2] Prepared basic code functionalities

    I successfully:
    * Created a well-documented Makefile for the project
    * Created the basic functions that handle file reading
    	and parsing to select the opcodes and the arguements

    Note: I have not implemented the stack data structure, yet

    * [#2] Refactored codebase and added two opcodes

    - Gitignore : ignores both *.bak and valgrind-out.txt log file
    - Makefile: Takes note of the new file structure espcially, opcodes and
    	utility directories
    - README.md : Warns users not to exceed INT_MIN - INT_MAX range as
    	opcode arguments to opcoes like push, pall, etc.
    - main.c : Takes not of the new codebase structure
    - monty.h : Added extra data types, header files and prototypes
    - WORKFLOW.md : Corrected patter of pulling from remote branch

    Removed unwanted files they are now replaced by new ones in a different
    	directory -> utility:
    - execute.c
    - parse_line.c
    - read_file.c

    Added new files:
    - opcodes directory:
    	* _pall.c : implements a function to print all elements of stack
    	* _push.c : implements a function to add element to top of stack

    - utility directory:
    	* execute.c : executes instructions
    	* free_stack.c : frees stack as clean up action
    	* get_int.c : safely fetches arguments to opcodes if any
    	* get_opcode_func.c : fetches the opcode from a line in a bytecode
    		file

    * [#2] Modified codebase and added 'pint' opcode

    Modification:
    - Makefile : that betty_check target now uses automatic variables
    - monty.h : now accomodates the new opcode 'pint'
    - utility/get_opcode_func.c : now accomodates the new opcode 'pint'

    New files:
    - opcodes/_pint.c : implements the 'pint' opcode

    * [#2] Modified codebase and added 'pop' opcode

        Modification:
        - Makefile : that betty_check target now uses automatic variables
        - monty.h : now accomodates the new opcode 'pop'
        - utility/get_opcode_func.c : now accomodates the new opcode 'pop'

        New files:
        - opcodes/_pop.c : implements the 'pop' opcode

    * [#10] Implemented the `swap` opcode

    Modification:
    - monty.h : take note of the new function for swapping nodes

    - utility/
    	*get_opcode_func.c - Included the new opcode in the instruction
    		set
    - opcodes/
    	* _push.c : Corrected the function so that it properly assigns the
    		`prev` data of a node

    New file:
    - opcodes/
    	* _swap.c : Implements the `swap` opcode

    * [#11] Implement the `add` opcode

    Modifications:
    - monty.h : include prototype of new function for 'add' opcode

    - utility/
    	* get_opcode_func.c : included 'add' opcode in instrcutions

    New files:
    - opcodes/
    	* _add.c : implement the 'add' opcode

    * [#12] Implement the `nop` opcode

    This opcode doesn't do anyting

    Modification:
    - monty.h : included prototype of the new function that handles this
    		opcode
    - utility/
    	* get_opcode_func.c : Added new opcode to instructions

    New files:
    - opcodes/
    	* _nop.c : implements the `nop` opcode

    * Create the first release (#17)

    * [#15] Put the markdown files in Documentation/

    All the Markdown files except `README.md` file is moved to the directory
    named `Documentation`.
    These files include :
    - AUTHORS.md
    - PROCEDURE.md
    - WORKFLOW.md

    * [#7] Bug in README.md documentation

    Modifications:
    - Removed grammatical error
    - Added two Markdown badges to README.md
    	* Maintainer
    	* Git

    * [#14] Adding badges to READM.md

    Removed the `Maintainer` badge and added a generic badge.

    * [#14] Modified the Maintainer badge

    Using a different `shields.io` bade to do the same task of creating
    the `Maintainer` badge.

    * [#14] Corrected badge URL

    Modified the badge so that it displays an `svg` image.

    * [#14] Added new badge

    New badges:
    - `made-with-C`
    - `realase - version`

    * [#14] Added new badges

    Modification:
    - `release` badge

    New:
    - `contributors` badge

    * [#14] Badge modifcation

    Modifications:
    - Moved the `Git` badge to the acknowledgement section of README.md

    New:
    - `GITHUB` badge at the acknowledgement section

    * [#14] README.md modification

    Changed the header of the README.md

    * [#14] More acknowledgements

    Modification:
    - Github badge
    New badges:
    - ALX badge

    * [#14] Modification of Badges in README.md

    Modification:
    - ALX badge

* [#25] Refactoring patches

Implemented a new function to handle:
	- get_node_at : fetches the node at a particular position

(cherry picked from commit f908e0ce33e31fc4da78f5b8b7029fec08392e83)

* [#25] Corrected phony targets of Makefile

The phony target 'read_and debug' had no rule, which was a bug.
It has been updated to 'ready_and_debug', which has a rule.

* [#25] New methods in Makefile

Updated Makefile so that the targets that compile the program configures
the executable. This will make the executable 'monty' available all
across the device -- not only this directory.

It was achieved by moving the executable binary to the /usr/bin
directory

* [#25] Updated Documentation of usage

Explained thenew way using this program 'monty'.
Empahisizing that 'monty' can be used anywhere in the machine once
installed.

* [#23] Created configuration file

The configuration file 'config.sh' is called by make according to the
Makefile. It moves the executable binary file to the '/usr/bin'
directory where it will be accessible throught the machine.

It equally ensures that the binary file is not left lying around.

* [#24] New changes

* [#22] Made monty accept negative numbers

Before now, monty reports an eror for negative numbers. This has been
corrected in this commit.

* [#22] Updating monty

This commit made changes that ensures monty doesn't accept invalid
strings as integers. It also makes sure that only one file is passed to
monty.

* [#25] Implement new opcodes and commenting feature

These new opcodes were implemented
* sub
* div
* mul
* mod

Added the commenting feature so that any line that begins with an hash
'#' is treated as a comment.

* [#25] Implemented the 'pchar' opcode

This involves updating the README.md to tell about such feature.

* [#25] Implement the 'pstr' opcode

This commit implements the `pstr` opcode and updated README.md with
documentation on how to use it.

* [#25] Refactored functions & added rotl opcode

Some changes were made in the way these opcodes behave. Instead of
calling a get_node_at() function to fetch the second node, it removes
the need of calling another function by directly determining if stack is
up to the required length. This increases the speed of the program.

These functions were refactored: _add(), _div(), _mod(), _mul(), _sub()
and _swap.

New opcode 'rotl' was implemented with the _rotl() function.

The change was properly documented in the README.md

* [#25] Refactored functions & added rotl opcode

Some changes were made in the way these opcodes behave. Instead of
calling a get_node_at() function to fetch the second node, it removes
the need of calling another function by directly determining if stack is
up to the required length. This increases the speed of the program.

These functions were refactored: _add(), _div(), _mod(), _mul(), _sub()
and _swap.

New opcode 'rotl' was implemented with the _rotl() function.

The change was properly documented in the README.md

* [#25] Removed previous version of files

* [#25] Implemented the 'rotr' opcode

Created the function _rotr() for this opcode and updated monty.h
and utility/get_opcode_func.c

* [#25] Implemented the 'rotr' opcode

Created the function _rotr() for this opcode and updated monty.h
and utility/get_opcode_func.c

Equally update README.md with documentation on how to use it.

* [#25] Implemented the 'stack' and 'queue' opcodes

The 'stack' opcode sets the data format to 'FIFO' which is the progams's
default state.
The 'queue' opcode sets the data format to 'LIFO'.

Updated the documentation in the README.md

* [#25] Implemented the 'stack' and 'queue' opcodes

The 'stack' opcode sets the data format to 'LIFO' which is the progams's
default state.
The 'queue' opcode sets the data format to 'FIFO'.

Updated the documentation in the README.md

* Revert "New features for Monty (#26)"

This reverts commit 415fe0a.
Ebuube added a commit that referenced this issue Jun 30, 2023
* [#1] Initial Documentation

Created an AUTHORS.md file
Added the name of current contributors.

* [#1] Initial Documentation

Described the system of workflow for this repository

* [#1] Initial Documentation

Included a `.gitignore.` file in the repository and ignored `*.bak`
files.

* Revert "Initial commit"

This reverts commit 8277676f7951ee7661424f8b715ed7cdb70a4a9f.

* [#1] Initial Documentation

Described the system of workflow for this repository
Used proper styling to make the necessary instructions more visible

* [#1] Initial Documentation

Described the system of workflow for this repository
Used proper styling to make the necessary instructions more visible
Corrected punctuation marks

* [#3] Integrating pull request reviews

I resolved the problems by:
	* Replacing the name `julien` with `vagrant` in the README.md
file
	* Removing the bold style in the `<summary> ... </summary> tag
contents. I now have something that is has this format
		```<summary>Header : description</summary>``

* Revert "Integrating pull request reviews"

* Created README.md file (#6)

Resolves [#5]
Closes [#1]
This commit is an attempt to push back the README.md to the remote

* Basic codebase functionality (#8)

* Planned procedure for the monty program

This is the algorithm for the monty program.
It explains the maxim of the steps that the monty program uses for
execution.

* Created Makefile

The Makefile facilitates maintainance of the codebasee
* clean: To clean or unwanted files
* all: To build the executable `monty`
* betty_check: To check if codebase is `betty` compliant
* spell_check: To check if codebase is English is grammatically correct
* check: Run both `betty_check` and `spell_check`

* Implemented basic codebase functionality

* Code compiles safely without memory leaks
* Opens file passed to it
* Reads file line by line
* Parses each line to get the first two words i.e opcode and argument
* Prints the output to screen - To be turned into execute operation
* Closes file on exit
* Ends successfully without memory leaks

* Updated monty.h to accomodate the new function 'execute'

* Updated 'read_file.c' so that it calls the 'execute' function when appropriate

* Updated Makefile so that it incoporates 'valgrind' for mememory check

* Updated Makefile with documentation on how to use it

* Created a new file 'execute.c' to house the execute() funtion

* [#2] Prepared basic code functionalities

I successfully:
* Created a well-documented Makefile for the project
* Created the basic functions that handle file reading
	and parsing to select the opcodes and the arguements

Note: I have not implemented the stack data structure, yet

* First working model of monty (#9)

* Planned procedure for the monty program

This is the algorithm for the monty program.
It explains the maxim of the steps that the monty program uses for
execution.

* Created Makefile

The Makefile facilitates maintainance of the codebasee
* clean: To clean or unwanted files
* all: To build the executable `monty`
* betty_check: To check if codebase is `betty` compliant
* spell_check: To check if codebase is English is grammatically correct
* check: Run both `betty_check` and `spell_check`

* Implemented basic codebase functionality

* Code compiles safely without memory leaks
* Opens file passed to it
* Reads file line by line
* Parses each line to get the first two words i.e opcode and argument
* Prints the output to screen - To be turned into execute operation
* Closes file on exit
* Ends successfully without memory leaks

* Updated monty.h to accomodate the new function 'execute'

* Updated 'read_file.c' so that it calls the 'execute' function when appropriate

* Updated Makefile so that it incoporates 'valgrind' for mememory check

* Updated Makefile with documentation on how to use it

* Created a new file 'execute.c' to house the execute() funtion

* [#2] Prepared basic code functionalities

I successfully:
* Created a well-documented Makefile for the project
* Created the basic functions that handle file reading
	and parsing to select the opcodes and the arguements

Note: I have not implemented the stack data structure, yet

* [#2] Refactored codebase and added two opcodes

- Gitignore : ignores both *.bak and valgrind-out.txt log file
- Makefile: Takes note of the new file structure espcially, opcodes and
	utility directories
- README.md : Warns users not to exceed INT_MIN - INT_MAX range as
	opcode arguments to opcoes like push, pall, etc.
- main.c : Takes not of the new codebase structure
- monty.h : Added extra data types, header files and prototypes
- WORKFLOW.md : Corrected patter of pulling from remote branch

Removed unwanted files they are now replaced by new ones in a different
	directory -> utility:
- execute.c
- parse_line.c
- read_file.c

Added new files:
- opcodes directory:
	* _pall.c : implements a function to print all elements of stack
	* _push.c : implements a function to add element to top of stack

- utility directory:
	* execute.c : executes instructions
	* free_stack.c : frees stack as clean up action
	* get_int.c : safely fetches arguments to opcodes if any
	* get_opcode_func.c : fetches the opcode from a line in a bytecode
		file

* [#2] Modified codebase and added 'pint' opcode

Modification:
- Makefile : that betty_check target now uses automatic variables
- monty.h : now accomodates the new opcode 'pint'
- utility/get_opcode_func.c : now accomodates the new opcode 'pint'

New files:
- opcodes/_pint.c : implements the 'pint' opcode

* [#2] Modified codebase and added 'pop' opcode

    Modification:
    - Makefile : that betty_check target now uses automatic variables
    - monty.h : now accomodates the new opcode 'pop'
    - utility/get_opcode_func.c : now accomodates the new opcode 'pop'

    New files:
    - opcodes/_pop.c : implements the 'pop' opcode

* Successfully implemented Basic opcodes (#13)

* Planned procedure for the monty program

This is the algorithm for the monty program.
It explains the maxim of the steps that the monty program uses for
execution.

* Created Makefile

The Makefile facilitates maintainance of the codebasee
* clean: To clean or unwanted files
* all: To build the executable `monty`
* betty_check: To check if codebase is `betty` compliant
* spell_check: To check if codebase is English is grammatically correct
* check: Run both `betty_check` and `spell_check`

* Implemented basic codebase functionality

* Code compiles safely without memory leaks
* Opens file passed to it
* Reads file line by line
* Parses each line to get the first two words i.e opcode and argument
* Prints the output to screen - To be turned into execute operation
* Closes file on exit
* Ends successfully without memory leaks

* Updated monty.h to accomodate the new function 'execute'

* Updated 'read_file.c' so that it calls the 'execute' function when appropriate

* Updated Makefile so that it incoporates 'valgrind' for mememory check

* Updated Makefile with documentation on how to use it

* Created a new file 'execute.c' to house the execute() funtion

* [#2] Prepared basic code functionalities

I successfully:
* Created a well-documented Makefile for the project
* Created the basic functions that handle file reading
	and parsing to select the opcodes and the arguements

Note: I have not implemented the stack data structure, yet

* [#2] Refactored codebase and added two opcodes

- Gitignore : ignores both *.bak and valgrind-out.txt log file
- Makefile: Takes note of the new file structure espcially, opcodes and
	utility directories
- README.md : Warns users not to exceed INT_MIN - INT_MAX range as
	opcode arguments to opcoes like push, pall, etc.
- main.c : Takes not of the new codebase structure
- monty.h : Added extra data types, header files and prototypes
- WORKFLOW.md : Corrected patter of pulling from remote branch

Removed unwanted files they are now replaced by new ones in a different
	directory -> utility:
- execute.c
- parse_line.c
- read_file.c

Added new files:
- opcodes directory:
	* _pall.c : implements a function to print all elements of stack
	* _push.c : implements a function to add element to top of stack

- utility directory:
	* execute.c : executes instructions
	* free_stack.c : frees stack as clean up action
	* get_int.c : safely fetches arguments to opcodes if any
	* get_opcode_func.c : fetches the opcode from a line in a bytecode
		file

* [#2] Modified codebase and added 'pint' opcode

Modification:
- Makefile : that betty_check target now uses automatic variables
- monty.h : now accomodates the new opcode 'pint'
- utility/get_opcode_func.c : now accomodates the new opcode 'pint'

New files:
- opcodes/_pint.c : implements the 'pint' opcode

* [#2] Modified codebase and added 'pop' opcode

    Modification:
    - Makefile : that betty_check target now uses automatic variables
    - monty.h : now accomodates the new opcode 'pop'
    - utility/get_opcode_func.c : now accomodates the new opcode 'pop'

    New files:
    - opcodes/_pop.c : implements the 'pop' opcode

* [#10] Implemented the `swap` opcode

Modification:
- monty.h : take note of the new function for swapping nodes

- utility/
	*get_opcode_func.c - Included the new opcode in the instruction
		set
- opcodes/
	* _push.c : Corrected the function so that it properly assigns the
		`prev` data of a node

New file:
- opcodes/
	* _swap.c : Implements the `swap` opcode

* [#11] Implement the `add` opcode

Modifications:
- monty.h : include prototype of new function for 'add' opcode

- utility/
	* get_opcode_func.c : included 'add' opcode in instrcutions

New files:
- opcodes/
	* _add.c : implement the 'add' opcode

* [#12] Implement the `nop` opcode

This opcode doesn't do anyting

Modification:
- monty.h : included prototype of the new function that handles this
		opcode
- utility/
	* get_opcode_func.c : Added new opcode to instructions

New files:
- opcodes/
	* _nop.c : implements the `nop` opcode

* Create the first release (#17)

* [#15] Put the markdown files in Documentation/

All the Markdown files except `README.md` file is moved to the directory
named `Documentation`.
These files include :
- AUTHORS.md
- PROCEDURE.md
- WORKFLOW.md

* [#7] Bug in README.md documentation

Modifications:
- Removed grammatical error
- Added two Markdown badges to README.md
	* Maintainer
	* Git

* [#14] Adding badges to READM.md

Removed the `Maintainer` badge and added a generic badge.

* [#14] Modified the Maintainer badge

Using a different `shields.io` bade to do the same task of creating
the `Maintainer` badge.

* [#14] Corrected badge URL

Modified the badge so that it displays an `svg` image.

* [#14] Added new badge

New badges:
- `made-with-C`
- `realase - version`

* [#14] Added new badges

Modification:
- `release` badge

New:
- `contributors` badge

* [#14] Badge modifcation

Modifications:
- Moved the `Git` badge to the acknowledgement section of README.md

New:
- `GITHUB` badge at the acknowledgement section

* [#14] README.md modification

Changed the header of the README.md

* [#14] More acknowledgements

Modification:
- Github badge
New badges:
- ALX badge

* [#14] Modification of Badges in README.md

Modification:
- ALX badge

* Squashed commit of the following:

commit 3be87dddb84b4dd7b7d8aff5222b2ff8df96aafd
Author: Ebube Gideon Onwuta <111176684+Ebuube@users.noreply.github.com>
Date:   Tue Jun 27 07:49:38 2023 +0100

    Hotfix 19 add license (#21)

    * Added  LICENSE to proposed release

    This license expresses the condition for using this software product.

    License type: MIT

    * Update LICENSE

    Corrected the order of the names for the License bearer.

commit 74115f0c2402b9407aacd147b87447b4162539ab
Author: Ebube Gideon Onwuta <111176684+Ebuube@users.noreply.github.com>
Date:   Tue Jun 27 06:39:01 2023 +0100

    [#19] Prerelease hotfix (#20)

    Modification:
    - README.md : Linked the `Git` acknowledgement badge to the `git` website ->
    https://git-scm.com/

    - opcodes/
    	* Modified the `nop` opcode function so that it takes not of the unused
    		parameters

commit 871877670311addca968c30ef4869916bd046a1f
Author: Ebube Gideon Onwuta <111176684+Ebuube@users.noreply.github.com>
Date:   Tue Jun 27 06:19:38 2023 +0100

    First Major release of monty (#18)

    * [#1] Initial Documentation

    Created an AUTHORS.md file
    Added the name of current contributors.

    * [#1] Initial Documentation

    Described the system of workflow for this repository

    * [#1] Initial Documentation

    Included a `.gitignore.` file in the repository and ignored `*.bak`
    files.

    * Revert "Initial commit"

    This reverts commit 8277676f7951ee7661424f8b715ed7cdb70a4a9f.

    * [#1] Initial Documentation

    Described the system of workflow for this repository
    Used proper styling to make the necessary instructions more visible

    * [#1] Initial Documentation

    Described the system of workflow for this repository
    Used proper styling to make the necessary instructions more visible
    Corrected punctuation marks

    * [#3] Integrating pull request reviews

    I resolved the problems by:
    	* Replacing the name `julien` with `vagrant` in the README.md
    file
    	* Removing the bold style in the `<summary> ... </summary> tag
    contents. I now have something that is has this format
    		```<summary>Header : description</summary>``

    * Revert "Integrating pull request reviews"

    * Created README.md file (#6)

    Resolves [#5]
    Closes [#1]
    This commit is an attempt to push back the README.md to the remote

    * Basic codebase functionality (#8)

    * Planned procedure for the monty program

    This is the algorithm for the monty program.
    It explains the maxim of the steps that the monty program uses for
    execution.

    * Created Makefile

    The Makefile facilitates maintainance of the codebasee
    * clean: To clean or unwanted files
    * all: To build the executable `monty`
    * betty_check: To check if codebase is `betty` compliant
    * spell_check: To check if codebase is English is grammatically correct
    * check: Run both `betty_check` and `spell_check`

    * Implemented basic codebase functionality

    * Code compiles safely without memory leaks
    * Opens file passed to it
    * Reads file line by line
    * Parses each line to get the first two words i.e opcode and argument
    * Prints the output to screen - To be turned into execute operation
    * Closes file on exit
    * Ends successfully without memory leaks

    * Updated monty.h to accomodate the new function 'execute'

    * Updated 'read_file.c' so that it calls the 'execute' function when appropriate

    * Updated Makefile so that it incoporates 'valgrind' for mememory check

    * Updated Makefile with documentation on how to use it

    * Created a new file 'execute.c' to house the execute() funtion

    * [#2] Prepared basic code functionalities

    I successfully:
    * Created a well-documented Makefile for the project
    * Created the basic functions that handle file reading
    	and parsing to select the opcodes and the arguements

    Note: I have not implemented the stack data structure, yet

    * First working model of monty (#9)

    * Planned procedure for the monty program

    This is the algorithm for the monty program.
    It explains the maxim of the steps that the monty program uses for
    execution.

    * Created Makefile

    The Makefile facilitates maintainance of the codebasee
    * clean: To clean or unwanted files
    * all: To build the executable `monty`
    * betty_check: To check if codebase is `betty` compliant
    * spell_check: To check if codebase is English is grammatically correct
    * check: Run both `betty_check` and `spell_check`

    * Implemented basic codebase functionality

    * Code compiles safely without memory leaks
    * Opens file passed to it
    * Reads file line by line
    * Parses each line to get the first two words i.e opcode and argument
    * Prints the output to screen - To be turned into execute operation
    * Closes file on exit
    * Ends successfully without memory leaks

    * Updated monty.h to accomodate the new function 'execute'

    * Updated 'read_file.c' so that it calls the 'execute' function when appropriate

    * Updated Makefile so that it incoporates 'valgrind' for mememory check

    * Updated Makefile with documentation on how to use it

    * Created a new file 'execute.c' to house the execute() funtion

    * [#2] Prepared basic code functionalities

    I successfully:
    * Created a well-documented Makefile for the project
    * Created the basic functions that handle file reading
    	and parsing to select the opcodes and the arguements

    Note: I have not implemented the stack data structure, yet

    * [#2] Refactored codebase and added two opcodes

    - Gitignore : ignores both *.bak and valgrind-out.txt log file
    - Makefile: Takes note of the new file structure espcially, opcodes and
    	utility directories
    - README.md : Warns users not to exceed INT_MIN - INT_MAX range as
    	opcode arguments to opcoes like push, pall, etc.
    - main.c : Takes not of the new codebase structure
    - monty.h : Added extra data types, header files and prototypes
    - WORKFLOW.md : Corrected patter of pulling from remote branch

    Removed unwanted files they are now replaced by new ones in a different
    	directory -> utility:
    - execute.c
    - parse_line.c
    - read_file.c

    Added new files:
    - opcodes directory:
    	* _pall.c : implements a function to print all elements of stack
    	* _push.c : implements a function to add element to top of stack

    - utility directory:
    	* execute.c : executes instructions
    	* free_stack.c : frees stack as clean up action
    	* get_int.c : safely fetches arguments to opcodes if any
    	* get_opcode_func.c : fetches the opcode from a line in a bytecode
    		file

    * [#2] Modified codebase and added 'pint' opcode

    Modification:
    - Makefile : that betty_check target now uses automatic variables
    - monty.h : now accomodates the new opcode 'pint'
    - utility/get_opcode_func.c : now accomodates the new opcode 'pint'

    New files:
    - opcodes/_pint.c : implements the 'pint' opcode

    * [#2] Modified codebase and added 'pop' opcode

        Modification:
        - Makefile : that betty_check target now uses automatic variables
        - monty.h : now accomodates the new opcode 'pop'
        - utility/get_opcode_func.c : now accomodates the new opcode 'pop'

        New files:
        - opcodes/_pop.c : implements the 'pop' opcode

    * Successfully implemented Basic opcodes (#13)

    * Planned procedure for the monty program

    This is the algorithm for the monty program.
    It explains the maxim of the steps that the monty program uses for
    execution.

    * Created Makefile

    The Makefile facilitates maintainance of the codebasee
    * clean: To clean or unwanted files
    * all: To build the executable `monty`
    * betty_check: To check if codebase is `betty` compliant
    * spell_check: To check if codebase is English is grammatically correct
    * check: Run both `betty_check` and `spell_check`

    * Implemented basic codebase functionality

    * Code compiles safely without memory leaks
    * Opens file passed to it
    * Reads file line by line
    * Parses each line to get the first two words i.e opcode and argument
    * Prints the output to screen - To be turned into execute operation
    * Closes file on exit
    * Ends successfully without memory leaks

    * Updated monty.h to accomodate the new function 'execute'

    * Updated 'read_file.c' so that it calls the 'execute' function when appropriate

    * Updated Makefile so that it incoporates 'valgrind' for mememory check

    * Updated Makefile with documentation on how to use it

    * Created a new file 'execute.c' to house the execute() funtion

    * [#2] Prepared basic code functionalities

    I successfully:
    * Created a well-documented Makefile for the project
    * Created the basic functions that handle file reading
    	and parsing to select the opcodes and the arguements

    Note: I have not implemented the stack data structure, yet

    * [#2] Refactored codebase and added two opcodes

    - Gitignore : ignores both *.bak and valgrind-out.txt log file
    - Makefile: Takes note of the new file structure espcially, opcodes and
    	utility directories
    - README.md : Warns users not to exceed INT_MIN - INT_MAX range as
    	opcode arguments to opcoes like push, pall, etc.
    - main.c : Takes not of the new codebase structure
    - monty.h : Added extra data types, header files and prototypes
    - WORKFLOW.md : Corrected patter of pulling from remote branch

    Removed unwanted files they are now replaced by new ones in a different
    	directory -> utility:
    - execute.c
    - parse_line.c
    - read_file.c

    Added new files:
    - opcodes directory:
    	* _pall.c : implements a function to print all elements of stack
    	* _push.c : implements a function to add element to top of stack

    - utility directory:
    	* execute.c : executes instructions
    	* free_stack.c : frees stack as clean up action
    	* get_int.c : safely fetches arguments to opcodes if any
    	* get_opcode_func.c : fetches the opcode from a line in a bytecode
    		file

    * [#2] Modified codebase and added 'pint' opcode

    Modification:
    - Makefile : that betty_check target now uses automatic variables
    - monty.h : now accomodates the new opcode 'pint'
    - utility/get_opcode_func.c : now accomodates the new opcode 'pint'

    New files:
    - opcodes/_pint.c : implements the 'pint' opcode

    * [#2] Modified codebase and added 'pop' opcode

        Modification:
        - Makefile : that betty_check target now uses automatic variables
        - monty.h : now accomodates the new opcode 'pop'
        - utility/get_opcode_func.c : now accomodates the new opcode 'pop'

        New files:
        - opcodes/_pop.c : implements the 'pop' opcode

    * [#10] Implemented the `swap` opcode

    Modification:
    - monty.h : take note of the new function for swapping nodes

    - utility/
    	*get_opcode_func.c - Included the new opcode in the instruction
    		set
    - opcodes/
    	* _push.c : Corrected the function so that it properly assigns the
    		`prev` data of a node

    New file:
    - opcodes/
    	* _swap.c : Implements the `swap` opcode

    * [#11] Implement the `add` opcode

    Modifications:
    - monty.h : include prototype of new function for 'add' opcode

    - utility/
    	* get_opcode_func.c : included 'add' opcode in instrcutions

    New files:
    - opcodes/
    	* _add.c : implement the 'add' opcode

    * [#12] Implement the `nop` opcode

    This opcode doesn't do anyting

    Modification:
    - monty.h : included prototype of the new function that handles this
    		opcode
    - utility/
    	* get_opcode_func.c : Added new opcode to instructions

    New files:
    - opcodes/
    	* _nop.c : implements the `nop` opcode

    * Create the first release (#17)

    * [#15] Put the markdown files in Documentation/

    All the Markdown files except `README.md` file is moved to the directory
    named `Documentation`.
    These files include :
    - AUTHORS.md
    - PROCEDURE.md
    - WORKFLOW.md

    * [#7] Bug in README.md documentation

    Modifications:
    - Removed grammatical error
    - Added two Markdown badges to README.md
    	* Maintainer
    	* Git

    * [#14] Adding badges to READM.md

    Removed the `Maintainer` badge and added a generic badge.

    * [#14] Modified the Maintainer badge

    Using a different `shields.io` bade to do the same task of creating
    the `Maintainer` badge.

    * [#14] Corrected badge URL

    Modified the badge so that it displays an `svg` image.

    * [#14] Added new badge

    New badges:
    - `made-with-C`
    - `realase - version`

    * [#14] Added new badges

    Modification:
    - `release` badge

    New:
    - `contributors` badge

    * [#14] Badge modifcation

    Modifications:
    - Moved the `Git` badge to the acknowledgement section of README.md

    New:
    - `GITHUB` badge at the acknowledgement section

    * [#14] README.md modification

    Changed the header of the README.md

    * [#14] More acknowledgements

    Modification:
    - Github badge
    New badges:
    - ALX badge

    * [#14] Modification of Badges in README.md

    Modification:
    - ALX badge

* [#25] Refactoring patches

Implemented a new function to handle:
	- get_node_at : fetches the node at a particular position

(cherry picked from commit f908e0ce33e31fc4da78f5b8b7029fec08392e83)

* [#25] Corrected phony targets of Makefile

The phony target 'read_and debug' had no rule, which was a bug.
It has been updated to 'ready_and_debug', which has a rule.

* [#25] New methods in Makefile

Updated Makefile so that the targets that compile the program configures
the executable. This will make the executable 'monty' available all
across the device -- not only this directory.

It was achieved by moving the executable binary to the /usr/bin
directory

* [#25] Updated Documentation of usage

Explained thenew way using this program 'monty'.
Empahisizing that 'monty' can be used anywhere in the machine once
installed.

* [#23] Created configuration file

The configuration file 'config.sh' is called by make according to the
Makefile. It moves the executable binary file to the '/usr/bin'
directory where it will be accessible throught the machine.

It equally ensures that the binary file is not left lying around.

* [#24] New changes

* Revert 26 ebuube/25 implement new opcodes (#27)

* New features for Monty (#26)

* [#1] Initial Documentation

Created an AUTHORS.md file
Added the name of current contributors.

* [#1] Initial Documentation

Described the system of workflow for this repository

* [#1] Initial Documentation

Included a `.gitignore.` file in the repository and ignored `*.bak`
files.

* Revert "Initial commit"

This reverts commit 8277676f7951ee7661424f8b715ed7cdb70a4a9f.

* [#1] Initial Documentation

Described the system of workflow for this repository
Used proper styling to make the necessary instructions more visible

* [#1] Initial Documentation

Described the system of workflow for this repository
Used proper styling to make the necessary instructions more visible
Corrected punctuation marks

* [#3] Integrating pull request reviews

I resolved the problems by:
	* Replacing the name `julien` with `vagrant` in the README.md
file
	* Removing the bold style in the `<summary> ... </summary> tag
contents. I now have something that is has this format
		```<summary>Header : description</summary>``

* Revert "Integrating pull request reviews"

* Created README.md file (#6)

Resolves [#5]
Closes [#1]
This commit is an attempt to push back the README.md to the remote

* Basic codebase functionality (#8)

* Planned procedure for the monty program

This is the algorithm for the monty program.
It explains the maxim of the steps that the monty program uses for
execution.

* Created Makefile

The Makefile facilitates maintainance of the codebasee
* clean: To clean or unwanted files
* all: To build the executable `monty`
* betty_check: To check if codebase is `betty` compliant
* spell_check: To check if codebase is English is grammatically correct
* check: Run both `betty_check` and `spell_check`

* Implemented basic codebase functionality

* Code compiles safely without memory leaks
* Opens file passed to it
* Reads file line by line
* Parses each line to get the first two words i.e opcode and argument
* Prints the output to screen - To be turned into execute operation
* Closes file on exit
* Ends successfully without memory leaks

* Updated monty.h to accomodate the new function 'execute'

* Updated 'read_file.c' so that it calls the 'execute' function when appropriate

* Updated Makefile so that it incoporates 'valgrind' for mememory check

* Updated Makefile with documentation on how to use it

* Created a new file 'execute.c' to house the execute() funtion

* [#2] Prepared basic code functionalities

I successfully:
* Created a well-documented Makefile for the project
* Created the basic functions that handle file reading
	and parsing to select the opcodes and the arguements

Note: I have not implemented the stack data structure, yet

* First working model of monty (#9)

* Planned procedure for the monty program

This is the algorithm for the monty program.
It explains the maxim of the steps that the monty program uses for
execution.

* Created Makefile

The Makefile facilitates maintainance of the codebasee
* clean: To clean or unwanted files
* all: To build the executable `monty`
* betty_check: To check if codebase is `betty` compliant
* spell_check: To check if codebase is English is grammatically correct
* check: Run both `betty_check` and `spell_check`

* Implemented basic codebase functionality

* Code compiles safely without memory leaks
* Opens file passed to it
* Reads file line by line
* Parses each line to get the first two words i.e opcode and argument
* Prints the output to screen - To be turned into execute operation
* Closes file on exit
* Ends successfully without memory leaks

* Updated monty.h to accomodate the new function 'execute'

* Updated 'read_file.c' so that it calls the 'execute' function when appropriate

* Updated Makefile so that it incoporates 'valgrind' for mememory check

* Updated Makefile with documentation on how to use it

* Created a new file 'execute.c' to house the execute() funtion

* [#2] Prepared basic code functionalities

I successfully:
* Created a well-documented Makefile for the project
* Created the basic functions that handle file reading
	and parsing to select the opcodes and the arguements

Note: I have not implemented the stack data structure, yet

* [#2] Refactored codebase and added two opcodes

- Gitignore : ignores both *.bak and valgrind-out.txt log file
- Makefile: Takes note of the new file structure espcially, opcodes and
	utility directories
- README.md : Warns users not to exceed INT_MIN - INT_MAX range as
	opcode arguments to opcoes like push, pall, etc.
- main.c : Takes not of the new codebase structure
- monty.h : Added extra data types, header files and prototypes
- WORKFLOW.md : Corrected patter of pulling from remote branch

Removed unwanted files they are now replaced by new ones in a different
	directory -> utility:
- execute.c
- parse_line.c
- read_file.c

Added new files:
- opcodes directory:
	* _pall.c : implements a function to print all elements of stack
	* _push.c : implements a function to add element to top of stack

- utility directory:
	* execute.c : executes instructions
	* free_stack.c : frees stack as clean up action
	* get_int.c : safely fetches arguments to opcodes if any
	* get_opcode_func.c : fetches the opcode from a line in a bytecode
		file

* [#2] Modified codebase and added 'pint' opcode

Modification:
- Makefile : that betty_check target now uses automatic variables
- monty.h : now accomodates the new opcode 'pint'
- utility/get_opcode_func.c : now accomodates the new opcode 'pint'

New files:
- opcodes/_pint.c : implements the 'pint' opcode

* [#2] Modified codebase and added 'pop' opcode

    Modification:
    - Makefile : that betty_check target now uses automatic variables
    - monty.h : now accomodates the new opcode 'pop'
    - utility/get_opcode_func.c : now accomodates the new opcode 'pop'

    New files:
    - opcodes/_pop.c : implements the 'pop' opcode

* Successfully implemented Basic opcodes (#13)

* Planned procedure for the monty program

This is the algorithm for the monty program.
It explains the maxim of the steps that the monty program uses for
execution.

* Created Makefile

The Makefile facilitates maintainance of the codebasee
* clean: To clean or unwanted files
* all: To build the executable `monty`
* betty_check: To check if codebase is `betty` compliant
* spell_check: To check if codebase is English is grammatically correct
* check: Run both `betty_check` and `spell_check`

* Implemented basic codebase functionality

* Code compiles safely without memory leaks
* Opens file passed to it
* Reads file line by line
* Parses each line to get the first two words i.e opcode and argument
* Prints the output to screen - To be turned into execute operation
* Closes file on exit
* Ends successfully without memory leaks

* Updated monty.h to accomodate the new function 'execute'

* Updated 'read_file.c' so that it calls the 'execute' function when appropriate

* Updated Makefile so that it incoporates 'valgrind' for mememory check

* Updated Makefile with documentation on how to use it

* Created a new file 'execute.c' to house the execute() funtion

* [#2] Prepared basic code functionalities

I successfully:
* Created a well-documented Makefile for the project
* Created the basic functions that handle file reading
	and parsing to select the opcodes and the arguements

Note: I have not implemented the stack data structure, yet

* [#2] Refactored codebase and added two opcodes

- Gitignore : ignores both *.bak and valgrind-out.txt log file
- Makefile: Takes note of the new file structure espcially, opcodes and
	utility directories
- README.md : Warns users not to exceed INT_MIN - INT_MAX range as
	opcode arguments to opcoes like push, pall, etc.
- main.c : Takes not of the new codebase structure
- monty.h : Added extra data types, header files and prototypes
- WORKFLOW.md : Corrected patter of pulling from remote branch

Removed unwanted files they are now replaced by new ones in a different
	directory -> utility:
- execute.c
- parse_line.c
- read_file.c

Added new files:
- opcodes directory:
	* _pall.c : implements a function to print all elements of stack
	* _push.c : implements a function to add element to top of stack

- utility directory:
	* execute.c : executes instructions
	* free_stack.c : frees stack as clean up action
	* get_int.c : safely fetches arguments to opcodes if any
	* get_opcode_func.c : fetches the opcode from a line in a bytecode
		file

* [#2] Modified codebase and added 'pint' opcode

Modification:
- Makefile : that betty_check target now uses automatic variables
- monty.h : now accomodates the new opcode 'pint'
- utility/get_opcode_func.c : now accomodates the new opcode 'pint'

New files:
- opcodes/_pint.c : implements the 'pint' opcode

* [#2] Modified codebase and added 'pop' opcode

    Modification:
    - Makefile : that betty_check target now uses automatic variables
    - monty.h : now accomodates the new opcode 'pop'
    - utility/get_opcode_func.c : now accomodates the new opcode 'pop'

    New files:
    - opcodes/_pop.c : implements the 'pop' opcode

* [#10] Implemented the `swap` opcode

Modification:
- monty.h : take note of the new function for swapping nodes

- utility/
	*get_opcode_func.c - Included the new opcode in the instruction
		set
- opcodes/
	* _push.c : Corrected the function so that it properly assigns the
		`prev` data of a node

New file:
- opcodes/
	* _swap.c : Implements the `swap` opcode

* [#11] Implement the `add` opcode

Modifications:
- monty.h : include prototype of new function for 'add' opcode

- utility/
	* get_opcode_func.c : included 'add' opcode in instrcutions

New files:
- opcodes/
	* _add.c : implement the 'add' opcode

* [#12] Implement the `nop` opcode

This opcode doesn't do anyting

Modification:
- monty.h : included prototype of the new function that handles this
		opcode
- utility/
	* get_opcode_func.c : Added new opcode to instructions

New files:
- opcodes/
	* _nop.c : implements the `nop` opcode

* Create the first release (#17)

* [#15] Put the markdown files in Documentation/

All the Markdown files except `README.md` file is moved to the directory
named `Documentation`.
These files include :
- AUTHORS.md
- PROCEDURE.md
- WORKFLOW.md

* [#7] Bug in README.md documentation

Modifications:
- Removed grammatical error
- Added two Markdown badges to README.md
	* Maintainer
	* Git

* [#14] Adding badges to READM.md

Removed the `Maintainer` badge and added a generic badge.

* [#14] Modified the Maintainer badge

Using a different `shields.io` bade to do the same task of creating
the `Maintainer` badge.

* [#14] Corrected badge URL

Modified the badge so that it displays an `svg` image.

* [#14] Added new badge

New badges:
- `made-with-C`
- `realase - version`

* [#14] Added new badges

Modification:
- `release` badge

New:
- `contributors` badge

* [#14] Badge modifcation

Modifications:
- Moved the `Git` badge to the acknowledgement section of README.md

New:
- `GITHUB` badge at the acknowledgement section

* [#14] README.md modification

Changed the header of the README.md

* [#14] More acknowledgements

Modification:
- Github badge
New badges:
- ALX badge

* [#14] Modification of Badges in README.md

Modification:
- ALX badge

* Squashed commit of the following:

commit 3be87dddb84b4dd7b7d8aff5222b2ff8df96aafd
Author: Ebube Gideon Onwuta <111176684+Ebuube@users.noreply.github.com>
Date:   Tue Jun 27 07:49:38 2023 +0100

    Hotfix 19 add license (#21)

    * Added  LICENSE to proposed release

    This license expresses the condition for using this software product.

    License type: MIT

    * Update LICENSE

    Corrected the order of the names for the License bearer.

commit 74115f0c2402b9407aacd147b87447b4162539ab
Author: Ebube Gideon Onwuta <111176684+Ebuube@users.noreply.github.com>
Date:   Tue Jun 27 06:39:01 2023 +0100

    [#19] Prerelease hotfix (#20)

    Modification:
    - README.md : Linked the `Git` acknowledgement badge to the `git` website ->
    https://git-scm.com/

    - opcodes/
    	* Modified the `nop` opcode function so that it takes not of the unused
    		parameters

commit 871877670311addca968c30ef4869916bd046a1f
Author: Ebube Gideon Onwuta <111176684+Ebuube@users.noreply.github.com>
Date:   Tue Jun 27 06:19:38 2023 +0100

    First Major release of monty (#18)

    * [#1] Initial Documentation

    Created an AUTHORS.md file
    Added the name of current contributors.

    * [#1] Initial Documentation

    Described the system of workflow for this repository

    * [#1] Initial Documentation

    Included a `.gitignore.` file in the repository and ignored `*.bak`
    files.

    * Revert "Initial commit"

    This reverts commit 8277676f7951ee7661424f8b715ed7cdb70a4a9f.

    * [#1] Initial Documentation

    Described the system of workflow for this repository
    Used proper styling to make the necessary instructions more visible

    * [#1] Initial Documentation

    Described the system of workflow for this repository
    Used proper styling to make the necessary instructions more visible
    Corrected punctuation marks

    * [#3] Integrating pull request reviews

    I resolved the problems by:
    	* Replacing the name `julien` with `vagrant` in the README.md
    file
    	* Removing the bold style in the `<summary> ... </summary> tag
    contents. I now have something that is has this format
    		```<summary>Header : description</summary>``

    * Revert "Integrating pull request reviews"

    * Created README.md file (#6)

    Resolves [#5]
    Closes [#1]
    This commit is an attempt to push back the README.md to the remote

    * Basic codebase functionality (#8)

    * Planned procedure for the monty program

    This is the algorithm for the monty program.
    It explains the maxim of the steps that the monty program uses for
    execution.

    * Created Makefile

    The Makefile facilitates maintainance of the codebasee
    * clean: To clean or unwanted files
    * all: To build the executable `monty`
    * betty_check: To check if codebase is `betty` compliant
    * spell_check: To check if codebase is English is grammatically correct
    * check: Run both `betty_check` and `spell_check`

    * Implemented basic codebase functionality

    * Code compiles safely without memory leaks
    * Opens file passed to it
    * Reads file line by line
    * Parses each line to get the first two words i.e opcode and argument
    * Prints the output to screen - To be turned into execute operation
    * Closes file on exit
    * Ends successfully without memory leaks

    * Updated monty.h to accomodate the new function 'execute'

    * Updated 'read_file.c' so that it calls the 'execute' function when appropriate

    * Updated Makefile so that it incoporates 'valgrind' for mememory check

    * Updated Makefile with documentation on how to use it

    * Created a new file 'execute.c' to house the execute() funtion

    * [#2] Prepared basic code functionalities

    I successfully:
    * Created a well-documented Makefile for the project
    * Created the basic functions that handle file reading
    	and parsing to select the opcodes and the arguements

    Note: I have not implemented the stack data structure, yet

    * First working model of monty (#9)

    * Planned procedure for the monty program

    This is the algorithm for the monty program.
    It explains the maxim of the steps that the monty program uses for
    execution.

    * Created Makefile

    The Makefile facilitates maintainance of the codebasee
    * clean: To clean or unwanted files
    * all: To build the executable `monty`
    * betty_check: To check if codebase is `betty` compliant
    * spell_check: To check if codebase is English is grammatically correct
    * check: Run both `betty_check` and `spell_check`

    * Implemented basic codebase functionality

    * Code compiles safely without memory leaks
    * Opens file passed to it
    * Reads file line by line
    * Parses each line to get the first two words i.e opcode and argument
    * Prints the output to screen - To be turned into execute operation
    * Closes file on exit
    * Ends successfully without memory leaks

    * Updated monty.h to accomodate the new function 'execute'

    * Updated 'read_file.c' so that it calls the 'execute' function when appropriate

    * Updated Makefile so that it incoporates 'valgrind' for mememory check

    * Updated Makefile with documentation on how to use it

    * Created a new file 'execute.c' to house the execute() funtion

    * [#2] Prepared basic code functionalities

    I successfully:
    * Created a well-documented Makefile for the project
    * Created the basic functions that handle file reading
    	and parsing to select the opcodes and the arguements

    Note: I have not implemented the stack data structure, yet

    * [#2] Refactored codebase and added two opcodes

    - Gitignore : ignores both *.bak and valgrind-out.txt log file
    - Makefile: Takes note of the new file structure espcially, opcodes and
    	utility directories
    - README.md : Warns users not to exceed INT_MIN - INT_MAX range as
    	opcode arguments to opcoes like push, pall, etc.
    - main.c : Takes not of the new codebase structure
    - monty.h : Added extra data types, header files and prototypes
    - WORKFLOW.md : Corrected patter of pulling from remote branch

    Removed unwanted files they are now replaced by new ones in a different
    	directory -> utility:
    - execute.c
    - parse_line.c
    - read_file.c

    Added new files:
    - opcodes directory:
    	* _pall.c : implements a function to print all elements of stack
    	* _push.c : implements a function to add element to top of stack

    - utility directory:
    	* execute.c : executes instructions
    	* free_stack.c : frees stack as clean up action
    	* get_int.c : safely fetches arguments to opcodes if any
    	* get_opcode_func.c : fetches the opcode from a line in a bytecode
    		file

    * [#2] Modified codebase and added 'pint' opcode

    Modification:
    - Makefile : that betty_check target now uses automatic variables
    - monty.h : now accomodates the new opcode 'pint'
    - utility/get_opcode_func.c : now accomodates the new opcode 'pint'

    New files:
    - opcodes/_pint.c : implements the 'pint' opcode

    * [#2] Modified codebase and added 'pop' opcode

        Modification:
        - Makefile : that betty_check target now uses automatic variables
        - monty.h : now accomodates the new opcode 'pop'
        - utility/get_opcode_func.c : now accomodates the new opcode 'pop'

        New files:
        - opcodes/_pop.c : implements the 'pop' opcode

    * Successfully implemented Basic opcodes (#13)

    * Planned procedure for the monty program

    This is the algorithm for the monty program.
    It explains the maxim of the steps that the monty program uses for
    execution.

    * Created Makefile

    The Makefile facilitates maintainance of the codebasee
    * clean: To clean or unwanted files
    * all: To build the executable `monty`
    * betty_check: To check if codebase is `betty` compliant
    * spell_check: To check if codebase is English is grammatically correct
    * check: Run both `betty_check` and `spell_check`

    * Implemented basic codebase functionality

    * Code compiles safely without memory leaks
    * Opens file passed to it
    * Reads file line by line
    * Parses each line to get the first two words i.e opcode and argument
    * Prints the output to screen - To be turned into execute operation
    * Closes file on exit
    * Ends successfully without memory leaks

    * Updated monty.h to accomodate the new function 'execute'

    * Updated 'read_file.c' so that it calls the 'execute' function when appropriate

    * Updated Makefile so that it incoporates 'valgrind' for mememory check

    * Updated Makefile with documentation on how to use it

    * Created a new file 'execute.c' to house the execute() funtion

    * [#2] Prepared basic code functionalities

    I successfully:
    * Created a well-documented Makefile for the project
    * Created the basic functions that handle file reading
    	and parsing to select the opcodes and the arguements

    Note: I have not implemented the stack data structure, yet

    * [#2] Refactored codebase and added two opcodes

    - Gitignore : ignores both *.bak and valgrind-out.txt log file
    - Makefile: Takes note of the new file structure espcially, opcodes and
    	utility directories
    - README.md : Warns users not to exceed INT_MIN - INT_MAX range as
    	opcode arguments to opcoes like push, pall, etc.
    - main.c : Takes not of the new codebase structure
    - monty.h : Added extra data types, header files and prototypes
    - WORKFLOW.md : Corrected patter of pulling from remote branch

    Removed unwanted files they are now replaced by new ones in a different
    	directory -> utility:
    - execute.c
    - parse_line.c
    - read_file.c

    Added new files:
    - opcodes directory:
    	* _pall.c : implements a function to print all elements of stack
    	* _push.c : implements a function to add element to top of stack

    - utility directory:
    	* execute.c : executes instructions
    	* free_stack.c : frees stack as clean up action
    	* get_int.c : safely fetches arguments to opcodes if any
    	* get_opcode_func.c : fetches the opcode from a line in a bytecode
    		file

    * [#2] Modified codebase and added 'pint' opcode

    Modification:
    - Makefile : that betty_check target now uses automatic variables
    - monty.h : now accomodates the new opcode 'pint'
    - utility/get_opcode_func.c : now accomodates the new opcode 'pint'

    New files:
    - opcodes/_pint.c : implements the 'pint' opcode

    * [#2] Modified codebase and added 'pop' opcode

        Modification:
        - Makefile : that betty_check target now uses automatic variables
        - monty.h : now accomodates the new opcode 'pop'
        - utility/get_opcode_func.c : now accomodates the new opcode 'pop'

        New files:
        - opcodes/_pop.c : implements the 'pop' opcode

    * [#10] Implemented the `swap` opcode

    Modification:
    - monty.h : take note of the new function for swapping nodes

    - utility/
    	*get_opcode_func.c - Included the new opcode in the instruction
    		set
    - opcodes/
    	* _push.c : Corrected the function so that it properly assigns the
    		`prev` data of a node

    New file:
    - opcodes/
    	* _swap.c : Implements the `swap` opcode

    * [#11] Implement the `add` opcode

    Modifications:
    - monty.h : include prototype of new function for 'add' opcode

    - utility/
    	* get_opcode_func.c : included 'add' opcode in instrcutions

    New files:
    - opcodes/
    	* _add.c : implement the 'add' opcode

    * [#12] Implement the `nop` opcode

    This opcode doesn't do anyting

    Modification:
    - monty.h : included prototype of the new function that handles this
    		opcode
    - utility/
    	* get_opcode_func.c : Added new opcode to instructions

    New files:
    - opcodes/
    	* _nop.c : implements the `nop` opcode

    * Create the first release (#17)

    * [#15] Put the markdown files in Documentation/

    All the Markdown files except `README.md` file is moved to the directory
    named `Documentation`.
    These files include :
    - AUTHORS.md
    - PROCEDURE.md
    - WORKFLOW.md

    * [#7] Bug in README.md documentation

    Modifications:
    - Removed grammatical error
    - Added two Markdown badges to README.md
    	* Maintainer
    	* Git

    * [#14] Adding badges to READM.md

    Removed the `Maintainer` badge and added a generic badge.

    * [#14] Modified the Maintainer badge

    Using a different `shields.io` bade to do the same task of creating
    the `Maintainer` badge.

    * [#14] Corrected badge URL

    Modified the badge so that it displays an `svg` image.

    * [#14] Added new badge

    New badges:
    - `made-with-C`
    - `realase - version`

    * [#14] Added new badges

    Modification:
    - `release` badge

    New:
    - `contributors` badge

    * [#14] Badge modifcation

    Modifications:
    - Moved the `Git` badge to the acknowledgement section of README.md

    New:
    - `GITHUB` badge at the acknowledgement section

    * [#14] README.md modification

    Changed the header of the README.md

    * [#14] More acknowledgements

    Modification:
    - Github badge
    New badges:
    - ALX badge

    * [#14] Modification of Badges in README.md

    Modification:
    - ALX badge

* [#25] Refactoring patches

Implemented a new function to handle:
	- get_node_at : fetches the node at a particular position

(cherry picked from commit f908e0ce33e31fc4da78f5b8b7029fec08392e83)

* [#25] Corrected phony targets of Makefile

The phony target 'read_and debug' had no rule, which was a bug.
It has been updated to 'ready_and_debug', which has a rule.

* [#25] New methods in Makefile

Updated Makefile so that the targets that compile the program configures
the executable. This will make the executable 'monty' available all
across the device -- not only this directory.

It was achieved by moving the executable binary to the /usr/bin
directory

* [#25] Updated Documentation of usage

Explained thenew way using this program 'monty'.
Empahisizing that 'monty' can be used anywhere in the machine once
installed.

* [#23] Created configuration file

The configuration file 'config.sh' is called by make according to the
Makefile. It moves the executable binary file to the '/usr/bin'
directory where it will be accessible throught the machine.

It equally ensures that the binary file is not left lying around.

* [#24] New changes

* [#22] Made monty accept negative numbers

Before now, monty reports an eror for negative numbers. This has been
corrected in this commit.

* [#22] Updating monty

This commit made changes that ensures monty doesn't accept invalid
strings as integers. It also makes sure that only one file is passed to
monty.

* [#25] Implement new opcodes and commenting feature

These new opcodes were implemented
* sub
* div
* mul
* mod

Added the commenting feature so that any line that begins with an hash
'#' is treated as a comment.

* [#25] Implemented the 'pchar' opcode

This involves updating the README.md to tell about such feature.

* [#25] Implement the 'pstr' opcode

This commit implements the `pstr` opcode and updated README.md with
documentation on how to use it.

* [#25] Refactored functions & added rotl opcode

Some changes were made in the way these opcodes behave. Instead of
calling a get_node_at() function to fetch the second node, it removes
the need of calling another function by directly determining if stack is
up to the required length. This increases the speed of the program.

These functions were refactored: _add(), _div(), _mod(), _mul(), _sub()
and _swap.

New opcode 'rotl' was implemented with the _rotl() function.

The change was properly documented in the README.md

* [#25] Refactored functions & added rotl opcode

Some changes were made in the way these opcodes behave. Instead of
calling a get_node_at() function to fetch the second node, it removes
the need of calling another function by directly determining if stack is
up to the required length. This increases the speed of the program.

These functions were refactored: _add(), _div(), _mod(), _mul(), _sub()
and _swap.

New opcode 'rotl' was implemented with the _rotl() function.

The change was properly documented in the README.md

* [#25] Removed previous version of files

* [#25] Implemented the 'rotr' opcode

Created the function _rotr() for this opcode and updated monty.h
and utility/get_opcode_func.c

* [#25] Implemented the 'rotr' opcode

Created the function _rotr() for this opcode and updated monty.h
and utility/get_opcode_func.c

Equally update README.md with documentation on how to use it.

* [#25] Implemented the 'stack' and 'queue' opcodes

The 'stack' opcode sets the data format to 'FIFO' which is the progams's
default state.
The 'queue' opcode sets the data format to 'LIFO'.

Updated the documentation in the README.md

* [#25] Implemented the 'stack' and 'queue' opcodes

The 'stack' opcode sets the data format to 'LIFO' which is the progams's
default state.
The 'queue' opcode sets the data format to 'FIFO'.

Updated the documentation in the README.md

* Revert "New features for Monty (#26)"

This reverts commit 415fe0a2324436215bbb99aa955541eb0c1de258.

* Ebuube/25 implement new opcodes (#28)

* [#22] Made monty accept negative numbers

Before now, monty reports an eror for negative numbers. This has been
corrected in this commit.

* [#22] Updating monty

This commit made changes that ensures monty doesn't accept invalid
strings as integers. It also makes sure that only one file is passed to
monty.

* [#25] Implement new opcodes and commenting feature

These new opcodes were implemented
* sub
* div
* mul
* mod

Added the commenting feature so that any line that begins with an hash
'#' is treated as a comment.

* [#25] Implemented the 'pchar' opcode

This involves updating the README.md to tell about such feature.

* [#25] Implement the 'pstr' opcode

This commit implements the `pstr` opcode and updated README.md with
documentation on how to use it.

* [#25] Refactored functions & added rotl opcode

Some changes were made in the way these opcodes behave. Instead of
calling a get_node_at() function to fetch the second node, it removes
the need of calling another function by directly determining if stack is
up to the required length. This increases the speed of the program.

These functions were refactored: _add(), _div(), _mod(), _mul(), _sub()
and _swap.

New opcode 'rotl' was implemented with the _rotl() function.

The change was properly documented in the README.md

* [#25] Refactored functions & added rotl opcode

Some changes were made in the way these opcodes behave. Instead of
calling a get_node_at() function to fetch the second node, it removes
the need of calling another function by directly determining if stack is
up to the required length. This increases the speed of the program.

These functions were refactored: _add(), _div(), _mod(), _mul(), _sub()
and _swap.

New opcode 'rotl' was implemented with the _rotl() function.

The change was properly documented in the README.md

* [#25] Removed previous version of files

* [#25] Implemented the 'rotr' opcode

Created the function _rotr() for this opcode and updated monty.h
and utility/get_opcode_func.c

* [#25] Implemented the 'rotr' opcode

Created the function _rotr() for this opcode and updated monty.h
and utility/get_opcode_func.c

Equally update README.md with documentation on how to use it.

* [#25] Implemented the 'stack' and 'queue' opcodes

The 'stack' opcode sets the data format to 'FIFO' which is the progams's
default state.
The 'queue' opcode sets the data format to 'LIFO'.

Updated the documentation in the README.md

* [#25] Implemented the 'stack' and 'queue' opcodes

The 'stack' opcode sets the data format to 'LIFO' which is the progams's
default state.
The 'queue' opcode sets the data format to 'FIFO'.

Updated the documentation in the README.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant