Skip to content

Instantly share code, notes, and snippets.

@JeffIrwin
Created October 5, 2018 23:38
Show Gist options
  • Save JeffIrwin/30b5f03256c3a737c152aac77ff1974f to your computer and use it in GitHub Desktop.
Save JeffIrwin/30b5f03256c3a737c152aac77ff1974f to your computer and use it in GitHub Desktop.
program p
character(len = *), parameter :: c = '' &
//' //''''\n' &
//'\n' &
//' character(len = :), allocatable :: d\n' &
//'\n' &
//' integer :: i\n' &
//'\n' &
//' print ''(a)'', "program p"\n' &
//' print ''(a)'', ""\n' &
//' print ''(a)'', " character(len = *), parameter :: c = '''' &"\n' &
//'\n' &
//' d = c\n' &
//' i = 0\n' &
//' do while (i < len(d))\n' &
//' i = i + 1\n' &
//' if (d(i:i) == ''\\'') then\n' &
//' print ''(a)'', " //''"//d(i:i+1)//"'' &"\n' &
//' if (d(i+1:i+1) == ''n'') then\n' &
//' d = d(1:i-1)//char(10)//d(i+2:len(d))\n' &
//' else if (d(i+1:i+1) == ''\\'') then\n' &
//' d = d(1:i-1)// ''\\''//d(i+2:len(d))\n' &
//' endif\n' &
//' else if (d(i:i) == "''") then\n' &
//' print ''(a)'', " //'''''''' &"\n' &
//' else\n' &
//' print ''(a)'', " //''"//d(i:i)//"'' &"\n' &
//' endif\n' &
//' enddo\n' &
//' print ''(a)'', d\n' &
//'\n' &
//'end program p' &
//''
character(len = :), allocatable :: d
integer :: i
print '(a)', "program p"
print '(a)', ""
print '(a)', " character(len = *), parameter :: c = '' &"
d = c
i = 0
do while (i < len(d))
i = i + 1
if (d(i:i) == '\') then
print '(a)', " //'"//d(i:i+1)//"' &"
if (d(i+1:i+1) == 'n') then
d = d(1:i-1)//char(10)//d(i+2:len(d))
else if (d(i+1:i+1) == '\') then
d = d(1:i-1)// '\'//d(i+2:len(d))
endif
else if (d(i:i) == "'") then
print '(a)', " //'''' &"
else
print '(a)', " //'"//d(i:i)//"' &"
endif
enddo
print '(a)', d
end program p
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment