English Architectural unit calculator
Enter numbers as fractional or decimal inches (Ex. 36.75) OR
enter numbers as feet and inches seperated by a apostrophe ' (Ex. 1'3) OR
enter numbers as decimal feet with apostrophe (Ex. 13.75').
You may optionally use the colon or semi-colon instead of an apostrophe.
Inch fraction parts are seperated by at least one space (Ex. 1 1/2").
Inches marks are optional, white space is ignored.
Enter expressions as number operator number (ex. 1'6+7'9).
Valid operators are plus (+) minus (-) and multiply (*).
You can achieve division by multiplying by the inverse of the denominator
(Ex. 12/4 == 12*1/4 read "one quarter of twelve").
Multiplication is always done inches x inches
(Ex. 1*1=1, 1*1'=1', but 1'*1'=144"=12').
You can chain any number of operations (Ex. 10+2*4-1'6+3/8).
Multiplication is always carried out before other operations
(Ex. 1'+7*3 = 1'+21" = 2'9").
Entering an empty line prompts to exit, type 'exit' to quit immediatly.
By default your last 25 calculations are written to a log file.
Type 'log' to show all log entries.
The 'ans' keyword represents the answer to the last calculation.
Type 'name = number' to assign a name to a number.
Type 'inches number' to see number in decimal inches.
Type 'feet number' to see number in decimal feet.
Type 'degrees number' to see radians converted to degrees (uses inches).
Type 'radians number' to see degrees converted to radians (uses inches).
Type 'help command' to get help for a specific command.
Refactored Archi.__repr__ code.
Refactored common unit conversion code into Calculator.get_num method.
Added degrees and radians commands.
Help command now takes optional command name arg, prints doc string.
Added Licence info.
Added alternate help text when readme.txt is not found.
Refactored code into Calculator object.
Added Log file.
Added commands for help, log review, and decimal foot/inches conversions.
Added named variables.
Add parentheses to force evaluation order (Ex. (2+3)*5=25 instead of 2+3*5=17).
The expression parser in the calculator object is too long and complicated,
break it into at least two parts.