Skip to content

Mh script #726

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

Closed
wants to merge 133 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
133 commits
Select commit Hold shift + click to select a range
58c059a
IMDB Scraper init
thamruicong May 22, 2023
722adb7
used urllib default python lib instead of external urllib3
thamruicong May 24, 2023
e8a82d7
forgot break statement
thamruicong May 24, 2023
231f99e
scrap movie info
thamruicong May 28, 2023
eb6dbde
print movies to console
thamruicong May 28, 2023
ee50518
complete IMDB Scraper
thamruicong May 28, 2023
93d4997
add EOL to scraper.py
thamruicong May 28, 2023
f09f9aa
Merge pull request #1 from thamruicong/IMDB_Movie_Scraper
thamruicong May 28, 2023
ec25241
update main README.md
thamruicong May 28, 2023
ce2c6a5
Merge pull request #2 from thamruicong/IMDB_Movie_Scraper
thamruicong May 28, 2023
d9faa47
init README.md
thamruicong May 28, 2023
885bd5b
add references to README.md
thamruicong May 28, 2023
751e907
Add BS4 reference to README.md
thamruicong May 28, 2023
3ceadba
Merge pull request #3 from thamruicong/IMDB_Movie_Scraper
thamruicong May 28, 2023
6776f3e
add .gitignore
thamruicong May 28, 2023
7bee30a
update references
thamruicong May 28, 2023
ea5f4be
update README
thamruicong May 31, 2023
8f69db6
sending messages
thamruicong May 31, 2023
2d14171
add /start command handler
thamruicong Jun 1, 2023
fa0923b
echo handler
thamruicong Jun 1, 2023
5629e8c
add dependencies
thamruicong Jun 1, 2023
339469c
refactor .py files
thamruicong Jun 7, 2023
91cc5e7
update gitignore
thamruicong Jun 7, 2023
a80ee66
google 2.0 handler
thamruicong Jun 7, 2023
5d513b2
refactor code layout, automate state values in a single file
thamruicong Jun 8, 2023
a9b7803
openai working test
thamruicong Jun 10, 2023
50cf886
remove .env
thamruicong Jun 10, 2023
b537a2d
google done
thamruicong Jun 10, 2023
1685e59
chatbot conversation handler
thamruicong Jun 11, 2023
4a609bd
.gitignore python boilerplate
thamruicong Jul 15, 2023
400c6c0
Add python requirements
thamruicong Jul 15, 2023
2d336cc
Update instructions
thamruicong Jul 15, 2023
9a6efc9
Update requirements.txt
thamruicong Jul 15, 2023
4ccf71c
Stash
thamruicong Jul 15, 2023
4623e6e
Refactor handlers into own files
thamruicong Aug 2, 2023
db35d46
Add utils folder
thamruicong Aug 2, 2023
6b9ac09
Chatbot with chathistory
thamruicong Aug 2, 2023
8779881
Load and save chatbot history
thamruicong Aug 3, 2023
3d0e4fc
Update .gitignore
thamruicong Aug 3, 2023
75d6bf4
Remove unused module
thamruicong Aug 3, 2023
1440a73
Complete TelegramGPT
thamruicong Aug 3, 2023
3b9bc12
Add .env content requirements
thamruicong Aug 3, 2023
da8f06c
Merge pull request #4 from thamruicong/Telegram_Bot
thamruicong Aug 3, 2023
3d10454
Individual .gitignore files per project
thamruicong Aug 8, 2023
0f000e5
Init WPF template
thamruicong Aug 8, 2023
1921a8b
Add layout
thamruicong Aug 8, 2023
dad08ee
Re-init Engine and UI folders
thamruicong Aug 8, 2023
9a1063e
Display player info
thamruicong Aug 8, 2023
2eee776
Add locations
thamruicong Aug 8, 2023
71c384d
Update README.md
thamruicong Aug 8, 2023
6f18d9b
Movement/Shop controls
thamruicong Aug 9, 2023
a92fa2d
Add Inventory and ItemFactory
thamruicong Aug 9, 2023
ce53e3f
Monsters
thamruicong Aug 9, 2023
a58593e
Display Monster
thamruicong Aug 14, 2023
b160bf2
Features added:
thamruicong Aug 15, 2023
8905ef0
Added monster combat, TODO:
thamruicong Aug 15, 2023
91850bb
Refactoring + Update Inventory properly
thamruicong Aug 18, 2023
60eb9c6
Merge pull request #5 from thamruicong/RPG_Game
thamruicong Sep 7, 2023
89b2973
Some refactoring - getting back into this project
thamruicong Jan 5, 2024
03c8903
Add ShopKeeper Buy/Sell functionality
thamruicong Jan 5, 2024
18cd857
Added Consumable Item class
thamruicong Jan 5, 2024
2251e00
Rehaul Item addition and removal
thamruicong Jan 6, 2024
0d3a170
Minor Inventory changes
thamruicong Jan 6, 2024
594bdef
Create linter.yml
thamruicong Jan 7, 2024
4a061a5
Update linter.yml
thamruicong Jan 7, 2024
54067ff
Fix lint checks
thamruicong Jan 7, 2024
e169ae8
Merge pull request #7 from thamruicong/branch_configure_linter
thamruicong Jan 7, 2024
096ecf7
Merge branch 'master' into RPG_Game
thamruicong Jan 7, 2024
cec9ac5
Move projects to src folder
thamruicong Jan 7, 2024
8f82804
Complete RPG Game
thamruicong Jan 7, 2024
eafa986
Fix more lint errors
thamruicong Jan 7, 2024
3c48e1b
More lint fixes
thamruicong Jan 7, 2024
135c19b
Minor lint fixes
thamruicong Jan 7, 2024
7ca8381
Merge pull request #6 from thamruicong/RPG_Game
thamruicong Jan 7, 2024
d1705ef
Init README.md
thamruicong Jan 7, 2024
07490c3
Stopped at Token type 4.2.1
thamruicong Jan 17, 2024
745b34a
Paused at String literals 4.6.1
thamruicong Jan 18, 2024
8c9f64e
Add formatOnSave
thamruicong Apr 20, 2024
e5b98c5
Merge branch 'master' into Crafting_Interpreters
thamruicong Apr 20, 2024
99b8cae
Chpt 4 Scanning
thamruicong Apr 20, 2024
b1f1543
Add Makefile
thamruicong Apr 20, 2024
bf2eac8
Add Java checkstyle configuration
thamruicong Apr 20, 2024
4685888
Change name of checkstyle config
thamruicong Apr 20, 2024
dfc1b8e
Use google_checks config file
thamruicong Apr 20, 2024
01cd4e2
test
thamruicong Apr 20, 2024
cc6dd4b
Add linter to folder
thamruicong Apr 20, 2024
c98cfa8
Revert to old config file
thamruicong Apr 20, 2024
3325836
Change config file name
thamruicong Apr 20, 2024
984456d
Fix lint errors
thamruicong Apr 21, 2024
ec21e88
Fix lint errors 2
thamruicong Apr 21, 2024
18b76a5
Fix lint errors 3
thamruicong Apr 21, 2024
24f937b
Fix lint errors 4
thamruicong Apr 21, 2024
9c15813
fix lint 5
thamruicong Apr 21, 2024
9836d3d
fix naming
thamruicong Apr 21, 2024
cb95d1f
add example env in chatbot
thamruicong Mar 8, 2025
4bf85b7
Merge branch 'master' into Crafting_Interpreters
thamruicong Mar 8, 2025
c1fa9dc
fix lint
thamruicong Mar 8, 2025
fa9bb0a
add checkpoint
thamruicong Mar 8, 2025
03e74b7
Merge pull request #8 from thamruicong/Crafting_Interpreters
thamruicong Mar 8, 2025
f9b975e
init
thamruicong Mar 8, 2025
74abc63
add python black formatter
thamruicong Mar 8, 2025
3201f77
stash
thamruicong Mar 9, 2025
7cb55f4
remove deleted import
thamruicong Mar 9, 2025
5db1a84
update markdown linter
thamruicong Mar 9, 2025
2d9054f
spelling mistake
thamruicong Mar 9, 2025
0ff1958
undo
thamruicong Mar 9, 2025
20eeba2
small progress
thamruicong Mar 9, 2025
bd49063
working
thamruicong Mar 10, 2025
55ea503
fix lint
thamruicong Mar 10, 2025
d4d8402
fix import order
thamruicong Mar 10, 2025
800b3ca
implement DRY
thamruicong Mar 10, 2025
4635ce3
remove unused import
thamruicong Mar 10, 2025
8446839
add date completed to README.md
thamruicong Mar 10, 2025
2a1e926
Merge pull request #9 from thamruicong/MH_Script
thamruicong Mar 10, 2025
b562a7f
add stealth + headless
thamruicong Mar 11, 2025
2e8c798
add batch file and link to taskscheduler
thamruicong Mar 11, 2025
7736386
lint
thamruicong Mar 11, 2025
0d2e304
remove bare url in md
thamruicong Mar 11, 2025
8580c65
Merge pull request #11 from thamruicong/MH_Script
thamruicong Mar 11, 2025
c411f9e
update readme
thamruicong Mar 12, 2025
09646d2
Merge pull request #12 from thamruicong/MH_Script
thamruicong Mar 12, 2025
1f54796
update batch file to launch log folder
thamruicong Mar 13, 2025
e7f7872
update script
thamruicong Mar 13, 2025
dd55f82
Merge pull request #13 from thamruicong/MH_Script
thamruicong Mar 13, 2025
9187cbb
stash
thamruicong Mar 25, 2025
6756107
Stopped at Chpt 6
thamruicong May 14, 2025
ddfeaa3
Update README.md
thamruicong May 14, 2025
48d3c78
fix lint 1
thamruicong May 14, 2025
d6107e7
Fix MakeFile
thamruicong May 14, 2025
91e37ea
Merge pull request #14 from thamruicong/Crafting_Interpreters
thamruicong May 14, 2025
c976b41
Add auto claim gifts
thamruicong Jul 3, 2025
6fb7938
fix python linter
thamruicong Jul 3, 2025
c95bad9
increase webdriver wait timeout
thamruicong Jul 4, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
210 changes: 210 additions & 0 deletions .github/linters/my_java_checkstyle.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,210 @@
<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
"-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
"https://checkstyle.org/dtds/configuration_1_3.dtd">

