Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- changeChar() { #line $1 change $2 to $3
- change="$( echo "$1" | tr "$2" "$3" )"
- echo "$change"
- }
- #text='if ( "the end" > 365 ) then'
- #echo "oryginal $text"
- #changeChar "$text" '(' '['
- changeWord() { #line $1 change $2 to $3
- change="$( echo "$1" | sed "s/$2/$3/" )"
- echo "$change"
- }
- #text='hello sara , my name is sara too .'
- #echo "$text"
- #changeWord "$text" 'sara' 'mary'
- deleteWord() { #line $1 word to delete $2
- change="$( echo "$1" | sed "s/$2//" )"
- echo "$change"
- }
- #text='hello sara , my name is sara too .'
- #echo "$text"
- #deleteWord "$text" 'hello'
- findWordByID() { #line $1 ID word $2 | $1-first word $2-seccond ...
- change="$( echo "$1" | awk "{print $2;}" )"
- echo "$change"
- }
- #text='Word1 Word2 Word3 if'
- #echo "$text"
- #findWordByID "$text" '$2'
- findWord() { #line $1 word $2
- #change="$( echo $1 | awk '{print match($0,">");}' )"
- change="$( echo $1 | grep -c "$2" )"
- echo "$change"
- }
- #text='if ( "the end" > 365 ) then'
- #echo "$text"
- #findWord "$text" '>'
- signsInequality() { #sign $1
- if [ `findWord "$1" '\-eq'` -ge 1 ]
- then
- line=`changeWord "$1" '-eq' '=='`
- fi
- if [ `findWord "$1" '\-ne'` -ge 1 ]
- then
- line=`changeWord "$1" '-ne' '!='`
- fi
- if [ `findWord "$1" '\-gt'` -ge 1 ]
- then
- line=`changeWord "$1" '-gt' '>'`
- fi
- if [ `findWord "$1" '\-lt'` -ge 1 ]
- then
- line=`changeWord "$1" '-lt' '<'`
- fi
- if [ `findWord "$1" '\-ge'` -ge 1 ]
- then
- line=`changeWord "$1" '\-ge' '>='`
- fi
- if [ `findWord "$1" '\-le'` -ge 1 ]
- then
- line=`changeWord "$1" '-le' '<='`
- fi
- echo "$line"
- }
- if_elseif() {
- line=`changeWord "$line" '\[' '('`
- line=`signsInequality "$line"`
- line=`changeWord "$line" ']' ')'`
- }
- while IFS='' read -r line || [ -n "$line" ];
- do
- func=`findWordByID "$line" '$1'`
- case $func in
- "#!/bin/sh") line='#!/bin/csh' ;;
- "if") if_elseif ;;
- "then") ;;
- "else")
- if [ `findWord "$line" 'if'` -ge 0 ]
- then
- if_elseif
- fi
- ;;
- "elseif") if_elseif ;;
- "fi") line=`changeWord "$line" 'fi' 'endif'` ;;
- "for")
- line=`changeWord "$line" 'for' 'foreach'`
- line=`changeWord "$line" 'in' '( '`
- line=' )'
- ;;
- "while")
- line=`changeWord "$line" '\[' '('`
- line=`signsInequality "$line"`
- line=`changeWord "$line" ']' ')'`
- ;;
- "done") line=`changeWord "$line" 'done' 'end'` ;;
- "break") ;;
- "do") ;;
- "continue") ;;
- "case")
- line=`changeWord "$line" 'case (' 'switch'`
- line=`changeWord "$line" 'in' ')'`
- ;;
- ";;") line=`changeWord "$line" ';;' 'breaksw'` ;;
- "*)") line=`changeWord "$line" '*)' 'default:'` ;;
- "esac") line=`changeWord "$line" 'esac' "endsw"` ;;
- "echo") ;;
- "function") ;;
- "}") ;;
- "{") ;;
- "()") ;;
- "#") ;;
- "@")
- line=`deleteWord "$line" '@ '`
- line="$( echo $line | sed 's/ //' )"
- variable=`findWordByID "$line" '$1'`
- if [ `findWord "$line" '+='` -ge 1 ]
- then
- v="=\`expr \$$variable \'+\'"
- line=`changeWord "$line" '+=' "$v"`
- fi
- if [ `findWord "$line" '\-='` -ge 1 ]
- then
- v="=\`expr \$$variable \'-\'"
- line=`changeWord "$line" '-=' "$v"`
- fi
- if [ `findWord "$line" '*='` -ge 1 ]
- then
- v="=\`expr \$$variable \'*\'"
- line=`changeWord "$line" '*=' "$v"`
- fi
- if [ `findWord "$line" '/='` -ge 1 ]
- then
- v="=\`expr \$$variable \'/\'"
- line=`changeWord "$line" '/=' "$v"`
- fi
- if [ `findWord "$line" '++'` -ge 1 ]
- then
- v="=\`expr \$$variable \'+\' 1"
- line=`changeWord "$line" '++' "$v"`
- line=`deleteWord "$line" '++'`
- fi
- if [ `findWord "$line" '\--'` -ge 1 ]
- then
- v="=\`expr \$$variable \'-\' 1"
- line=`changeWord "$line" '--' "$v"`
- line=`deleteWord "$line" '--'`
- fi
- line=$line'`'
- ;;
- *)
- ll=`findWordByID "$line" '$1'`
- if [ `findWord "$ll" '='` -ge 1 ]
- then
- line=$line
- else if [ `findWord "$ll" ')'` -ge 1 ]
- then
- line=$line
- else
- echo "Error: $line"
- fi
- fi
- ;;
- esac
- out="$out$line\n"
- done < "$1"
- echo "\n$out"
- echo "$out" >"$2"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement