Skip to content

kwonyonghyeon/Sangsu_Lang

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 

Repository files navigation

Sangsu_Lang

문법

기본

  • 모든 코드는 "안녕하세요 정상숩니다"로 시작합니다.
  • 모든 코드는 "안녕히 계세요 정상수였습니다 요"로 끝납니다.
  • "안녕하세요 정상숩니다"를 제외한 모든 코드 뒤에는 "요"를 붙여야 합니다. "요"를 붙이지 않으면 정상수가 화냅니다
  • 확장자는 .jss 입니다.

계산

  • 계산식은 독립적으로 쓰일 수는 없고, 반드시 다른 함수들과 같이 사용해야만 합니다.
  • "아"는 +1, "악"은 -1, "놔라!"는 곱하기를 뜻합니다.

변수

  • 변수에는 정수를 넣을 수 있습니다.
  • "테이저건 맞은 사람: (값)" 으로 변수를 선언합니다.
  • 변수는 변수명이 아닌, N번째 변수로 구별합니다. 선언된 순서대로 첫번째 변수, 두번째 변수, 세번째 변수, ... , N번째 변수가 됩니다.
안녕하세요 정상숩니다
테이저건 맞은 사람: 아아놔라!아아아 요
안녕히 계세요 정상수였습니다 요

다음 코드는 첫번째 변수에 6(2×3)을 대입한 코드입니다.

  • 변수의 값을 수정하기 위해서는 두 가지 방법이 있는데, "테이저건 쏜 사람: (명사수×N) (값)"과 "테이저건 쏜 명사수: (명사수×N) (값)"이 있습니다.
  • "테이저건 쏜 사람: (명사수×N) (값)"은 변수의 값 자체를 바꿉니다.
  • "테이저건 쏜 명사수: (명사수×N) (값)"은 원래 있던 변수값에 값만큼을 더합니다.
  • 명사수의 개수는 몇번째 변수인지를 뜻합니다.
안녕하세요 정상숩니다
테이저건 맞은 사람: 아아놔라!아아아 요
테이저건 맞은 사람: 악 요
테이저건 쏜 명사수: 명사수 아 요
테이저건 쏜 명사수: 명사수 명사수 악악 요
테이저건 쏜 사람: 명사수 아아 요
테이저건 쏜 사람: 명사수 명사수 아아 요
안녕히 계세요 정상수였습니다 요

다음 코드는 첫번째 변수에 6을, 두번째 변수에 -1을 넣었습니다. 그 뒤 첫번째 변수에 +1을 하였고, 두번째 변수에 +(-2)를 하여 첫번째 변수는 7, 두번째 변수는 -3이 되었습니다. 그 뒤 첫번째 변수와 두번째 변수 모두 2로 값을 바꾸었습니다.

  • 사용자로부터 변수값을 입력받기 위해서는 "영도 통행금지령: "을 사용합니다.
안녕하세요 정상숩니다
영도 통행금지령: 요
안녕히 계세요 정상수였습니다 요

다음 코드는 첫번째 변수를 사용자로부터 입력받습니다.

출력

  • 출력 함수의 기본형은 "CHECK THIS OUT 나는" 입니다.
  • "CHECK THIS OUT 나는 정 상 수 (값)"은 값을 아스키 코드로 변환한 후 출력합니다. 아스키 코드표
  • "CHECK THIS OUT 나는 명사수"는 개행합니다.
  • "CHECK THIS OUT 나는 (값)"은 값을 출력합니다.
  • "CHECK THIS OUT 나는 (정상수xN)"은 (정상수xN)번째 변수를 출력합니다.
  • "CHECK THIS OUT 나는 (정상수xN) 탕"은 (정상수xN)번째 변수를 아스키 코드로 변환한 후 출력합니다.
  • "CHECK THIS OUT 나는 (정상수xN) (값)"은 (정상수xN)번째 변수에 값을 더한 뒤 출력합니다.
  • "CHECK THIS OUT 나는 (정상수xN) (값) 탕"은 (정상수xN)번째 변수에 값을 더한 뒤 아스키 코드로 변환하여 출력합니다.