<!--

Checkstyle configuration that checks the sun coding conventions from:

- the Java Language Specification at
https://docs.oracle.com/javase/specs/jls/se11/html/index.html

- the Sun Code Conventions at https://www.oracle.com/java/technologies/javase/codeconventions-contents.html

- the Javadoc guidelines at
https://www.oracle.com/technical-resources/articles/java/javadoc-tool.html

- the JDK Api documentation https://docs.oracle.com/en/java/javase/11/

- some best practices

Checkstyle is very configurable. Be sure to read the documentation at
https://checkstyle.org (or in your downloaded distribution).

Most Checks are configurable, be sure to consult the documentation.

To completely disable a check, just comment it out or delete it from the file.
To suppress certain violations please review suppression filters.

Finally, it is worth reading the documentation.

-->

<module name="Checker">
<!--
If you set the basedir property below, then all reported file
names will be relative to the specified directory. See
https://checkstyle.org/config.html#Checker

<property name="basedir" value="${basedir}"/>
-->
<property name="severity" value="error"/>

<property name="fileExtensions" value="java, properties, xml"/>

<!-- Excludes all 'module-info.java' files -->
<!-- See https://checkstyle.org/filefilters/index.html -->
<module name="BeforeExecutionExclusionFileFilter">
<property name="fileNamePattern" value="module\-info\.java$"/>
</module>

