Skip to content

Commit

Permalink
Merge branch 'main' into tree-printer
Browse files Browse the repository at this point in the history
  • Loading branch information
ansharlubis committed Mar 21, 2022
2 parents 8c3c7a1 + 2dd1e4d commit 4a1f805
Show file tree
Hide file tree
Showing 161 changed files with 3,915 additions and 26,094 deletions.
12 changes: 0 additions & 12 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
src/bin/lpython
src/bin/parse
src/bin/parse2
src/lpython/parser/parser.output
tests/output
src/lpython/tests/test_asm
src/lpython/tests/test_ast
Expand Down Expand Up @@ -55,17 +54,6 @@ _CPack_Packages
version
lpython/ast/ast.py
lpython/asr/asr.py
lpython/parser/fortran.tokens
lpython/parser/fortran.interp
lpython/parser/fortranLexer.py
lpython/parser/fortranLexer.tokens
lpython/parser/fortranLexer.interp
lpython/parser/fortranParser.py
lpython/parser/fortranVisitor.py
src/lpython/parser/parser.tab.cc
src/lpython/parser/parser.tab.hh
src/lpython/parser/tokenizer.cpp
src/lpython/parser/preprocessor.cpp
src/lpython/ast.h
src/lpython/asr.h
src/libasr/asr.h
Expand Down
8 changes: 4 additions & 4 deletions GOVERNANCE.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
# LFortran Governance
# LPython Governance

## Technical Decisions

Technical decisions are made by the developer community by discussing at each
Merge Request (MR) and arriving at a consensus. In case of disagreements, the
Pull Request (PR) and arriving at a consensus. In case of disagreements, the
project leader (Ondřej Čertík) will facilitate the discussion and help achieve a
consensus. If a consensus cannot be achieved, the final decision will be made by
the project leader.

## Financial Decisions

Financial decisions are made by Ondřej Čertík and Milan Curcic with the goal to
benefit and be good stewards of the LFortran community.
Financial decisions are made by Ondřej Čertík with the goal to
benefit and be good stewards of the LPython community.
51 changes: 0 additions & 51 deletions bench.sh

This file was deleted.

10 changes: 0 additions & 10 deletions build0.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,9 @@ set -x
# Generate the `version` file
ci/version.sh

# Generate a Fortran AST from AST.asdl (C++)
python grammar/asdl_cpp.py
# Generate a Python AST from Python.asdl (Python)
python grammar/asdl_py.py
# Generate a Python AST from Python.asdl (C++)
python grammar/asdl_cpp.py grammar/Python.asdl src/lpython/python_ast.h
# Generate a Fortran ASR from ASR.asdl (C++)
python grammar/asdl_cpp.py grammar/ASR.asdl src/libasr/asr.h

# Generate the tokenizer and parser
(cd src/lpython/parser && re2c -W -b tokenizer.re -o tokenizer.cpp)
(cd src/lpython/parser && re2c -W -b preprocessor.re -o preprocessor.cpp)
(cd src/lpython/parser && bison -Wall -d -r all parser.yy)

grep -n "'" src/lpython/parser/parser.yy && echo "Single quote not allowed" && exit 1
echo "OK"
9 changes: 5 additions & 4 deletions build1_win.sh
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
#!/usr/bin/env bash

bash ci/version.sh
python grammar/asdl_cpp.py
# Generate a Python AST from Python.asdl (Python)
python grammar/asdl_py.py
# Generate a Python AST from Python.asdl (C++)
python grammar/asdl_cpp.py grammar/Python.asdl src/lpython/python_ast.h
# Generate a Fortran ASR from ASR.asdl (C++)
python grammar/asdl_cpp.py grammar/ASR.asdl src/libasr/asr.h
pushd src/lpython/parser && re2c -W -b tokenizer.re -o tokenizer.cpp && popd
pushd src/lpython/parser && re2c -W -b preprocessor.re -o preprocessor.cpp && popd
pushd src/lpython/parser && bison -Wall -d -r all parser.yy && popd
10 changes: 1 addition & 9 deletions ci/build.xsh
Original file line number Diff line number Diff line change
Expand Up @@ -26,20 +26,13 @@ llvm-config --components
# Generate the `version` file
bash ci/version.sh

# Generate a Fortran AST from AST.asdl (C++)
python grammar/asdl_cpp.py
# Generate a Fortran ASR from ASR.asdl (C++)
python grammar/asdl_cpp.py grammar/ASR.asdl src/libasr/asr.h
# Generate a Python AST from Python.asdl (C++)
python grammar/asdl_cpp.py grammar/Python.asdl src/lpython/python_ast.h
# Generate a Python AST from Python.asdl (Python)
python grammar/asdl_py.py

# Generate the tokenizer and parser
pushd src/lpython/parser && re2c -W -b tokenizer.re -o tokenizer.cpp && popd
pushd src/lpython/parser && re2c -W -b preprocessor.re -o preprocessor.cpp && popd
pushd src/lpython/parser && bison -Wall -d -r all parser.yy && popd

