yeah im going back to sleep now... i hate this

This commit is contained in:
Tyler McGurrin 2025-06-08 12:19:57 -04:00
parent bcba3e7414
commit c071191465
5 changed files with 30 additions and 13 deletions

View File

@ -8,7 +8,7 @@ set(FVERSION "-std=f2023")
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} ${FVERSION}")
include_directories(BEFORE SYSTEM /usr/include /usr/include/fortran_stdlib/GNU-15.1.1/)
include_directories(BEFORE SYSTEM /usr/include /usr/include/fortran_stdlib/GNU-15.1.1/ ${CMAKE_CURRENT_BINARY_DIR}/vector ${CMAKE_CURRENT_BINARY_DIR}/f90getopt)
link_directories(BEFORE $ENV{LD_LIBRARY_PATH} ${CMAKE_BINARY_DIR}/ )
include(GNUInstallDirs)
@ -19,14 +19,16 @@ set(MODULES src/tokenizer.f90
src/fileread.f90
CACHE INTERNAL "")
add_library(f90getopt SHARED libs/f90getopt/f90getopt.F90)
add_subdirectory(libs/vector ${CMAKE_CURRENT_BINARY_DIR}/vector)
add_subdirectory(libs/f90getopt ${CMAKE_CURRENT_BINARY_DIR}/f90getopt)
add_library(${PROJECT_NAME}-lib SHARED ${MODULES})
add_executable(${PROJECT_NAME} src/main.f90)
add_dependencies(${PROJECT_NAME}-lib fortran-vector f90getopt)
add_dependencies(${PROJECT_NAME} ${PROJECT_NAME}-lib)
find_package("fortran_stdlib" REQUIRED)
find_package(BLAS)
find_package(LAPACK)
@ -34,9 +36,10 @@ find_package(LAPACK)
target_link_libraries(
${PROJECT_NAME}
PUBLIC
f90getopt
${PROJECT_NAME}-lib
PRIVATE
fortran-vector
f90getopt
fortran_stdlib::fortran_stdlib
fortran-vector
PUBLIC
)

View File

@ -10,4 +10,5 @@ im not explaining that sentence...
- fortran stdlibs
- gfortran
- CMake
- BLAS (Needed for STDLIBS)
- BLAS (Needed for STDLIBS)
- LAPACK (Needed for STDLIBS)

@ -1 +1 @@
Subproject commit 872848f265bef0c20d3618be966d7a4302d20973
Subproject commit 0af628d03018f04465c367c1d33f39b42a2af7a8

@ -1 +1 @@
Subproject commit 32c8b2e3c0c02b14d9f75816d53a40b00316d6be
Subproject commit 0f1670c70afc91c32170ba26b1aa84957c2ca53a

View File

@ -3,6 +3,8 @@
module tokenizer
use stdlib_strings
use vector
use, intrinsic :: iso_c_binding
implicit none
contains
@ -12,7 +14,8 @@ module tokenizer
character(:), allocatable, intent(out) :: tokens
character(string_length), intent(in) :: input_string
character(:), dimension(:), allocatable :: buffer
type(vec) :: buf
character :: buffer
character(1) :: c
integer :: i
@ -24,19 +27,29 @@ module tokenizer
do while (i < string_length)
c = slice(input_string, i, i+1)
if (token_isalpha(c) == 1) then
call buf%push_back(c) ! i think this is correct?
i = i + 1
endif
do while (token_isalnum(slice(input_string, 1, i+1)) == 1)
call buf%push_back(slice(input_string, 1, i+1))
i = i + 1
end do
i = i - 1
! call vector_get(buf, 1) ! FUCK FORTRAN VECTOR...
if (buffer == 'return') then
end if
end if
end do
end subroutine tokenize
integer function token_isalpha(input_character) result(res)
character(1) :: input_character
character(1), intent(in) :: input_character
if ( input_character == 'a') then
elseif (input_character == 'b') then
elseif (input_character == 'c') then
elseif (input_character =='d') then
elseif (input_character == 'd') then
elseif (input_character == 'e') then
elseif (input_character == 'f') then
elseif (input_character == 'g') then
@ -96,7 +109,7 @@ module tokenizer
end function token_isalpha
integer function token_isalnum(input_character) result(res)
character(1) :: input_character
character(1), intent(in) :: input_character
if ( input_character == 'a') then
elseif (input_character == 'b') then