<!-- https://checkstyle.org/filters/suppressionfilter.html -->
<module name="SuppressionFilter">
<property name="file" value="${org.checkstyle.sun.suppressionfilter.config}"
default="checkstyle-suppressions.xml" />
<property name="optional" value="true"/>
</module>

<!-- Checks that a package-info.java file exists for each package. -->
<!-- See https://checkstyle.org/checks/javadoc/javadocpackage.html#JavadocPackage -->
<!-- <module name="JavadocPackage"/> -->

<!-- Checks whether files end with a new line. -->
<!-- See https://checkstyle.org/checks/misc/newlineatendoffile.html -->
<module name="NewlineAtEndOfFile"/>

<!-- Checks that property files contain the same keys. -->
<!-- See https://checkstyle.org/checks/misc/translation.html -->
<module name="Translation"/>

<!-- Checks for Size Violations. -->
<!-- See https://checkstyle.org/checks/sizes/index.html -->
<module name="FileLength"/>
<module name="LineLength">
<property name="fileExtensions" value="java"/>
</module>

<!-- Checks for whitespace -->
<!-- See https://checkstyle.org/checks/whitespace/index.html -->
<module name="FileTabCharacter"/>

<!-- Miscellaneous other checks. -->
<!-- See https://checkstyle.org/checks/misc/index.html -->
<module name="RegexpSingleline">
<!-- <property name="format" value="\s+$"/> -->
<property name="minimum" value="0"/>
<property name="maximum" value="0"/>
<property name="message" value="Line has trailing spaces."/>
</module>