$lpython_version=$(cat version).strip()
$dest="lpython-" + $lpython_version
bash ci/create_source_tarball0.sh
Expand All @@ -55,7 +48,7 @@ BUILD_TYPE = "Release"
cmake -G $LFORTRAN_CMAKE_GENERATOR -DCMAKE_VERBOSE_MAKEFILE=ON -DWITH_LLVM=yes -DWITH_XEUS=yes -DCMAKE_PREFIX_PATH=$CONDA_PREFIX -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX -DWITH_LFORTRAN_BINARY_MODFILES=no -DCMAKE_BUILD_TYPE=@(BUILD_TYPE) ..
cmake --build . --target install
./src/lpython/tests/test_lfortran
./src/bin/lpython < ../src/bin/example_input.txt
#./src/bin/lpython < ../src/bin/example_input.txt
ctest --output-on-failure
cpack -V
cd ../..
Expand All @@ -67,4 +60,3 @@ if $WIN == "1":
cp lpython-$lpython_version/test-bld/src/runtime/lfortran_runtime* src/runtime/
else:
cp lpython-$lpython_version/test-bld/src/runtime/liblfortran_runtime* src/runtime/
cp lpython-$lpython_version/test-bld/src/runtime/*.mod src/runtime/
26 changes: 17 additions & 9 deletions grammar/ASR.asdl
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ abi -- External ABI


stmt
= Allocate(alloc_arg* args, expr? stat)
= Allocate(alloc_arg* args, expr? stat, expr? errmsg)
| Assign(int label, identifier variable)
| Assignment(expr target, expr value, stmt? overloaded)
| Associate(expr target, expr value)
Expand All @@ -179,15 +179,25 @@ stmt
| Open(int label, expr? newunit, expr? filename, expr? status)
| Close(int label, expr? unit, expr? iostat, expr? iomsg, expr? err, expr? status)
| Read(int label, expr? unit, expr? fmt, expr? iomsg, expr? iostat, expr? id, expr* values)
| Rewind(int label, expr? unit, expr? iostat, expr? err)
| Inquire(int label, expr? unit, expr? file, expr? iostat, expr? err,
expr? exist, expr? opened, expr? number, expr? named,
expr? name, expr? access, expr? sequential, expr? direct,
expr? form, expr? formatted, expr? unformatted, expr? recl,
expr? nextrec, expr? blank, expr? position, expr? action,
expr? read, expr? write, expr? readwrite, expr? delim,
expr? pad, expr? flen, expr? blocksize, expr? convert,
expr? carriagecontrol, expr? iolength)
| Write(int label, expr? unit, expr? fmt, expr? iomsg, expr? iostat, expr? id, expr* values)
| Return()
| Select(expr test, case_stmt* body, stmt* default)
| Stop(expr? code)
| Assert(expr test, expr? msg)
| SubroutineCall(symbol name, symbol? original_name, expr* args, expr? dt)
| SubroutineCall(symbol name, symbol? original_name, call_arg* args, expr? dt)
| Where(expr test, stmt* body, stmt* orelse)
| WhileLoop(expr test, stmt* body)
| Nullify(symbol* vars)
| Flush(int label, expr unit, expr? err, expr? iomsg, expr? iostat)


expr
Expand All @@ -200,18 +210,18 @@ expr
| NamedExpr(expr target, expr value, ttype type)
| Compare(expr left, cmpop op, expr right, ttype type, expr? value, expr? overloaded)
| IfExp(expr test, expr body, expr orelse, ttype type)
| FunctionCall(symbol name, symbol? original_name, expr* args,
keyword* keywords, ttype type, expr? value, expr? dt)
| FunctionCall(symbol name, symbol? original_name,
call_arg* args, ttype type, expr? value, expr? dt)
| DerivedTypeConstructor(symbol dt_sym, expr* args, ttype type)
| ConstantArray(expr* args, ttype type)
| ImpliedDoLoop(expr* values, expr var, expr start, expr end,
expr? increment, ttype type, expr? value)
| ConstantInteger(int n, ttype type)
| ConstantReal(float r, ttype type)
| ConstantComplex(float re, float im, ttype type)
| ConstantLogical(bool value, ttype type)
| ConstantSet(expr* elements, ttype type)
| ConstantTuple(expr* elements, ttype type)
| ConstantLogical(bool value, ttype type)
| ConstantString(string s, ttype type)
| ConstantDictionary(expr* keys, expr* values, ttype type)
| BOZ(int v, boz boz_type, ttype? type)
Expand Down Expand Up @@ -271,15 +281,13 @@ attribute = Attribute(identifier name, attribute_arg *args)

attribute_arg = (identifier arg)

arg = (identifier arg)

keyword = (identifier? arg, expr value)
call_arg = (expr? value)

tbind = Bind(string lang, string name)

array_index = (expr? left, expr? right, expr? step)

do_loop_head = (expr v, expr start, expr end, expr? increment)
do_loop_head = (expr? v, expr? start, expr? end, expr? increment)

case_stmt = CaseStmt(expr* test, stmt* body) | CaseStmt_Range(expr? start, expr? end, stmt* body)

Expand Down
Loading

0 comments on commit 4a1f805

Please sign in to comment.