안녕하세요 정상숩니다
테이저건 맞은 사람: 아아놔라!아아놔라!아아아아아놔라!아아아아아 요
테이저건 맞은 사람: 아아아놔라!아아아아아아아아아아아놔라!아아아 요
CHECK THIS OUT 나는 정상수 요
CHECK THIS OUT 나는 정상수 정상수 요
CHECK THIS OUT 나는 정상수 탕 요
CHECK THIS OUT 나는 정상수 정상수 탕 요
CHECK THIS OUT 나는 명사수 요
CHECK THIS OUT 나는 정 상 수 아아놔라!아아놔라!아아놔라!아아아놔라!아아아 요
CHECK THIS OUT 나는 정상수 아 탕 요
CHECK THIS OUT 나는 정상수 아아놔라!아아놔라!아아 탕 요
CHECK THIS OUT 나는 정상수 아아놔라!아아놔라!아아 탕 요
CHECK THIS OUT 나는 정상수 아아아아아아아아아아아 탕 요
CHECK THIS OUT 나는 정 상 수 아아놔라!아아놔라!아아아아아아아아아아아 요
CHECK THIS OUT 나는 정 상 수 아아놔라!아아놔라!아아놔라!아아놔라!아아 요
CHECK THIS OUT 나는 정상수 악악악악악악악악악악악악악 탕 요
CHECK THIS OUT 나는 정상수 아아아아아아아아아아아 탕 요
CHECK THIS OUT 나는 정상수 아아아아아아아놔라!아아 탕 요
CHECK THIS OUT 나는 정상수 아아놔라!아아놔라!아아 탕 요
CHECK THIS OUT 나는 정상수 탕 요
CHECK THIS OUT 나는 정 상 수 아아아놔라!아아아아아아아아아아아 요
안녕히 계세요 정상수였습니다 요

다음 코드는 첫번째 변수에 100을, 두번째 변수에 99를 대입하였기에 "10099dc"가 출력된 후, 개행하여 "Hello, World!"를 출력합니다.

반복문

  • 아직 중첩반복문은 지원하지 않습니다.
  • 반복문은 시작과 끝이 있습니다. "카운팅 스타~ (값)"로 시작해서 "밤하늘의 펄~"로 끝납니다. 그 사이에 있는 코드들을 값 번 반복합니다.
  • 반복문 앞 맨 첫번째 코드는 "안녕하세요 정상숩니다"로 시작해야 합니다. "안녕히 계세요 정상숩니다"는 쓰면 안됩니다.
안녕하세요 정상숩니다
테이저건 맞은 사람: 아 요
카운팅 스타~ 아아아놔라!아아아 요
안녕하세요 정상숩니다
CHECK THIS OUT 나는 정상수 요
CHECK THIS OUT 나는 명사수 요
테이저건 쏜 명사수: 명사수 아 요
밤하늘의 펄~ 요
안녕히 계세요 정상수였습니다 요

다음 코드는 첫번째 변수에 1을 대입합니다. 그 뒤, 9번 실행될 반복문을 만들어 줍니다. 그리고 첫번째 변수와 개행을 출력하고, 첫번째 변수의 값을 1 늘립니다. 따라서 1부터 9까지의 숫자가 개행되어 출력될 것입니다.

에러 메시지

  • 모든 에러 메시지는 "씨발롬아"로 끝납니다.
  • "놓으라고 놓을 리가 있냐 씨발롬아"는 계산식이 "놔라!"로 끝날 경우 발생합니다.
  • "인사 해라 씨발롬아"는 코드 앞에 "안녕하세요 정상숩니다"를 쓰지 않았을 경우 발생합니다. 반복문의 경우도 동일합니다.
  • "반말 하지 마라 씨발롬아"는 코드 뒤에 "요"를 붙이지 않았을 경우 발생합니다.
  • "아무것도 없는데 뭘 바꾸란거냐 씨발롬아"는 변수를 수정할 때에, 수정할 변수가 없으면 발생합니다. 예를 들어 "테이저건 쏜 사람: 명사수 아 요"라는 코드를 실행했는데, 해당 에러 메시지가 뜬다면 첫번째 변수를 생성하지 않았다는 뜻입니다.
  • "정상수가 명사수 총에 맞았다 씨발롬아"는 CHECK THIS OUT 뒤에 "정상수"와 "명사수"가 둘 다 올 경우 발생합니다.
  • "그런거 없다 씨발롬아"는 CHECK THIS OUT 뒤에 출력할 변수를 적었는데, 출력할 변수를 아직 생성하지 않은 경우 발생합니다.
  • "파일이 없다 씨발롬아"는 실행할 .jss 파일이 없을 때 발생합니다
  • "디코딩이 안된다 씨발롬아"는 유니코드 디코딩 중에 에러가 났을 때 발생합니다.
  • 그 외 에러는 그냥 넘어갑니다. 만약 파이썬 에러가 발생했다면 트위터 DM 부탁합니다.

코드 실행

  • 코드를 조금만 둘러보면 어떻게 시작할지 보이실 겁니다. compiler.py 파일을 다운받아 주신 뒤, 그 파일과 같은 폴더에 test.jss 파일을 만들어 주신 뒤, test.jss 파일에 상수랭 코드를 입력하시고, cmd나 Powershell에서 "python compiler.py"를 입력해 주시면 됩니다. 만약 test.jss 가 아닌 다른 파일명을 사용하고 싶으신 분들은 compiler.py 파일의 가장 뒷줄인 "SangsuLang().compileFile('test.jss')"의 test.jss 부분을 원하시는 파일명으로 바꾼 뒤 저장하여 주시면 됩니다.

Releases

No releases published

Packages

No packages published

Languages