<!-- Checks for Headers -->
<!-- See https://checkstyle.org/checks/header/index.html -->
<!-- <module name="Header"> -->
<!-- <property name="headerFile" value="${checkstyle.header.file}"/> -->
<!-- <property name="fileExtensions" value="java"/> -->
<!-- </module> -->

<!-- See https://checkstyle.org/checks/annotation/suppresswarnings.html -->
<module name="SuppressWarningsFilter" />

<module name="TreeWalker">

<!-- See https://checkstyle.org/checks/annotation/suppresswarnings.html -->
<module name="SuppressWarningsHolder"/>

<!-- Checks for Javadoc comments. -->
<!-- See https://checkstyle.org/checks/javadoc/index.html -->
<module name="InvalidJavadocPosition"/>
<module name="JavadocMethod"/>
<module name="JavadocType"/>
<module name="JavadocVariable"/>
<module name="JavadocStyle"/>
<module name="MissingJavadocMethod"/>

<!-- Checks for Naming Conventions. -->
<!-- See https://checkstyle.org/checks/naming/index.html -->
<module name="ConstantName"/>
<module name="LocalFinalVariableName"/>
<module name="LocalVariableName"/>
<module name="MemberName"/>
<module name="MethodName"/>
<module name="PackageName"/>
<module name="ParameterName"/>
<module name="StaticVariableName"/>
<module name="TypeName"/>

<!-- Checks for imports -->
<!-- See https://checkstyle.org/checks/imports/index.html -->
<module name="AvoidStarImport">
<property name="allowStaticMemberImports" value="true"/>
</module>
<module name="IllegalImport"/> <!-- defaults to sun.* packages -->
<module name="RedundantImport"/>
<module name="UnusedImports">
<property name="processJavadoc" value="false"/>
</module>

<!-- Checks for Size Violations. -->
<!-- See https://checkstyle.org/checks/sizes/index.html -->
<module name="MethodLength"/>
<module name="ParameterNumber"/>

<!-- Checks for whitespace -->
<!-- See https://checkstyle.org/checks/whitespace/index.html -->
<module name="EmptyForIteratorPad"/>
<module name="GenericWhitespace"/>
<module name="MethodParamPad"/>
<module name="NoWhitespaceAfter"/>
<module name="NoWhitespaceBefore"/>
<module name="OperatorWrap"/>
<module name="ParenPad"/>
<module name="TypecastParenPad"/>
<module name="WhitespaceAfter"/>
<module name="WhitespaceAround"/>

<!-- Modifier Checks -->
<!-- See https://checkstyle.org/checks/modifier/index.html -->
<module name="ModifierOrder"/>
<module name="RedundantModifier"/>

<!-- Checks for blocks. You know, those {}'s -->
<!-- See https://checkstyle.org/checks/blocks/index.html -->
<module name="AvoidNestedBlocks"/>
<module name="EmptyBlock"/>
<module name="LeftCurly"/>
<module name="NeedBraces">
<property name="allowSingleLineStatement" value="true"/>
</module>
<module name="RightCurly"/>

<!-- Checks for common coding problems -->
<!-- See https://checkstyle.org/checks/coding/index.html -->
<module name="EmptyStatement"/>
<module name="EqualsHashCode"/>
<module name="HiddenField">
<property name="ignoreConstructorParameter" value="true"/>
</module>
<module name="IllegalInstantiation"/>
<module name="InnerAssignment"/>
<module name="MagicNumber"/>
<module name="MissingSwitchDefault"/>
<module name="MultipleVariableDeclarations"/>
<module name="SimplifyBooleanExpression"/>
<module name="SimplifyBooleanReturn"/>

<!-- Checks for class design -->
<!-- See https://checkstyle.org/checks/design/index.html -->
<module name="DesignForExtension"/>
<module name="FinalClass"/>
<module name="HideUtilityClassConstructor"/>
<module name="InterfaceIsType"/>
<module name="VisibilityModifier"/>

<!-- Miscellaneous other checks. -->
<!-- See https://checkstyle.org/checks/misc/index.html -->
<module name="ArrayTypeStyle"/>
<!-- <module name="FinalParameters"/> -->
<module name="TodoComment"/>
<module name="UpperEll"/>

<!-- https://checkstyle.org/filters/suppressionxpathfilter.html -->
<module name="SuppressionXpathFilter">
<property name="file" value="${org.checkstyle.sun.suppressionxpathfilter.config}"
default="checkstyle-xpath-suppressions.xml" />
<property name="optional" value="true"/>
</module>

</module>

</module>
41 changes: 41 additions & 0 deletions .github/workflows/linter.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
---
name: Lint

on: # yamllint disable-line rule:truthy
push: null
pull_request: null

jobs:
build:
name: Lint
runs-on: ubuntu-latest

permissions:
contents: read
packages: read
# To report GitHub Actions status checks
statuses: write

steps:
- name: Checkout code
uses: actions/checkout@v4
with:
# super-linter needs the full git history to get the
# list of files that changed across commits
fetch-depth: 0

- name: Super-linter
uses: super-linter/[email protected] # x-release-please-version
env:
DEFAULT_BRANCH: main
# To report GitHub Actions status checks
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Exclude forked files from checks
FILTER_REGEX_INCLUDE: .*src/.*
# Ignore .gitignore files
IGNORE_GITIGNORED_FILES: true

# Custom Java Checkstyle configuration
JAVA_FILE_NAME: my_java_checkstyle.xml
# Disable google-java-format
VALIDATE_GOOGLE_JAVA_FORMAT: false
10 changes: 10 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"overrides": [
{
"files": "*.md",
"options": {
"tabWidth": 1
}
}
]
}
11 changes: 11 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"dotnet.defaultSolution": "RPG_Game/RPG_Game.sln",

"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",

"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter",
"editor.formatOnSave": true
}
}
16 changes: 16 additions & 0 deletions PYTHONREQUIREMENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
## To install all Python dependencies for any specific project:

1. cd into the project folder.
2. Ensure that the folder contains a `requirements.txt` file. This file contains all the necessary dependencies for this project to function.
3. If this file is not found, look at `Creating a requirements.txt file for your project`. Else, go to step 4.
4. Run the command `pip3 install -r requirements.txt` to generate the dependency file.

<hr>

## Creating a requirements.txt file for your project:

1. We will use two libraries to help us generate the `requirements.txt` file - pipreqs and pip-tools.
2. If not already installed, run `pip3 install pipreqs` and `pip3 install pip-tools`.
3. cd into the project folder.
4. Run the command `pipreqs --savepath=requirements.in && pip-compile`.
5. Both `requirements.in` and `requirements.txt` files should be created.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ To get started, simply fork this repo. Please refer to [CONTRIBUTING.md](CONTRIB

## C#:

- [Learn C# By Building a Simple RPG Game](http://scottlilly.com/learn-c-by-building-a-simple-rpg-index/)
- [Learn C# By Building a Simple RPG Game](http://scottlilly.com/learn-c-by-building-a-simple-rpg-index/) :white_check_mark:
- [Create a Rogue-like game in C#](https://roguesharp.wordpress.com/)
- [Create a Blank App with C# and Xamarin (work in progress)](https://www.intertech.com/Blog/xamarin-tutorial-part-1-create-a-blank-app/)
- [Build iOS Photo Library App with Xamarin and Visual Studio](https://www.raywenderlich.com/134049/building-ios-apps-with-xamarin-and-visual-studio)
Expand Down Expand Up @@ -371,7 +371,7 @@ To get started, simply fork this repo. Please refer to [CONTRIBUTING.md](CONTRIB
- [Mining Twitter Data with Python](https://marcobonzanini.com/2015/03/02/mining-twitter-data-with-python-part-1/)
- [Scrape a Website with Scrapy and MongoDB](https://realpython.com/blog/python/web-scraping-with-scrapy-and-mongodb/)
- [How To Scrape With Python and Selenium WebDriver](http://www.byperth.com/2018/04/25/guide-web-scraping-101-what-you-need-to-know-and-how-to-scrape-with-python-selenium-webdriver/)
- [Which Movie Should I Watch using BeautifulSoup](https://medium.com/@nishantsahoo.in/which-movie-should-i-watch-5c83a3c0f5b1)
- [Which Movie Should I Watch using BeautifulSoup](https://medium.com/@nishantsahoo.in/which-movie-should-i-watch-5c83a3c0f5b1) :white_check_mark:

### Web Applications:

Expand Down Expand Up @@ -401,7 +401,7 @@ To get started, simply fork this repo. Please refer to [CONTRIBUTING.md](CONTRIB
- [How to Make a Reddit Bot - YouTube](https://www.youtube.com/watch?v=krTUf7BpTc0) (video)
- [Build a Facebook Messenger Bot](https://blog.hartleybrody.com/fb-messenger-bot/)
- [Making a Reddit + Facebook Messenger Bot](https://pythontips.com/2017/04/13/making-a-reddit-facebook-messenger-bot/)
- How To Create a Telegram Bot Using Python
- How To Create a Telegram Bot Using Python :white_check_mark:
- [Part 1](https://khashtamov.com/en/how-to-create-a-telegram-bot-using-python/)
- [Part 2](https://khashtamov.com/en/how-to-deploy-telegram-bot-django/)
- [Create a Twitter Bot In Python](https://medium.freecodecamp.org/creating-a-twitter-bot-in-python-with-tweepy-ac524157a607)
Expand Down
24 changes: 24 additions & 0 deletions src/Crafting_Interpreters/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Compiled class file
*.class

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
replay_pid*
41 changes: 41 additions & 0 deletions src/Crafting_Interpreters/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
JFLAGS = -g
JC = javac

.SUFFIXES: .java .class

.java.class:
$(JC) $(JFLAGS) $*.java

# This uses the line continuation character (\) for readability.
# Compile .java files in dependency order.
BASE_CLASSES = \
lox/TokenType.java \
lox/Token.java \
lox/Scanner.java \
lox/Lox.java \
tool/GenerateAst.java

# These classes depend on generated classes.
POST_CLASSES = \
lox/AstPrinter.java

# All classes
CLASSES = $(BASE_CLASSES) $(POST_CLASSES)

default: build

build: compile_base generate_ast compile_post

compile_base: $(BASE_CLASSES:.java=.class)

generate_ast: compile_base
java tool/GenerateAst lox

compile_post: $(POST_CLASSES:.java=.class)

clean:
find . -name "*.class" -type f -delete
$(RM) lox/Expr.java

run: build
java lox/Lox
Loading